Сейчас на форуме: 2nd, bedop66938, -Sanchez- (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› В коде программы встречаются странные куски
Посл.ответ Сообщение

Ранг: 2.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 июня 2008 13:39 · Поправил: mGrey
· Личное сообщение · #1


0058400B . 81C7 7009A234 ADD EDI, 34A20970
00584011 . 873C24 XCHG [DWORD SS:ESP], EDI
00584014 .- E9 BCC21400 JMP 006D02D5
00584019 $ 871C24 XCHG [DWORD SS:ESP], EBX
0058401C . 5B POP EBX
0058401D . 837D F0 01 CMP [DWORD SS:EBP 10], 1
00584021 .- 0F85 E4BD1400 JNZ 006CFE0B
00584027 . 8B45 08 MOV EAX, [DWORD SS:EBP+8]
0058402A . 8B40 F8 MOV EAX, [DWORD DS:EAX 8]
0058402D . 83C8 08 OR EAX, 8
00584030 >- E9 66921400 JMP 006CD29B
00584035 > C3 RETN ; RET used as a jump to 006C9A4A
00584036 >- E9 C4B81400 JMP 006CF8FF
0058403B >- E9 21C11400 JMP 006D0161
00584040 > 81C3 095F241A ADD EBX, 1A245F09
00584046 . 03CB ADD ECX, EBX
00584048 . 5B POP EBX


вот такие вот куски встречаются повсеместно в ключевых моментах, пересекаются между собой (CALL, JMP etc.) В вызываемых процедурах зачастую первой командой проходит JE, JL и т.п. Джампы идут блоками по трое. После прохождения участка такого кода программа возвращается на круги своя и дальше выполнение процедуры идет нормально.
Понятно, что сделано для защиты. Как это хоть называется? И как с ентим бороться?- очень не охота трейсить...



Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 05 июня 2008 14:18
· Личное сообщение · #2

метаморф! декриптор писать нужно...




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 05 июня 2008 14:32
· Личное сообщение · #3

=) а чем ты трейсишь ? ..там сразу же вроде видно что изменение кода идет.

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 05 июня 2008 15:17 · Поправил: Smon
· Личное сообщение · #4

RSI пишет:
метаморф

+1

mGrey пишет:
После прохождения участка такого кода программа возвращается на круги своя и дальше выполнение процедуры идет нормально

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

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

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 2.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 июня 2008 16:13 · Поправил: mGrey
· Личное сообщение · #5

Smon
Приведенный пример очень смахивает на ExeCryptor
+1 - прога была зашифрована ExeCryptor-ом, распакованную (вроде как) дали люди добрые, распаковывали Unpacker-ом от RSI. Спасибо.
А такой вопрос - это какая-то отдельная примочка ExeCryptor-а (в смысле перед упаковкой файл прошерстили) или стандартна для всех запакованных файлов? И может есть какая-то тулза для проверки участка кода на полезность? Может ли здесь помочь Unpacker ExeCryptor от RSI?

mak пишет:
там сразу же вроде видно что изменение кода идет.

откуда? там строго растянутые и замусоренные команды типа вместо MOV EAX,01
PUSH 3201CC
POP EAX
SUB EAX,3201CB
когда блоком, когда разбавленное джампами/калами/ретнами



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 05 июня 2008 17:10
· Личное сообщение · #6

2PE_Kill:
выкладывай свой двиг деморфа

-----
SaNX





Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 05 июня 2008 19:52
· Личное сообщение · #7

Тогда уж двиг не деморфа, а деВМа.



Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 06 июня 2008 09:49
· Личное сообщение · #8

mGrey пишет:
А такой вопрос - это какая-то отдельная примочка ExeCryptor-а (в смысле перед упаковкой файл прошерстили) или стандартна для всех запакованных файлов


Это значит что разработчики юзали в программе SDK ExeCryptor'а т.е. если ты хочешь заморфить нужную функцию ( допустим проверку регистрации, то вставляешь сорцах проги в начале функции маркер CRYPT_START а в конце CRYPT_END ) и потом накрываешь скомпиленную прогу криптором, он сам находит эти маркеры и морфит этот код, перенося его к себе в секцию.

mGrey пишет:
Может ли здесь помочь Unpacker ExeCryptor от RSI?


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

пока я за ВМ не брался, поэтому как ЭТО все декриптить не знаю.

Лучше пробивай у PE_Kill и kioresk они в этой теме более прошаренные


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


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