Решил тут поразбираться со страшным зверем которого зовут Themida. Причем не так, как большинство - как бы получше сграбить дамп, чтоб проверки протектора обмануть, а именно по хакерски - дизассемблировать и понять структуру протектора. Я понимаю, что в каждом случае штамм Themida отличается друг от друга (из-за ее возможностей, и разных настроек при запуске). Но не будете же вы спорить, что один раз ее дизассемблировав второй и последующие разы пойдут проще? Как подопытный кролик пошел The Bat 4.0.24 (авторские права автора The Bat я не нарушаю, так как взламывать его прогу я не собираюсь, а сам использую Outlook). Естественно, пока я Themida не взломал, но несколько шагов уже сделал. Результаты моих изысканий оформил тут: http://bigblueboar.narod.ru/kill_themida.doc Собственно просьба к умным и знающим людям - где поправить, где наставить на путь истинный, а где и поругать. Я думаю, в конце концов мы таки разберемся в данном протекторе.
Ну вот все так - лучше дампи, лучше дампи . Можно подумать красотой защиты уже никто не восхищается, всем лишь бы побыстрее сдампить.
Начнем с того, что загрузив фемиду в дизассемблер ты ничего нормального не увидишь. Нужно грузить в отладчик, таким образом у тебя намного больше шансов понять структуру фемиды. Итак, вот анти-отладка в фемиде: 1.IsDebuggerPresent 2.NtGlobalFlag 3.ProcessHeapFlag 4.ZwQueryInformationProcess 5.ZwSetInformationThread 6.CheckRemoteDebuggerPresent 7.OutputDebugStringA Кажется это все(или я что то забыл). Поставив нужный плагин(ы) в отладчик, ты с этим справишься. Эхх... там еще VM... И в последних версиях(а хакать мы будем ведь только последние версии, верно?) VM очень, очень, ОЧЕНЬ усилена. Полюбому придется писать декомпилятор... Ну все в таком духе.
Читал твой файл kill_themida. Ну так ты точно ничего не сделаешь. Фемида прячет точку входа, притом что там еще могут быть фейковые переходы. Остановись, пока не поздно Глупости все это. Бери ольку и распаковывай. Так НАМНОГО лучше исследуешь прот.
я по глупости пытался "распаковать" фемиду статически, снял 3 слоя шифрации, дошел до момента когда она импортирует апишки для самой себя, и понял что дальше лучше не трогать, ибо нужен деобфускатор
Killer чем очистить? и как по трассе восстановить алгоритм, циклы и ветвления? и там трасса будет сотни миллионов инструкций, пока до OEP дойдет, и трассироваться будет сутки
Я вот тоже снял три слоя шифрации и дошел до момента, когда запускается виртуальная машина. Нашел все опкоды (в смысле адреса перехода для каждого опкода) и адрес начала "виртуальной программы". Никаких API Themida еще не загружала. Судя по всему в новой версии даже APIшники виртуальная машина грузит. Ну что ж - тем интереснее - будем виртуалку развиртуаливать
А вот и снова я. Нет, это я не 4 месяца ковырял Фемиду, нет ). От силы две недели. Пока расковыряно 9 опкодов виртуальной машины и около 25 команд Результаты как обычно http://bigblueboar.narod.ru/kill_themida.rar
Черт седня тоже столкнулся с тэмидой (фемидой кому как угодно). Это ДЛЛка, могу даже под олей грузануть, не без плагинов, как снять дамп так чтоб потом она загружалась нормально ?)
в http://bigblueboar.narod.ru/kill_themida.rar - то, что удалось докопать к текущему моменту - около 20 обработчиков команд - две полностью разобранных программы виртуалки - Фемида нашла базу KERNEL32.DLL, прошерстила экспорты, нашла адрес LoadLibraryA, загрузила USER32.DLL
Посмотрел я на ваши листинги обработчиков команд, и что тут можно сказать, красиво, но насколько красиво, настолько и бесполезно, а времени затрачена уйма. 1. Реализаций ВМ много, одинаковых среди них нет. 2. Каждая ВМ имеет свою систему команд (опкоды примитивов). 3. Каждая ВМ имеет свою таблицу регистров РС. 4. Каждая ВМ имеет свой алгоритм хеширования примитивов. 5. Каждый примитив имеет свой обфускированный код. и этот список можно ещё продолжить... Рекомендую почитать эту тему с поста 208. Успехов...