Сейчас на форуме: 2nd, bedop66938, -Sanchez- (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› В коде программы встречаются странные куски |
Посл.ответ | Сообщение |
|
Создано: 05 июня 2008 13:39 · Поправил: mGrey · Личное сообщение · #1
вот такие вот куски встречаются повсеместно в ключевых моментах, пересекаются между собой (CALL, JMP etc.) В вызываемых процедурах зачастую первой командой проходит JE, JL и т.п. Джампы идут блоками по трое. После прохождения участка такого кода программа возвращается на круги своя и дальше выполнение процедуры идет нормально. Понятно, что сделано для защиты. Как это хоть называется? И как с ентим бороться?- очень не охота трейсить... |
|
Создано: 05 июня 2008 14:18 · Личное сообщение · #2 |
|
Создано: 05 июня 2008 14:32 · Личное сообщение · #3 |
|
Создано: 05 июня 2008 15:17 · Поправил: Smon · Личное сообщение · #4 RSI пишет: метаморф +1 mGrey пишет: После прохождения участка такого кода программа возвращается на круги своя и дальше выполнение процедуры идет нормально Естественно, ведь маркерами crypt всю секцию кода крыть умные люди вряд ли будут, слишком медленно будет работать, кроются только критичные с точки зрения разработчиков участки - типа проверок регистрации и т.п. Приведенный пример очень смахивает на ExeCryptor, бороццо можно трейсом, или вручную анализировать - скажем берем блоки по десятку-другому команд и выписываем начальное и конечное состояние регистров и стека, сравниваем, упрощаем, не забывая о записи в выделенные области и секции данных и т.п., очень муторная и долгая работа, которая не факт что будет выполнена корректно, можно попытаться и шаблонами мусор повыкидывать, но заморочка метаморфа в отличие от полиморфа в том, что некоторый вроде бы мусорный код на самом деле является частью морфа и выбрасывать его просто так нельзя. ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels |
|
Создано: 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 когда блоком, когда разбавленное джампами/калами/ретнами |
|
Создано: 05 июня 2008 17:10 · Личное сообщение · #6 |
|
Создано: 05 июня 2008 19:52 · Личное сообщение · #7 |
|
Создано: 06 июня 2008 09:49 · Личное сообщение · #8 mGrey пишет: А такой вопрос - это какая-то отдельная примочка ExeCryptor-а (в смысле перед упаковкой файл прошерстили) или стандартна для всех запакованных файлов Это значит что разработчики юзали в программе SDK ExeCryptor'а т.е. если ты хочешь заморфить нужную функцию ( допустим проверку регистрации, то вставляешь сорцах проги в начале функции маркер CRYPT_START а в конце CRYPT_END ) и потом накрываешь скомпиленную прогу криптором, он сам находит эти маркеры и морфит этот код, перенося его к себе в секцию. mGrey пишет: Может ли здесь помочь Unpacker ExeCryptor от RSI? неа, он тока распаковывает код и восстанавливает импорт + всякие мелочи для работоспособности файла. пока я за ВМ не брался, поэтому как ЭТО все декриптить не знаю. Лучше пробивай у PE_Kill и kioresk они в этой теме более прошаренные |
eXeL@B —› Крэки, обсуждения —› В коде программы встречаются странные куски |