Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2014.12.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.002 c
15-1399374780
Aleks2014
2014-05-06 15:13
2014.12.07
Как сменить программно IP сетевушки?


15-1398867949
Rouse_
2014-04-30 18:25
2014.12.07
Предвариловка по статье.


15-1397927721
ProgRAMmer Dimonych
2014-04-19 21:15
2014.12.07
«Умное» редактирование MP4 (H.264)


2-1385206933
Ботаник
2013-11-23 15:42
2014.12.07
Как узнать версию установленного драйвера


15-1398803407
Юрий
2014-04-30 00:30
2014.12.07
С днем рождения ! 30 апреля 2014 среда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский