Распаковка upx'а
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Распаковка upx'а - 2011-07-19 17:10:09.636666
|
|
|
Крутой 0ль !
Сообщений: 150
Оценки: 10
Присоединился: 2010-12-02 19:33:25.666666
|
Сегодня я расскажу как распаковывать upx пакенные файлы .Но давайте сначала поговорим о том , что такое упаковщики и с чем их кушают. Упаковщик - сразу наводит на мысль , что будет что то упаковываться , и наводит на правильную мысль .Упаковщики обладают свойством сжимать и в какой то мере защтить программу от больше половины начинающих крекеров , что бывает очен редко , так как всё таки основным направлением упаковщиков является сжатие …"Защитной" оболочку для программ пакер создаёт тем что так называемый EntryPoint - (начальная точка входа) упаковщик ставит в начало , то есть в месо где стартует .После EntryPoint следует тело распаковщика , за которым у upx находится OEP , то есть оригиналная точка входа в программу.Вся распаковка и сводится к нахождению этого OEP'а , т.к он нужен для нахождения таблицы импорта у программы.Ну так что приступим ? О да ! Для исследования нам потребуется следующие инструменты : 1.Упаковщик upx 2.Анализатор упакованности peId 3.Программа для снятия дампа Petools 4.Программа восстановления импорта imprec 5.И конечно oldybg , который у меня не работает ;) Теперь , что мы делаем - упакуем любую программку , желательно хиленького веса нашим upx'oм .Теперь , открываем нашу упакованную программу через отладчик oldybg .И что мы видим : адрес первой строчки это и есть EntryPoint.Для upx'а Entry Point характерен командой PUSHAD , которая служит для сохранения значений 32 битных регистров .Т.к эта команда работает со стеком , то мы ставим Hardware breakpoint на 1 строчку выше кода , тоесть в окошке , где отображается стек , мы прокручиваем на 1 строчку вверх , и нажимая на правую кнопку мыши выбираем - Breakpoint\hardware. дальше припускаем двойным нажатием F9 нашу программу и если мы видим такие команды как popad и особенно большой прыжок командой JUMP , то ура товарисчи , мы нашли этот OEP.Жмём по команде [jump ******]два раза левой клавишей мыши , копируем адрес прыжка и записываем его куда нибудь .Он нам пригодится при восстановлении импорта.А сейчас нам нужно открыть Peetols , в опции проставить галочку на fix и full дамп если таковые имеются .Найти в процессах нашу программу и правой кнопкой мыши выбрать full dump .Теперь приступим к восстановлению импорта , в этом нам поможет importrec .Из списка выбираем нашу рограмму котоая должна всё время висеть под отладкой oldybg .Вот теперь то нам и потребуется наш найденный OEP .Сейчас , в поле под названием 'OEP' мы вписываем разность нашего OEP и IMAGEbASE .ImageBase обычно равен 400000 , тоесть в поле 'OEP' мы вписываем значение = OEP - 400000 .Дальше жмём кнопочку GetImports , и если после нажатия в окошке имортируемые функции будут валидными , то нажимаем fix dump и выбираем наш сдампленный программой petools исполняемый файл .Вот и всё .Если есть в статье какие либо недочёты , пишите что не так . и что бы удостоверится , что программа распакована правильно , просмотрите её через peid
|
|
|
RE: Распаковка upx'а - 2011-07-19 17:17:27.616666
|
|
|
headsucker
Сообщений: 1304
Оценки: 10
Присоединился: 2011-02-09 15:30:26.450000
|
Очень полезная статья (касаемо универсальных принципов распаковки). Но именно юпикс можно распаковать гораздо проще: upx.exe -d file.exe
|
|
|
RE: Распаковка upx'а - 2011-07-19 17:25:02.273333
|
|
|
Крутой 0ль !
Сообщений: 150
Оценки: 10
Присоединился: 2010-12-02 19:33:25.666666
|
спс ) а у вас и правда дельный способ , наверн с закрытого борда
|
|
|
RE: Распаковка upx'а - 2011-07-19 17:34:51.183333
|
|
|
Alianna
Сообщений: 1922
Оценки: 356
Присоединился: 2010-03-02 11:27:12.343333
|
quote:
Вся распаковка и сводится к нахождению этого OEP'а Это ты только про upx, или про распаковку вообще? Если вообще, то ты забыл про возможность, что упаковщик создаст переадресовочные элементы IAT или будет выполнять некоторые первые байты программы (т.н. "украденные байты"). quote:
oldybg Может быть OllyDbg? quote:
Т.к эта команда работает со стеком , то мы ставим Hardware breakpoint на 1 строчку выше кода , тоесть в окошке , где отображается стек , мы прокручиваем на 1 строчку вверх Во-первых, указанное на скрине ниже место это не Entry point программы, это походу system breakpoint, во-вторых, проще пройти pushad по f7, перейти в дампе по адресу, указанному в esp, и поставить бряк. Хотя наверно дело вкуса. quote:
если мы видим такие команды как popad и особенно большой прыжок командой JUMP , то ура товарисчи , мы нашли этот OEP В upx jmp на oep находится в самом конце секции, перед кучей нулей. можно сразу прокрутить до низу и поставить бряк туда. quote:
А сейчас нам нужно открыть Peetols Сейчас это находясь на oep или хз где, где-то в конце кода, распаковывающего оригинальный код? quote:
Дальше жмём кнопочку GetImports , и если после нажатия в окошке имортируемые функции будут валидными А если невалид? А если imprec не сможет определить начало и размер IAT? И открою секрет - запакованное upx'ом можно распаковать им же, upx.exe -d имя_файла. Правда иногда попадается похожее на него, но upx его распаковать не может, тогда приходится под отладчиком. // Тьфу, опередили =( А вообще, я не вижу смысла писать подобные статьи, ибо все гораздо подробнее, понятнее и профессиональнее описано в цикле Рикардо Нарвахи "Введение в крэкинг, используя OllyDbg" - http://www.wasm.ru/series.php?sid=17 . Лучше написать вряд ли получится.
|
|
|
RE: Распаковка upx'а - 2011-07-19 17:47:58.943333
|
|
|
Крутой 0ль !
Сообщений: 150
Оценки: 10
Присоединился: 2010-12-02 19:33:25.666666
|
я не вижу смысла писать подобные статьи статья писалась ради делать нечего , кому поможет или заинтересует то отлично , на нет и …. как ни странно про краденные упаковщиком байты не слышал , возьму на заметку
|
|
|
RE: Распаковка upx'а - 2011-07-19 17:54:40.396666
|
|
|
Mатцал Коушек
Сообщений: 10407
Оценки: 91
Присоединился: 2008-07-09 10:27:49.520000
|
quote:
ORIGINAL: Alianna А вообще, я не вижу смысла писать подобные статьи, Да пусть пишет, всё равно, очень полезно прочитать. Рикардо не всякий раз будешь читать, там большой обьём, а здесь полемика, а это есть разные мысли. А мысли нам нужны. А зачем нам мысли? А затем, что одна мысль порождает другую мысль.. Ксакеп станет духовнее, и все, кто приложит к этому руку, будут причислены к лику святых. КрутойОль, давай продолжай, в том же духе.
|
|
|
RE: Распаковка upx'а - 2011-07-19 20:48:13.020000
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Пишите пишете, хоть какое-то движение будет в интересующих темах.
|
|
|
RE: Распаковка upx'а - 2011-07-19 21:06:09.110000
|
|
|
Alianna
Сообщений: 1922
Оценки: 356
Присоединился: 2010-03-02 11:27:12.343333
|
Кстати еще вопросик. На скрине в окне стека обведена область и аж три раза написано слово "код". Что вы под ним подразумеваете?
|
|
|
RE: Распаковка upx'а - 2011-07-19 23:20:25.843333
|
|
|
Крутой 0ль !
Сообщений: 150
Оценки: 10
Присоединился: 2010-12-02 19:33:25.666666
|
ну всмысле код , одним словом куча и не более =0
|
|
|
RE: Распаковка upx'а - 2011-07-19 23:33:21.573333
|
|
|
Alianna
Сообщений: 1922
Оценки: 356
Присоединился: 2010-03-02 11:27:12.343333
|
Ну вообще обычно под кодом подразумевается исполняемый код программы, а не содержимое стека) Подправь)
|
|
|
RE: Распаковка upx'а - 2011-07-26 12:50:36.010000
|
|
|
fromRIDDER
Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
|
Крутой 0ль ! При написании подобных статей, указывай все возможные пути решения проблемы, а именно в данном случае: распаковка программой-упаковщиком, генерик-распаковщики, автоматические распаковщики, ручная распаковка (твоя статья), особенности upx-а и т.д. На скрине не понятно что отображает отладчик: начало распаковки, конец, начало самой программы. Неплохая статья, только несколько пожеланий: [ul]подучи программирование (это про стек, код и т.д.);изучи лучше отладчик (используй термин трейсим до точки входа, пользовательского кода и т.д., а не жмём два раза F9);формируй мысль прямее и не торопись (складывается мнение, что ты статью за пять минут написал - лишь бы отвязались);почитай что-нибудь, желательно из классики - орфография и грамматика хромает.[/ul]
|
|
|
|
|