Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Программирование —› Полиморфизм --->Логическое постоянство декриптора.
Посл.ответ Сообщение

Ранг: 46.9 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 23 октября 2007 01:24 · Поправил: Zloy
· Личное сообщение · #1

Ну вот к примеру...
Loader: array[0..15] of Byte =
($B8,$00,$00,$00,$00, // mov eax,xxxxxxxx
$80,$30,$00, // xor [eax],xx ;m1
$40, // inc eax
$3D, $00, $00, $00, $00, // cmp eax,xxxxxxxx
$7C, $F5); // jl m1


Дело,вот в чем логическая конструкция декриптора будет следующей:
1)поместим в регистр начало адреса расшифровки.
2)Произведем логическую операцию с байтом по адресу в регистре.
3)увеличим значение в регистре.
4)Сравним с конечным адресом расшифровки.
5)Если он не равен или меньше,то совершим прыжок на метку m1.

Вот,я конечно все понимаю что можно запретить данный регистр в генераторе мусора,и сгенерировать мусорные команды без данного регистра ,использовать конструкцию вида [полезный_блок]+Rubbish(random(100)+100)+[Полезный блок] но,что то подсказывает мне,что это не то подтвердите мои опасения или же все нормально
Не надо только говорить,что все можно заморфить




Ранг: 109.2 (ветеран)
Активность: 0.090
Статус: Участник
Cardinal

Создано: 23 октября 2007 03:48
· Личное сообщение · #2

Zloy
на васме была тема. поищи пост Adrenalin-а.

что тебе мешает шифровать/ расшифровывать по ассиметричному алго? избавиться от явного сравнения кода, комбинировать с inc/dec, add/sub, rol/ror ..., заюзать флаги для расшифровки и так далее. просто тупо ксорить код - не выход.

-----
– Почему ты работаешь по ночам ? – Так удобнее... В одну смену с чертями...



 eXeL@B —› Программирование —› Полиморфизм --->Логическое постоянство декриптора.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати