Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Распаковка upx'а

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Взлом программ] >> Распаковка upx'а
Имя
Сообщение << Старые топики   Новые топики >>
Распаковка 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
Post #: 1
RE: Распаковка upx'а - 2011-07-19 17:17:27.616666   
headsucker

Сообщений: 1304
Оценки: 10
Присоединился: 2011-02-09 15:30:26.450000
Очень полезная статья (касаемо универсальных принципов распаковки).

Но именно юпикс можно распаковать гораздо проще:

upx.exe -d file.exe
Post #: 2
RE: Распаковка upx'а - 2011-07-19 17:25:02.273333   
Крутой 0ль !

Сообщений: 150
Оценки: 10
Присоединился: 2010-12-02 19:33:25.666666
спс )
а у вас и правда дельный способ , наверн с закрытого борда
Post #: 3
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 . Лучше написать вряд ли получится.
Post #: 4
RE: Распаковка upx'а - 2011-07-19 17:47:58.943333   
Крутой 0ль !

Сообщений: 150
Оценки: 10
Присоединился: 2010-12-02 19:33:25.666666
я не вижу смысла писать подобные статьи
статья писалась ради делать нечего , кому поможет или заинтересует то отлично , на нет и ….
как ни странно про краденные упаковщиком байты не слышал , возьму на заметку
Post #: 5
RE: Распаковка upx'а - 2011-07-19 17:54:40.396666   
Mатцал Коушек

Сообщений: 10407
Оценки: 91
Присоединился: 2008-07-09 10:27:49.520000
quote:

ORIGINAL: Alianna
А вообще, я не вижу смысла писать подобные статьи,

Да пусть пишет, всё равно, очень полезно прочитать.
Рикардо не всякий раз будешь читать, там большой обьём, а здесь полемика, а это есть разные
мысли.
А мысли нам нужны. А зачем нам мысли?
А затем, что одна мысль порождает другую мысль..
Ксакеп станет духовнее, и все, кто приложит к этому руку, будут причислены к лику святых.

КрутойОль, давай продолжай, в том же духе.
Post #: 6
RE: Распаковка upx'а - 2011-07-19 20:48:13.020000   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
Пишите пишете, хоть какое-то движение будет в интересующих темах.
Post #: 7
RE: Распаковка upx'а - 2011-07-19 21:06:09.110000   
Alianna

Сообщений: 1922
Оценки: 356
Присоединился: 2010-03-02 11:27:12.343333
Кстати еще вопросик. На скрине в окне стека обведена область и аж три раза написано слово "код". Что вы под ним подразумеваете?
Post #: 8
RE: Распаковка upx'а - 2011-07-19 23:20:25.843333   
Крутой 0ль !

Сообщений: 150
Оценки: 10
Присоединился: 2010-12-02 19:33:25.666666
ну всмысле код , одним словом куча и не более =0
Post #: 9
RE: Распаковка upx'а - 2011-07-19 23:33:21.573333   
Alianna

Сообщений: 1922
Оценки: 356
Присоединился: 2010-03-02 11:27:12.343333
Ну вообще обычно под кодом подразумевается исполняемый код программы, а не содержимое стека) Подправь)
Post #: 10
RE: Распаковка upx'а - 2011-07-26 12:50:36.010000   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
Крутой 0ль !
При написании подобных статей, указывай все возможные пути решения проблемы, а именно в данном случае: распаковка программой-упаковщиком, генерик-распаковщики, автоматические распаковщики, ручная распаковка (твоя статья), особенности upx-а и т.д.

На скрине не понятно что отображает отладчик: начало распаковки, конец, начало самой программы.

Неплохая статья, только несколько пожеланий: [ul]
  • подучи программирование (это про стек, код и т.д.);
  • изучи лучше отладчик (используй термин трейсим до точки входа, пользовательского кода и т.д., а не жмём два раза F9);
  • формируй мысль прямее и не торопись (складывается мнение, что ты статью за пять минут написал - лишь бы отвязались);
  • почитай что-нибудь, желательно из классики - орфография и грамматика хромает.[/ul]
  • Post #: 11
    Страниц:  [1]
    Все форумы >> [Взлом программ] >> Распаковка upx'а







    Связаться:
    Вопросы по сайту / xakep@glc.ru

    Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.