Сейчас на форуме: _MBK_, asfa (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Распаковка и антиотладка.
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 апреля 2009 21:31 · Поправил: Euler
· Личное сообщение · #1

Решил попрактиковаться в распаковке и вот наткнулся вроде бы очередной UPX'овский файл, с шаблонной распаковкой, но всё оказалось сложнее(для меня).
Собственно это онлайновая мини-игра(бесплатная), скачать можно здесь(23 мб).
Сразу скажу, что под отладчиком(OllyDbg) программа запускаться и выполняться отказывается. После запуска программа создаёт 6 потоков и вылетает с ошибкой, говоря, что точка входа в модуль находится "вне зоны досягаемости":

И затем "контрольный"

Как это обойти, к сожалению, не знаю.
Что касается распаковки. "PEID" говорит, что упакован файл UPX'ом и вроде ошибки тут нет, всё как обычно:
начинаем с PUSHAD, а чуть ниже POPAD JMP на OEP, за которым нули:

Однако после дампа импорт нормально не восстанавливается. Во-первых неправильно определяется имя одной из библиотек(теряется путь к ней). Библиотека sound.dll находится во вложенной папке base. Имена библиотек легко найти в памяти:

После восстановления base\sound.dll превращается в sound.dll.
Во-вторых вот какая накладка:

Если посмотреть на любую неопределённую функцию, то увидим вот такую картинку:

Просто удалить эти функции нельзя.
Очень надеюсь на вашу помощь.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 09 апреля 2009 21:43
· Личное сообщение · #2

такой же импорт и в АИМПе
и проблема при его распаковке и востановления такого импорта уже обсуждалась здесь
Поищи по форуму

-----
Лучше быть одиноким, но свободным © $me




Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 апреля 2009 22:20 · Поправил: Euler
· Личное сообщение · #3

BoRoV пишет:
такой же импорт и в АИМПе

Спасибо за быстрый ответ. Вы имеете ввиду эту тему? Если "да", то во-первых ничего о восстановлении импорта там нет(кроме того, что QU это делает автоматически), а во-вторых эту QU распаковать не может, тупо виснет.
Выделю 3 основных вопроса(по возрастанию уровня сложности ):
1) Есть ли программа, которая способна менять имя dll в таблице импорта? Если "да", то какая.
2) Как восстановить импорт(обычно ссылка идёт либо на кусок осмысленного кода, либо "в никуда", а тут вроде код есть, но без смысла ).
3) Как программа уходит от OllyDbg и как этого не допустить?




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 09 апреля 2009 22:45
· Личное сообщение · #4

Euler пишет:
Вы имеете ввиду эту тему?

да, ну извини что там нет о востановлении, я помню что там эта проблема просто обсуждалась
Euler пишет:
Есть ли программа, которая способна менять имя dll в таблице импорта?

CFF Explorer

-----
Лучше быть одиноким, но свободным © $me




Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 09 апреля 2009 23:37 · Поправил: tihiy_grom
· Личное сообщение · #5

Euler
возьми ImpRec 1.7a, он нормально опознает ту функцию

И нечего еб...ться с изменением пути для sound.dll , просто кинь её туда же где экзешник лежит




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 10 апреля 2009 04:21 · Поправил: ClockMan
· Личное сообщение · #6

EulerВозьми имперек версии1.6 в версии 1.7 глюк с определеннием импорта файлов дирекшена в твоём случае это d3dx9_26.dll....

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 апреля 2009 12:17
· Личное сообщение · #7

Благодарю за ответы, они мне очень помогли. ImpRec 1.7a действительно всё определил, но коряво и программа работала некорректно, а вот 1.6 всё "починил". В общем вопрос с распаковкой решён, осталась только проблема с вылетом(вызывается подпрограмма по нулевому адресу). На сколько я понял сообщение про точку входа в модуль ничего страшного не предвещает и на него можно не обращать внимания. Проблема вот где:

После запуска программа до этого момента ни разу не обращалась к адресу 13A3B50. Без отладчика программа запускается без проблем.



Ранг: 49.3 (посетитель), 43thx
Активность: 0.060
Статус: Участник

Создано: 10 апреля 2009 12:23
· Личное сообщение · #8

Euler пишет: 1) Есть ли программа, которая способна менять имя dll в таблице импорта? Если "да", то какая.
Речь видимо не про имя, а про путь к длл. Когда я тему про АИМП поднимал, то решил это дело с маленьким извратом: берешь импрек и сохроняешь дерево в файл, далее в файле руками "дописываешь" пути к нужным длл, затем грузишь исправленное дерево в импрек и чинишь импорт. Работает



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 10 апреля 2009 14:29
· Личное сообщение · #9

Euler пишет:
ImpRec 1.7a действительно всё определил, но коряво и программа работала некорректно, а вот 1.6 всё "починил".

Я хз что там у вас коряво определилось в 1.7а , у меня всё ок и никаких проблем



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 апреля 2009 19:57
· Личное сообщение · #10

tihiy_grom пишет:
Я хз что там у вас коряво определилось в 1.7а , у меня всё ок и никаких проблем

Просто вы не протестировали экзешник. Там если зайти в игру и выбрать персонажа сразу вылетает ошибка и затем виснет программа, а когда её закрываешь выскакивает ещё и ошибка доступа к памяти.
user_ пишет:
Речь видимо не про имя, а про путь к длл.

Ага, то что надо. CFF Explorer не позволяет увеличивать длину имени(для этого придётся всю таблицу перестраивать ), поэтому не подходит.

В общем остался последний нерешённый вопрос- как и где программа выявляет что её отлаживают?




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 11 апреля 2009 01:50
· Личное сообщение · #11

Euler пишет:
как и где программа выявляет что её отлаживают?

Смотри код приложения после распаковки, упыкс здесь ни причём.
Поищи по форуму desktopSwitcher, это полезный плуг к Ольке, для отладки игрушек.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




Ранг: 5.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 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



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 апреля 2009 15:10
· Личное сообщение · #13

Bronco пишет:
Смотри код приложения после распаковки, упыкс здесь ни причём.

Я знаю, потому тему так и назвал "Распаковка и антиотладка".
Bronco пишет:
Поищи по форуму desktopSwitcher, это полезный плуг к Ольке, для отладки игрушек.

Нашёл, спасибо. Теперь всё отлично работает. Тему можно закрывать.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 12 апреля 2009 15:35
· Личное сообщение · #14

Ну так чего тогда не закрыл?


 eXeL@B —› Вопросы новичков —› Распаковка и антиотладка.
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати