Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   Путаем следы (https://forum.antichat.xyz/showthread.php?t=24173)

taha 19.09.2006 11:43

Путаем следы
 
Сегодня я хочу поговорить с вами о мусоре, столь полезной как оказалось в защите вещи.
Начнём.
Порывшись в инете можно найти вот такие заготовки.
mov ecx,virus_size
lea edi,pointer_to_code_to_crypt
mov eax,crypt_key
@@1: xor dword ptr [edi],eax
add edi,4
loop @@1
Какже можно усложнить код. Порывшись ещё, можно узнать, как представить xor через or, not, and.

xor eax, ebx
-------------
mov ecx, eax
or ecx, ebx
and eax,ebx
not eax
and eax,ecx

Вот так. Можете проверить.
Поискав в сатьях по булевой алгебре, можно нейти следущее предстовление or(and).

or ecx, ebx
---------------
not ecx
not ebx
and ecx, ebx
not ecx
Проверяем. Подстовляем "or" в "xor."

mov ecx, eax
not ecx
not ebx
and ecx, ebx
not ecx

and eax,ebx
not eax
and eax,ecx

Затем вставляем бессмысленные функции, типа:
and eax,11111111b
or eax,0

mov ecx, eax
and eax,11111111b
or eax,0
not ecx
or eax,0
not ebx
and eax,11111111b
and ecx, ebx
not ecx
and eax,ebx
and eax,11111111b
not eax
and eax,ecx

И ещё хотелось напимнить, что многие команды взаимозаменяемы. Например:
not eax = xor eax,0ffffh
xor ecx,ecx = and ecx,0h = loop $ =sub ecx,ecx

и т.д.
Устрошающе выглядит?
Хотелось бы больше задач на эту тему. Ведь видеть суть кода очень полезный навык.
Жду задач.

Dmitriy507 20.09.2006 05:14

если не секрет от куда ты выдрал этот код?

ProTeuS 20.09.2006 14:29

Dmitriy507, а 4то такого в нем сверхестественного?

сам асмовый код - всего лишь одна из миллионов простеньких вариаций на тему полиморфизма\метаморфизма, а and\or - просто хаки булевой логики

hidden 20.09.2006 18:32

Вот только время выполнения этих циклов увеличится примерно в 10 раз, т.к.
1) Как минимум двойное обращения к памяти.
2) Задействование дополнительного регистра
3) Несколько операций вместо одной
Но если код не большей, то можно и пожертвовать времинем вымолнеия

Цитата:

Сообщение от TAHA
Поискав в сатьях по булевой алгебре, можно нейти следущее предстовление or(and).

Тоже, только наоборот:
and ecx, ebx
---------------
not ecx
not ebx
or ecx, ebx
not ecx

Цитата:

Сообщение от TAHA
Затем вставляем бессмысленные функции, типа:

А вот этого добра, вообще несметное количество:
add eax, 0
sub eax, 0
ror eax, 0 или 32, 64, 128
rol eax, 0 или 32, 64, 128
mov eax, eax
or eax, eax
and eax, eax
shr eax, 0
shl eax, 0
и множество других...

taha 21.09.2006 12:21

Цитата:

если не секрет от куда ты выдрал этот код?
В google введи "булевая алгебра" и читай, читай, читай.

Цитата:

Но если код не большей
А я не говорю что нужно всё переделывать. Просто пару xor'ов.

Цитата:

А вот этого добра, вообще несметное количество:
вот-вот!! Просто пара примеров.

Я всё это к тому что задач по оптимизации и разгребании мусора на форуме практически нет :). Всё на отладку да на отладку. Яж без компа(в данный момент), и задачи в виде текста будут интересны не тока мне.

ProTeuS 21.09.2006 21:21

>>Я всё это к тому что задач по оптимизации и разгребании мусора на форуме практически нет

дык какая же это оптимизация, это же замусоревание ;)

а так, поддерживаю, тема более-менее интересная и может как основа пригодиться

taha 22.09.2006 12:47

Цитата:

а так, поддерживаю
Сапасибо за понимание


Время: 13:01