| eXeL@B —› Вопросы новичков —› Распаковка и антиотладка. |
| Посл.ответ | Сообщение |
|
|
Создано: 09 апреля 2009 21:31 · Поправил: Euler · Личное сообщение · #1 Решил попрактиковаться в распаковке и вот наткнулся вроде бы очередной UPX'овский файл, с шаблонной распаковкой, но всё оказалось сложнее(для меня). Собственно это онлайновая мини-игра(бесплатная), скачать можно . Сразу скажу, что под отладчиком(OllyDbg) программа запускаться и выполняться отказывается. После запуска программа создаёт 6 потоков и вылетает с ошибкой, говоря, что точка входа в модуль находится "вне зоны досягаемости":
И затем "контрольный"
Как это обойти, к сожалению, не знаю. Что касается распаковки. "PEID" говорит, что упакован файл UPX'ом и вроде ошибки тут нет, всё как обычно: начинаем с PUSHAD, а чуть ниже POPAD JMP на OEP, за которым нули:
Однако после дампа импорт нормально не восстанавливается. Во-первых неправильно определяется имя одной из библиотек(теряется путь к ней). Библиотека sound.dll находится во вложенной папке base. Имена библиотек легко найти в памяти:
После восстановления base\sound.dll превращается в sound.dll. Во-вторых вот какая накладка:
Если посмотреть на любую неопределённую функцию, то увидим вот такую картинку:
Просто удалить эти функции нельзя. Очень надеюсь на вашу помощь .
![]() |
|
|
Создано: 09 апреля 2009 21:43 · Личное сообщение · #2 |
|
|
Создано: 09 апреля 2009 22:20 · Поправил: Euler · Личное сообщение · #3 BoRoV пишет: такой же импорт и в АИМПе Спасибо за быстрый ответ. Вы имеете ввиду эту тему? Если "да", то во-первых ничего о восстановлении импорта там нет(кроме того, что QU это делает автоматически), а во-вторых эту QU распаковать не может, тупо виснет. Выделю 3 основных вопроса(по возрастанию уровня сложности ):
1) Есть ли программа, которая способна менять имя dll в таблице импорта? Если "да", то какая. 2) Как восстановить импорт(обычно ссылка идёт либо на кусок осмысленного кода, либо "в никуда", а тут вроде код есть, но без смысла ).
3) Как программа уходит от OllyDbg и как этого не допустить? ![]() |
|
|
Создано: 09 апреля 2009 22:45 · Личное сообщение · #4 Euler пишет: Вы имеете ввиду эту тему? да, ну извини что там нет о востановлении, я помню что там эта проблема просто обсуждалась
Euler пишет: Есть ли программа, которая способна менять имя dll в таблице импорта? CFF Explorer ----- Лучше быть одиноким, но свободным © $me ![]() |
|
|
Создано: 09 апреля 2009 23:37 · Поправил: tihiy_grom · Личное сообщение · #5 |
|
|
Создано: 10 апреля 2009 04:21 · Поправил: ClockMan · Личное сообщение · #6 |
|
|
Создано: 10 апреля 2009 12:17 · Личное сообщение · #7 Благодарю за ответы, они мне очень помогли. ImpRec 1.7a действительно всё определил, но коряво и программа работала некорректно, а вот 1.6 всё "починил". В общем вопрос с распаковкой решён, осталась только проблема с вылетом(вызывается подпрограмма по нулевому адресу). На сколько я понял сообщение про точку входа в модуль ничего страшного не предвещает и на него можно не обращать внимания. Проблема вот где:
После запуска программа до этого момента ни разу не обращалась к адресу 13A3B50. Без отладчика программа запускается без проблем. ![]() |
|
|
Создано: 10 апреля 2009 12:23 · Личное сообщение · #8 Euler пишет: 1) Есть ли программа, которая способна менять имя dll в таблице импорта? Если "да", то какая. Речь видимо не про имя, а про путь к длл. Когда я тему про АИМП поднимал, то решил это дело с маленьким извратом: берешь импрек и сохроняешь дерево в файл, далее в файле руками "дописываешь" пути к нужным длл, затем грузишь исправленное дерево в импрек и чинишь импорт. Работает
![]() |
|
|
Создано: 10 апреля 2009 14:29 · Личное сообщение · #9 |
|
|
Создано: 10 апреля 2009 19:57 · Личное сообщение · #10 tihiy_grom пишет: Я хз что там у вас коряво определилось в 1.7а , у меня всё ок и никаких проблем Просто вы не протестировали экзешник. Там если зайти в игру и выбрать персонажа сразу вылетает ошибка и затем виснет программа, а когда её закрываешь выскакивает ещё и ошибка доступа к памяти. user_ пишет: Речь видимо не про имя, а про путь к длл. Ага, то что надо. CFF Explorer не позволяет увеличивать длину имени(для этого придётся всю таблицу перестраивать ), поэтому не подходит.
В общем остался последний нерешённый вопрос- как и где программа выявляет что её отлаживают? ![]() |
|
|
Создано: 11 апреля 2009 01:50 · Личное сообщение · #11 |
|
|
Создано: 11 апреля 2009 07:30 · Поправил: AET · Личное сообщение · #12 народ при распаковке Armadillo при замене ID "EBFE" на "0ВС4" и при запуске Shift+F9выходит такая ошибка Your program is suspended and can't run Please resume main thread 4131_11.04.2009_CRACKLAB.rU.tgz - Безымянный.JPG
![]() |
|
|
Создано: 12 апреля 2009 15:10 · Личное сообщение · #13 |
|
|
Создано: 12 апреля 2009 15:35 · Личное сообщение · #14 |
| eXeL@B —› Вопросы новичков —› Распаковка и антиотладка. |
| Эта тема закрыта. Ответы больше не принимаются. |

.



):





Для печати