Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.12.07;
Скачать: CL | DM;

Вниз

Предвариловка по статье.   Найти похожие ветки 

 
Rouse_ ©   (2014-04-30 18:25) [0]

Хочу посоветоваться с народом, начал писать очередной "шаг" из цикла статей про защиту ПО, который будет описывать методику защиты через самоотладку (грубо реализация VM через штатные механизмы работы ПО + защита от исследования хост приложения).

Для меня будет гораздо проще писать в примерах к статье виртуализируемые куски кода в виде ассемблерных инструкций, но это будет наверное немного не понятно для читателя, поэтому есть второй вариант, к примеру попробовать их разбить на подпроцедуры (stepOne, stepTwo)... Эмм, ща попробую по другому:

asm
 call MyFunc
 test eax, eax
 jnz stepOne
// stepTwo
...
jmp @finalize
@stepOne
...
@finalize:
end


вот то что выше, проще потом подогнать под матаппарат и дизассемблер длин.

Либо можно написать вот так, более понятно дельфистам:

if MyFunc then
stepOne
else
 stepTwo;


Но для второго варианта придется учитывать то, что компилер для вызова функций и процедур будет вставлять свои эпилоги и прологи, которые нужно будет держать в уме и при реализации "наномитов" каким-то образом учитывать эти данные.

Код во втором варианте будет более сложен для анализа, т.к. большинство прикладников скорее всего именно от меня и услышат о том что есть вообще пролог и эпилог.

Вопрос: как писать статью? Ограничиваемся ассемблером с максимальными пояснениями или все-же пытаемся натянуть понятный дельфи программисту код на движок защиты (который и будет описываться в статье)?


 
Rouse_ ©   (2014-04-30 18:34) [1]

Зы, ну и если второй вариант, то требуется помошник, которому я буду разжевывать все досконально, а он будет это переводить на понятный прикладным программистам язык :)


 
Германн ©   (2014-04-30 18:42) [2]


> Ограничиваемся ассемблером с максимальными пояснениями


 
Rouse_ ©   (2014-04-30 19:04) [3]


> Германн ©   (30.04.14 18:42) [2]

А не закроет ли читатель статью, встретившись с асмом? :)
Хотя вон тут подсказывают - если рисовать красивые графики со стрелочками (как тут http://alexander-bagel.blogspot.ru/2014/04/vm.html), то может и заинтересуется в дальнейшем прочтении (народ любит картинки :)


 
MBo ©   (2014-04-30 20:30) [4]

Думаю, тех, кого тема привлечёт, ассемблер не напугает. В случаях неочевидного кода, возможно, пояснение псевдокодом понадобится.


 
Германн ©   (2014-04-30 20:33) [5]


> Rouse_ ©   (30.04.14 19:04) [3]
>
>
> > Германн ©   (30.04.14 18:42) [2]
>
> А не закроет ли читатель статью, встретившись с асмом?

Такой читатель всё-равно её закроет как бы она ни была написана. Разве что вставка картинок и анекдотов в тему (и не совсем в тему) спасут. :)
Где-то то ли в "Физики шутят" или в "... продолжают шутить" были подобные рекомендации. Правда если мне не изменяет мой склероз речь шла не о статьях, а о докладах на научных конференциях. Но это почти одно и то же.


 
Inovet ©   (2014-04-30 20:39) [6]

асм


 
Rouse_ ©   (2014-04-30 20:42) [7]

Ок, идея понята - пасип, буду работать в этом направлении :)


 
Rouse_ ©   (2014-04-30 21:33) [8]


> Inovet ©   (30.04.14 20:39) [6]

Кстати, Андрюх, можно я тебя буду периодически отвлекать на вычитку новой статьи? Бо мне сильно не понравилась твоя реакция на мою предыдущую статью (мол переборщил с точкой применения и ушел в отрыв) а я наоборот хочу писать так, чтобы было понятно для среднестатистического программера.
Скажем, чтоб ты побыл некоей "лакмусовой бумагой" :)


 
Rouse_ ©   (2014-04-30 21:38) [9]

А стоп, пардон, я тебя в Владом Ошиным перепутал :)))
Но всеравно предложение в силе - а его я и так по асе запинаю :)))


 
Inovet ©   (2014-04-30 22:02) [10]

> [9] Rouse_ ©   (30.04.14 21:38)

А я уже начал усиленно вспоминать, что я там такое говорил.:) Не вспомнил, стал читать следующий пост.

Ну, почему нет - почитаю, а если ещё и скажу чего полезного, так и ещё больше пользы будет. Что там Влад говорил, надо глянуть.

На Аську я что-то забил, даже клиента уже год как нет на машине. Можно Скайп или на почту.


 
Rouse_ ©   (2014-04-30 22:17) [11]


> Inovet ©   (30.04.14 22:02) [10]

Ок, принято - буду стучать в скайп через пару тройку денькоф (ес после операции оклемаюсь) :)


 
Пит   (2014-05-01 01:51) [12]


> ес после операции оклемаюсь

ты таки решился на лазерную коррекцию?!


 
Германн ©   (2014-05-01 02:45) [13]


> Rouse_ ©   (30.04.14 22:17) [11]
>
>
> > Inovet ©   (30.04.14 22:02) [10]
>
> Ок, принято - буду стучать в скайп

Можешь и мне стучать в личку на сырцах, если что. По крайней мере будешь получать мнение Пофигиста Широкого Профиля. Знающего ассемблер со словарём без различия платформ.
Ну и по скайпу готов отвечать. По скайпу даже лучше.


 
Inovet ©   (2014-05-01 11:13) [14]

> [11] Rouse_ ©   (30.04.14 22:17)
> после операции

Это что за операция?


 
Rouse_ ©   (2014-05-01 12:12) [15]


> Пит   (01.05.14 01:51) [12]

Не, очков мне хватает, еще под лазер лезть...


> Inovet ©   (01.05.14 11:13) [14]

Да там ерунда, кисту с локтя уберут, правда потом дня четыре рука не рабочая будет...


 
junglecat   (2014-05-01 12:21) [16]

Удалено модератором


 
Inovet ©   (2014-05-01 13:35) [17]

> [15] Rouse_ ©   (01.05.14 12:12)

Удачной операции и реабилитации.


 
Германн ©   (2014-05-02 03:16) [18]


> Rouse_ ©   (01.05.14 12:12) [15]
> еще под лазер лезть...

Больно слышать :)
(с)


 
KSergey ©   (2014-05-06 12:42) [19]

А по факту-то как делается?
как делается на самом деле - так и рассказывать.


 
Rouse_ ©   (2014-05-06 19:44) [20]


> KSergey ©   (06.05.14 12:42) [19]
> А по факту-то как делается?

По факту там очень сложный механизм, до которого не хочется опускаться.
Я хочу дать только азы, чтоб остальное по необходимости каждый сам додумывал. Впрочем посмотрим, кое чего пока не клеится в изложении...


 
KSergey ©   (2014-05-07 09:22) [21]

> Rouse_ ©   (06.05.14 19:44) [20]
> По факту там очень сложный механизм, до которого не хочется опускаться.

Какая разница сложный или нет? Исходный вопрос разве был про "как рассказать: сложно или просто"?

Нет, вопрос был "вам на дельфи или ассемблере?"
Вот это и должно быть "как по факту" хотя бы только потому, что приводимые примеры должны быть повторяемы пытливым читателем хотя бы впринципе.


 
Rouse_ ©   (2014-05-07 11:57) [22]


> хотя бы только потому, что приводимые примеры должны быть
> повторяемы пытливым читателем хотя бы впринципе

Там получится как - будет один пример который можно будет воспроизвести любой (покажу шесть вариантов использования наномитов, на прерывании распаковка, на генерации исключения и т.п.).

А вот второй пример - это наверное будет результат работы навесняка, ибо его ручками уже будет очень сложно воспроизвести и все затруднение в том, как обьяснить логику работу навесного кода, чтоб читатель его понял.

Ну короче, как выйдет что-то читабельное, так сразу покажу.



Страницы: 1 вся ветка

Текущий архив: 2014.12.07;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.006 c
15-1399062603
Юрий
2014-05-03 00:30
2014.12.07
С днем рождения ! 3 мая 2014 суббота


2-1385405564
Евгений07
2013-11-25 22:52
2014.12.07
Нить вешает прогу


15-1399321802
Юрий
2014-05-06 00:30
2014.12.07
С днем рождения ! 6 мая 2014 вторник


15-1399371710
Дмитрий СС
2014-05-06 14:21
2014.12.07
Функция возвращающая интерфейс


15-1399753802
Юрий
2014-05-11 00:30
2014.12.07
С днем рождения ! 11 мая 2014 воскресенье