Сейчас на форуме: vsv1 (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› ASPack+PECompact |
Посл.ответ | Сообщение |
|
Создано: 18 июня 2006 17:56 · Личное сообщение · #1 Всем привет. ![]() ![]() ![]() |
|
Создано: 18 июня 2006 17:59 · Личное сообщение · #2 |
|
Создано: 18 июня 2006 18:11 · Личное сообщение · #3 |
|
Создано: 18 июня 2006 18:19 · Поправил: Hellspawn · Личное сообщение · #4 |
|
Создано: 18 июня 2006 18:44 · Личное сообщение · #5 Mifodix пишет: А "Get Imports" нажать?)) Ну, естественно нажимаю, но выдает только не валидные значения. Hellspawn пишет: а зачем у аспака импорт восстанавливать? распаку сразу всё и восстанови уже в конце Не. Мне надо именно с восстановлением импорта, как говорится на будущее, чтобы знать как решается данная проблема.) ![]() |
|
Создано: 19 июня 2006 00:24 · Поправил: deepred · Личное сообщение · #6 |
|
Создано: 19 июня 2006 02:41 · Поправил: Bat · Личное сообщение · #7 deepred Кроме ASPack сверху ничё не увидел ![]() OEP: 0043DDE3 Импорт обычно восстанавливается, правда после этого прога запускается выдает заставку и закрывается. Может проверяет на распакованость или еще что. Не смотрел. Спать охота. После распаковки PЕId говорит Microsoft Visual C++ 6.0. Распакованый файл в аттаче. [edited] Нет там 2 упаковщика, это я ошибся. Про востановление импорта в PECompact почитай тут ![]() ![]() |
|
Создано: 19 июня 2006 07:25 · Личное сообщение · #8 |
|
Создано: 19 июня 2006 13:58 · Личное сообщение · #9 Спасибо, ребята. Но мне нужна именно методика, как получить правильный импорт. Что я делаю: Нахожу OEP. Bat, он кстати у меня равен не 0043DDE3, а 004680F0. Дальше делаю дамп, открываю ImpREC забиваю в OEP 000680F0 (Image Base = 00400000), нажимаю IAT и он пишет: "Could not find anything good at this OEP! ![]() Вот на этом я и застопорился, ведь должен был сказать, что все нормально и типа парень теперь можешь нажать "Get Imports". OEP правильный - делал несколькими способами и через скрипты. PE_Kill Спасибо за статьи, но как я уже говорил мне нужно именно понять, поэтому нужна методика именно с импортом. ![]() ![]() |
|
Создано: 19 июня 2006 15:06 · Поправил: Mifodix · Личное сообщение · #10 deepred пишет: Нахожу OEP. Bat, он кстати у меня равен не 0043DDE3, а 004680F0. Вот отсюда у тебя проблемы и пошли: 004680F0 - это неверный ОЕП. Верный же 0043DDE3. Как я доходил до ОЕП: 1) ставил железный бряк hr esp-4 2) жал ф9 пока не оказался на стандартном начале для прог на Microsoft Visual C++ 6.0 Ну а дальше дамп, импрек... У меня всё получилось, можешь посмотреть вложение ![]() ++++++++++ атач не прекрепился, но выше уже выгладывали распакованный фаил. ![]() |
|
Создано: 20 июня 2006 14:31 · Личное сообщение · #11 deepred пишет: кстати у меня равен не 0043DDE3, а 004680F0 004680F0 - это ты нашел так сказать промежуточный OEP Ведь ты сам определил, что прога упакована двумя пакерами, и 004680F0 это "OEP" после ASPack'а.(и восстановление импорта в этом месте ничего не даст) Дальше начинается PECompact. Протрассируй до этого места 0046E550 50 PUSH EAX 0046E551 68 E3DD4300 PUSH 0043DDE3 0046E556 C2 0400 RETN 4 ; переход на OEP сымай дамп и восстанавливай импорт. Он там как на ладони RVA 47000; Size 610h ![]() |
|
Создано: 20 июня 2006 16:26 · Личное сообщение · #12 |
|
Создано: 20 июня 2006 17:13 · Личное сообщение · #13 deepred пишет: то как узнать, что я дойду до правильного места, если буду трассировать? Со временем ты научишься определять оеп визуально. Загрузи проги написанные на делфи(или каком-то другом языке) в отладчик и ты заметишь, что у всех у них есть сходные последовательности команд рядом с точкой входа. Потом попробуй проги на другом языке. У них тоже будут похожие начала. А затем, снимая пакер, ты будешь не только определять оеп это ли нет, но и на каком языке написано. ![]() |
|
Создано: 21 июня 2006 15:59 · Личное сообщение · #14 deepred пишет: А вот если я не знаю, где мне надо остановиться Ну во первых Mifodix дал тебе хороший совет (можешь даже создать колекцию стартового кода с различных компиляторов). Во вторых, смотри в каком адресном пространстве ты находишся во время трассировки. И если видишь переход в секцию где содержится код программы (code), то с большой долей вероятности можешь предположить, что ты на OEP. И эта прога как нельзя лучше демонстрирует сие. Memory map Address Size Owner Section Contains 00400000 00001000 DebugApi PE header 00401000 00063000 DebugApi pec1 code 00464000 0000D000 DebugApi .rsrc data,resources 00471000 00001000 DebugApi .rsrc 00472000 00003000 DebugApi .aspack SFX,imports,relocations 00475000 00001000 DebugApi .adata Сначала выполнение программы идет в секции .aspack 004723B7 C2 0C00 RETN 0C
> тут переход в секцию .rsrc и это явно не OEP, а переход в др. пакер
0046E550 50 PUSH EAX
> а вот тут переход в секцию pec1, где содержится код программы - это OEP. Есть случаи, когда часть кода от OEP воруется и выполняется в другой секции, но это уже другая сказка![]() ![]() |
|
Создано: 27 июня 2006 14:09 · Личное сообщение · #15 |
|
Создано: 28 июня 2006 21:32 · Личное сообщение · #16 |
![]() |
eXeL@B —› Вопросы новичков —› ASPack+PECompact |