![]() |
eXeL@B —› Вопросы новичков —› DDeM в X2-Угроза или NoCD своими руками |
Посл.ответ | Сообщение |
|
Создано: 06 октября 2006 03:08 · Поправил: Sn00pY · Личное сообщение · #1 Нашол у себя игру X2-Угроза (Новый диск) и решил для интереса склепать NoCd. Кинул EXE в PEiD - Nothing found *, но в EP Section стоит .DDeMCod. "Ладно" - подумал я, запихал диск, кинул exe в Olly и стал смотреть какие Jump'ы выполняются при его наличии в CDRom'e. После подправил код чтобы пропускались функции типа GetDriveTypeA, GetVolumeInformationA, CreateFileA, GetFileSize. Вынул диск и стал трассировать. Вроде всё идёт также как и шло с диском, те же call'ы, те же jump'ы, только при переходе на адрес 00435E1F вылетает - Debugged program set single step flag (bit T in EFL).... и т.д. После долгих мучений выяснил, что когда диск в CDRom'e то по адресу 00435E1F стоит строка xor esi, esi и далее всё идёт пучком, без диска же с пропущенными функциями проверки GetDriveTypeA, GetVolumeInformationA и т.д в этом же адресе (00435E1F) вместо xor помещается lea и появляется ошибка с последующим Terminated. "Хорошо" - опять подумал я, а что мне мешает lea на xor переправить? Так и сделал.... тока после безошибочного прохождения этого адреса (00435E1F) и пару других всё равно вываливается в Terminated. Ну раз так, то попробую найти OEP и сдампить сначала.... Хм...Попробовал... Адрес который както был похож на OEP оказался 0653726E jmp eax, сдампил...и получил exe размером в 97,3Mb(ну и ![]() Итого: фонтан моих мыслей иссяк и что делать я уже незнаю. Кому интересно или кто както может помочь в моих злоключенях - поделитесь мыслями на эту тему. ![]() |
|
Создано: 06 октября 2006 04:14 · Личное сообщение · #2 |
|
Создано: 06 октября 2006 14:03 · Личное сообщение · #3 |
|
Создано: 07 октября 2006 06:26 · Личное сообщение · #4 sliderZ пишет: Таблицу импорта случаем не забыл восстановить ? ... ![]() ![]() В общем теперь всё пашет без диска и тему можно было бы закрыть, но пара вопросов осталась. Конечный EXE'шник весил 97,2Мб. а дамп похоже не пофиксил - почему-то не фиксился...Через rebuildPE в petools вместо 97,3Мб ребилдил на 97,1Мб. Короче сделал так: 1. Сдампил этого 97 метрового мутанта (кстати оригинальный exe весит 3,6Мб !!!) 2. Через PeTools отрезал ему секции .DDeMCod и .DDeMImp 3. Прикрутил импорт 4. Запустил rebuildPE в PeTools Результат - 3,5Мб (сдулся до размера оригинального EXE ![]() А вопросы собственно такие (не в тему, но не открывать же новый топик?) : 1. Неужели дамп может настолько отличаться от оригинала или у мя неправильные настройки в OllyDump (всегда снимаю галку с Rebuild Import) 2. Правильно ли поступил кастрировав секции .DDeMCod и .DDeMImp, и можно было бы ещё чего нить оттяпать? ![]() |
|
Создано: 07 октября 2006 15:20 · Личное сообщение · #5 Sn00pY 1. Я не уверен, но похоже в этом случае это ddem зачем-то раздувает виртуальный размер секции data до 90 мегов. Видимо какая-то спицифика протектора, фиг знает зачем ему это нужно. 2. Да наверное в случае такого простого протектора правильно, я сам секции никогда не отрезаю, на всякий случай кто знает какой глюк потом может возникнуть. В более сложных протекторах типа аспра или армы на сколько я знаю к делу отрезания секций с умом надо подходить. ![]() |
|
Создано: 07 октября 2006 22:11 · Личное сообщение · #6 Sn00pY пишет: Неужели дамп может настолько отличаться от оригинала Все нормально. Это прикол программистов. Вместо динамического заказа памяти сразу создается секция нужного размера. Часть памяти ничем не заполняется и не занимает места в экзе. Дамперы дампят по размеру секции в памяти - на всякий случай ![]() ![]() |
|
Создано: 08 октября 2006 06:24 · Личное сообщение · #7 |
|
Создано: 08 октября 2006 06:48 · Личное сообщение · #8 |
![]() |
eXeL@B —› Вопросы новичков —› DDeM в X2-Угроза или NoCD своими руками |
Эта тема закрыта. Ответы больше не принимаются. |