Начало запакованной программы Ида распознает как: seg000:00401000 start proc near seg000:00401000 push offset unk_60F001 seg000:00401005 call nullsub_1 seg000:0040100A retn , где call nullsub_1- это :0040100B nullsub_1 proc near 0040100B retn 0040100B nullsub_1 endp Очень идиотский код, на мой взгляд. Я не нашел ничего лучше, чем поменять атрибут секции с С0000040 на E0000020 - это вроде делает секцию исполняемой. Повторно дизассемблировал Идой - та же, блин, картина!!! Внимание ,вопрос: как заставить иду (или другой дизасмер) показать код распаковщика? ведь если он выполняется, то он должен БЫТЬ, но пока ида кажет мне только вышеприведенный код ; все остальное пространство экзешника забито, по её мнению, данными.
babandr Без знания ассемблера в распаковку соваться нечего. push offset unk_60F001 - занесение в стек адреса, на который осуществляется переход по seg000:0040100A retn. Глупости. Попробуй скормить ехе wdasm'у, может, он тебе больше понравится. Но лучше всего сначала изучи асм.
IDA это interactive disassempler так что не жди что тебе всё сделается само . в этом и смысл , что всё можно исправить , указать где код, где дата. в общем учите матчасть ну и всегда можно в отладчике посмотреть ка и что выполняется . если что неясно
никто меня не понял... вопрос в следующем - если в упакованной проге есть предварительная распаковывающая часть, и часть эта есть КОД (опознаваемый системным загрузчиком), то ПОЧЕМУ??? этот код не видит дизассемблер? или он смотрит только на характеристики секции и исходя из них решает - код эта секция или данные? Если так, то - святая простота!!! а тот код, что ида показывает -ну не нонсенс ли?вызов пустой функции и только
Забей на идиотский, на твой взгляд, код и продолжай копать с unk_60F001. Там код распаковщика. А еще лучше почитать что-нибудь по дизассемблированию. Касперски, например...
не парься по этому поводу а, если ты знаешь как написать полностью автоматический дизассемблер - напиши плагин для ида - прославишься и разбогатеешь сразу же Код (Text): push offset unk_60F001 call nullsub_1 ведь в этом - то в общем - то говоря и цель - остановить автоматические дизассемблеры. ты для начала подумай как может автоматический дизассемблер отследить что unk_60F001 это адрес кода а не данных. Есть конечно способы , включая эмуляцию исполнения но и против этого есть приёмы . а вот против мозга вооружённого знаниями и дизассемблером вроде ida отдельные приёмы вообще не эффективны , другие мало эффективны.