![]() |
eXeL@B —› Основной форум —› распаковка PEspin 1.304 |
Посл.ответ | Сообщение |
|
Создано: 21 января 2006 22:07 · Поправил: Hellspawn · Личное сообщение · #1 вот появилось свободное время ![]() решил ченить поиследовать... так вот... запаковыа маленькую асм. прогу эти чудом и понеслась... ничего не читал, делал всё сам... вот интересно, может кто поделится опытом? пока, всё что получилось, я могу дойти пешком до ОЕП 1мин ![]() нашёл несколько интересных процедур (форм импорта и т.д.) но чёт с импортом никак не получается =( а вобще вот:
что запомнилось... это деление на 0, юзуются SEH =) и шифрование там вроде... много циклов распаковки... больше ничё интересного вроде... хочу импорт добить.... =) в аттаче прога, запакованная сабжем... всего 3 функции там... мессаге бох, ехит процесс и дебуггер презент ![]() ![]() ----- [nice coder and reverser] ![]() |
|
Создано: 22 января 2006 00:14 · Личное сообщение · #2 |
|
Создано: 22 января 2006 00:48 · Поправил: Hellspawn · Личное сообщение · #3 arnix пишет: http://exelab.ru/f/action=vthread&forum=3&topic=2618 я конечно извеняюсь.. что не нешёл в поиске... но что то там про импорт не слова не было... хотя с моим ужасным англ. я мог и не увидеть.... ----- [nice coder and reverser] ![]() |
|
Создано: 22 января 2006 01:46 · Поправил: arnix · Личное сообщение · #4 ОК, я когда-то распаковывал, попробую вспомнить. Поставь брейк на retn 14 функции VirtualProtectEx и запусти, когда поймаешь, потрейси до кода программы, потом дави Ctrl-F и ищи MOV EAX,0F96B302E
поменяй это дело на...
О причинах (почему так сделано и как это работает) разберись сам, ну или если хочешь обясню. Ну и собсно запусти программу, включи импрек, выбери прогу и делай правый клик -> Advanced command -> Get API Calls, потом, если есть кривые, то Show invalid, Cut thunks. Будут вопросы скажи.
P.S. Могут быть методы и другие, получше и надёжнее, не копал много... Добавка: Да, можно сделать и получше, нужно скрипт написать сначала, чтобы нормальным образом восстановить IAT. ![]() |
|
Создано: 22 января 2006 10:33 · Личное сообщение · #5 arnix пишет: Да, можно сделать и получше, нужно скрипт написать сначала, чтобы нормальным образом восстановить IAT. Да вроде есть такой "PESpin v1.3 unpacker script for OllyScript plugin (by SHaG)" там написано: "Script will fix IAT redirection, code redirection and find stolen OEP code." ----- ~ the Power Of Reversing team ~ ![]() |
|
Создано: 22 января 2006 13:12 · Личное сообщение · #6 |
|
Создано: 22 января 2006 13:40 · Личное сообщение · #7 Хм... У меня всё просто получилось. Протрейсил до секции кода. Встал на 401000. Сдампил Olly, указав Base of Code = 1000; и без опции Rebuild Import. Далее как arnix arnix пишет: Ну и собсно запусти программу, включи импрек, выбери прогу и делай правый клик -> Advanced command -> Get API Calls, потом, если есть кривые, то Show invalid, Cut thunks. FThunk: 0000742A NbFunc: 00000001 1 0000742A kernel32.dll 00B0 ExitProcess FThunk: 0000742F NbFunc: 00000001 1 0000742F kernel32.dll 0224 IsDebuggerPresent FThunk: 00007435 NbFunc: 00000001 1 00007435 user32.dll 01DD MessageBoxA Потом снял галку Add new Section и Ввёл RVA = 1100, т.к. кода там всё равно нет. И получил рабочий дамп ![]() |
|
Создано: 22 января 2006 13:50 · Поправил: Hellspawn · Личное сообщение · #8 newborn пишет: Да вроде есть такой "PESpin v1.3 unpacker script for OllyScript plugin (by SHaG)" там написано: "Script will fix IAT redirection, code redirection and find stolen OEP code." я же сказал хочу сам.. ты этот скрипт вообще видел??? самому лучше в коде разобраться чем в скрипте ![]() Klajnor пишет: Хм... У меня всё просто получилось. Протрейсил до секции кода. Встал на 401000. Сдампил Olly, указав Base of Code = 1000; и без опции Rebuild Import. Далее как arnix проcто трейсил? ![]() интересно... ок ща попробую.. о результатах скажу... да действительно... хм интересно... ща поставлю галочку api redirection.... да вообще все опции защиты включу.... ----- [nice coder and reverser] ![]() |
|
Создано: 22 января 2006 14:11 · Личное сообщение · #9 Я с ассемблером дружу не очень, поэтому долгие циклы распаковки мне не интересны Трейсил, игноря все исключения, но это долго( 1-2 минуты). Потом, уже зная OEP, доходил до него так: F9. Возникает исключение:неправильная инструкция. Потом F7. Прога переходит в ntdll. Затем ставлю бряк на 401000 и снова F9. Оказываюсь на OEP ![]() |
|
Создано: 22 января 2006 14:18 · Личное сообщение · #10 Klajnor пишет: Потом F7. Прога переходит в ntdll. Затем ставлю бряк на 401000 и снова F9. Оказываюсь на OEP гы ![]() ![]() ![]() тока я до оеп по другому добираюсь чем в статье... хотя и как в статье была у меня мысль... ща сижу со всеми опциями защиты разбираюсь... что то не все функции корректно востанавливаются... ----- [nice coder and reverser] ![]() |
|
Создано: 22 января 2006 14:33 · Личное сообщение · #11 В этой проге я не заметил особой защиты. Калькулятор запротекченный по полной( только без защиты паролем) я так и не смог распаковать пока. А из твоей проги можно сделать ехе-шник в 963 байта, если сдампить только 2000h байт, а затем удалить из заголовка 2 последнии секции. Потом востановить импорт и в LordPe сделать над ехе-шником Rebild Pe ![]() ![]() |
|
Создано: 22 января 2006 14:39 · Поправил: Hellspawn · Личное сообщение · #12 Klajnor пишет: В этой проге я не заметил особой защиты. Калькулятор запротекченный по полной( только без защиты паролем) я так и не смог распаковать пока. А из твоей проги можно сделать ехе-шник в 963 байта, если сдампить только 2000h байт, а затем удалить из заголовка 2 последнии секции. Потом востановить импорт и в LordPe сделать над ехе-шником Rebild Pe интересно, что размер не упакованного файла 1 536 байт... прикольно =) ну да я тока исследовал... вот тоже ща маюсь... зря калькулятор... лучше что нить поменьше.... хотя лан... ща займусь твоим файлом.... пока не распакую не успакоюсь +) ----- [nice coder and reverser] ![]() |
|
Создано: 22 января 2006 15:36 · Личное сообщение · #13 |
|
Создано: 23 января 2006 13:23 · Личное сообщение · #14 |
![]() |
eXeL@B —› Основной форум —› распаковка PEspin 1.304 |