![]() |
eXeL@B —› Вопросы новичков —› восстановление кода (регистров...) проги после Темиды |
Посл.ответ | Сообщение |
|
Создано: 27 июля 2012 16:58 · Поправил: sivorog · Личное сообщение · #1 имеется freeware прога, зачем-то накрытая Темидой я использовал скрипт от LCF-AT - Themida - Winlicense 1.x - 2.x Multi PRO Edition 1.2.txt скрипт не нашел VM OEP непосредственно; сказал, что Code:
только я в это не врубился... далее, он нормально нашел ОЕП классическую, т.е. в секции кода. Code:
я снял дамп Сциллой, вправил импорт, запускаю результат. Тут самое интересное - появляется в трее иконка проги (она и должна появиться), но только появилась - слышится ДУНГ и процесс обрубается. ах да, я ж еще пропатчил CrashRpt.dll, а то он швырялся в меня zip архивами весом по 9 Кб ![]() теперь не швыряется. ковырялся я , трассировал по частям оригинальный exe и дамп, выходит что там регистры разнятся - это я исправил, но еще и со стеком что-то надо сделать, по-моему. нашел место ошибки - Code:
перед ней в обоих вариантах (в защищенном ехе и в дампе) отличается только значения ESI - в оригинале 003D5670, в дампе 010156A8. т.е. неверные аргументы, по всей видимости. замена ESI прямо в Олли не дает эффекта - тот же ДУНГ. и тут я подумал: Темиду я снял, а не все восстановил, что ли? ![]() http://rghost.ru/39331771 (8 Мб) - repack, там нужно будет запустить "appdata.sufree.exe", он добавит ini файлы. без них прога не хочет работать. если у кого вдруг не пашет repack, то http://rghost.ru/39331663 - оригинальный сетап (16 Мб) http://rghost.ru/39435819 - мои дампы (3,1 Мб) ![]() |
|
Создано: 27 июля 2012 20:51 · Поправил: -=AkaBOSS=- · Личное сообщение · #2 sivorog пишет: нашел место ошибки думаешь? а теперь поставь бряк сюда: Code:
и увидишь, как происходит вызов х@# пойми чего походу, в твоих дампах с .48EC40 до .48EDFC недовосстановлен импорт ![]() |
|
Создано: 28 июля 2012 07:16 · Личное сообщение · #3 1. Code:
2. Таблица IAT Восстановлена некорекно. Программа использует API Themida Код вызова Code:
IAT Code:
Всё что ниже 0048EC38, программа решила что ненужно и обрезола пол таблици ![]() ![]() ![]() ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 28 июля 2012 12:44 · Поправил: sivorog · Личное сообщение · #4 -=AkaBOSS=- да, я уже это встречал, аля кирдык выбрасывает в QT-шное ядро Code:
и далее ![]() а насчет импорта - это спасибо, щас буду ковыряться с ним. add это Сцилла ошиблась! щас я взял Imports Fixer 1.6 в паре со скриптом, сначала "Get imports - auto scan", отрезал инвалидные, далее добавил из лога Олли значения начала ИАТ и ее размера (через IAT manual adding), поставил ОЕП, пофиксил дамп - работает!! ![]() http://rghost.ru/39465632 (1,8 МБ) - отрезал секцию azwsbkvs; 5-ю секцию с пустым именем нельзя просто так отрезать, там ВМ-ский темидовский код делается. щас вот трассирую эту ерунду. add http://rghost.ru/39468445 - повыкидывал bin мусор из секции ВМ, затер сертификат RAR ужимает теперича до 1,04 МБ, PECompact - до 0,98 МБ ![]() |
|
Создано: 23 августа 2012 18:57 · Поправил: sivorog · Личное сообщение · #5 ёшкин кот, сколько мусора в этой ВМ этой Темиды!! ![]() причем там не только скопированные куски (сжатые) из исходного файла - типа после проверки CRC их из памяти (эти куски) не выгружают ![]() так еще и дох@@ кода, который никогда не исполняется! причем, и это самое поганое, этот мусорный ВМ-ский код легко спутать с ВМ-ским кодом, который реально исполняется. Поскольку они очччень похожи внешне. секцию ВМ я не удалил, т.к. при загрузке проги происходят прыжки туда-сюда из секции кода в ВМ и обратно, не менее 10 раз. VMSweeper я попробовал, он сказал, что ничего сущечтвенного не видит. ...короче, я уменьшил Raw Size ВМ-ской секции, повыкидывал мусор оттуда, и теперь дамп мой работающий весит 2,63 МБ и ужимается (7-zip) до 399 Кб также выкинул ланг файлы, ... теперь вместо установщика, который весит под 16 Мб, можно пользоваться SFX архивом размером ~5,5 Мб ![]() ![]() ![]() |
|
Создано: 24 августа 2012 11:51 · Личное сообщение · #6 |
|
Создано: 24 августа 2012 12:51 · Поправил: sivorog · Личное сообщение · #7 vnekrilov так пробовал же, он тоже при анализе выдает хз что, много референсов и ни один из них не похож на то, что Deathway описывает в своем туторе - т.е. я ни разу не увидел JMP xxxxxxxx, затем DB xx, DB xx ..... DB xx и в конце JMP какой-то. не, спасибо, я уже так оставлю ![]() а 2 лишние секции я уже отсобачил. Маленьую секцию загрузчика (ту, что Оля обозначает "SFX"), и секцию azwsbkvs в 1,5 МБ. Потому что ставил мемори бряки на них, в распакованном дампе - нигде не брякается. Значит, это мусор. ![]() ![]() |
|
Создано: 24 августа 2012 22:23 · Поправил: vnekrilov · Личное сообщение · #8 sivorog пишет: так пробовал же, он тоже при анализе выдает хз что, много референсов и ни один из них не похож на то, Эта программа имеет только один прыжок в секцию, созданную протектором: Code:
Эта инструкция аналогична следующей инструкции: Code:
По ссылке http://rghost.ru/39983857 скачай распакованный мной файл, и сравни со своим дампом. Распакованный мной файл нормально запускается, и что-то сканирует. PS: Если что-то непонятно, пиши в личные сообщения. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› восстановление кода (регистров...) проги после Темиды |