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

 eXeL@B —› Вопросы новичков —› Ручная распаковка программ, запакованных UPX
<< . 1 . 2 .
Посл.ответ Сообщение

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

Создано: 06 июля 2007 09:47
· Личное сообщение · #1

Доброе время суток всем продвинутым, средним и начинающим крекерам моего любимого форума и сайта!
Прочитал две статьи по ручной распаковке программ, запакованных UPX.
1 статья автора Bit-hack "Распаковка? Это легко!!!"
2 статья автора FEUERRADER "Ручная распаковка UPX версий ниже 1.20"
Принцип распаковки в обоих статьях почти один и тот же. Только FEUERRADER советует после нахождения OEP перед снятием дампа зациклить прогу в отладчике SoftICE
Вопрос:
1. Зачем нужно зацикливать прогу перед тем как снять дамп в LordPE?
2. Каким образом можно зациклить прогу используя отладчик OllyDbg?
Спасибо за раннее всем крекерам, кто ответил на мой вопрос!
С большим уважением morg




Ранг: 85.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 12 июля 2007 15:53
· Личное сообщение · #2

Кстати я перед обучением распаковки в самом начале (совсем недавно =)) дампил и восстанваливал импорт у не запакованной проги =))

-----
radio uno in ibisa ...




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

Создано: 12 июля 2007 16:19
· Личное сообщение · #3

И так господа крекеры приступим к ручной распаковке проги от UPX!
1. Наша цель: cracme7.exe
2. Где взял: с диска CD "Штурман хакера" (купил в магазине)
3. Загружаем исследуемую прогу в PEiD, видим:
UPX 0.89.6-1.02/1.05-1.24 (Delphi) stub->Markus & Laszlo
4. Загружаем исследуемую прогу в PROTECTION ID видим:
.=[ProtectionID v5.2]=.[c]Cdkiller&[x/xxx]
Build 01-11-2006...
>Ready
Scanning->D:\cracme7.exe
File Type: Exe, Size:264704[040A00h]Bytes
[!] UPX [unknown/modified]!
- Scan Took:0.870 Seconds
Вывод: видим что никаким Scrambler' ом тут и не пахнет, значит будем прогу распаковывать по статье Bit-h@ck "Распаковка? Это легко!!!"
5. Запускаем crackme7.exe в Оле. После подгрузки DLL библиотек Оля спаршивает: проанализировать файл или нет. Жмем No
Мы стоим на Ер:
00480760 60 PUSHAD
6. Пролистаем асамблерный листинг вниз и найдем команду: popad
00480943 61 POPAD
00480944 E9 1764FDFF JMP 00456D60 <- ЭТО ПЕРЕХОД НА ОЕР
00480949 0000 ADD BYTE PTR DS:[EAX], AL
Записываем на бумажку адрес: 00456D60
7. Нажимаем правую крысу, далее Go to-> Expression в появившемся окне набираем: 00456D60 и нажимаем ОК. Мы стоим на ОЕР:
00456D60 3D 028BF328 CMP EAX, 28F38B02
теперь можно и дамп снять.
8. Делаем Plugins->OllyDump->Dump debugged process
Согласно предложенному совету крекера Hellspawn убираем галочку с Rebuild Import, т.к. восстанавливать таблицу импорта будем в ImpREC
9. Далее нажимаем Dump и в появившемся окне сохраняем наш дапм под именем: Dumped
Смотрим и видим, что рядом с crackme7.exe появился наш дамп: Dumped
10. Выходим из Оли. Запускаем наш нераспакованный файл cracme7.exe
11. Открываем ImpREC. Заходим в настройки Options и ставим галочку рядом с надписью Fix Ep to OEP.
12. Выбираем в верхнем окне наш запущенный crackme7.exe и нажимаем на него левой крысой.
13 Вычисляем RVA OEP= 00456D60- 00400000=56D60
14. Полученный 56D60 вписываем в соответствующее поле ОЕР и жмем IAT Auto Search
15. Выдается окно с надписью " Скорее всего таблица импорта найдена, нажмите Get Import"
Нажимаем Get Import
16. В окошке повыше появились импортируемые адреса. Жмем Show Invalid и видим, что неопознанных функций нет, т.е. таблица импорта воостановилась полностью!!!
17. Нажимаем Fix Dump, в появившемся окне - открыть - выбирем наш файл Dumped и жмем открыть.
18. Видим что рядом с нераспакованной прогой cracme7.exe, нашим дампом, который мы делали в Ольке появляется наш распакованный файл Dumped_.exe Ура мы сломали UPX!!!
19. Запускаем наш распакованный файл Dumped_.exe, а там сука - ОБЛОМ
Появляется окно:
Dumped_.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извенения за неудобства.
И закрывается эта сука только в Оле, пока я не нажму - Отладка
Вот тебе и долбанный UPX?!
Господа крекеры какую ошибку я совершил при ручной рапаковке проги cracme7.exe от UPX?
Что не так я сделал? Может не надо было бы мне выходить из Ольки после снятия дампа, для того чтобы зайти в ImpREC и восстановить таблицу импорта? Так про это наш продвинутый крекер Bit-h@ck в своей статье ни слова не говорит! А я извините только начинающий крекер - по моему статьи пишутся именно для них!, зачем это статья нужна среднему и продвинутому крекеру - он и так все это знает!
Или я не прав в своих рассуждениях?
Я благодарю всех крекеров моего любимого форума, кто пирнимал участие в решении моей проблемы!!!
Удачи Вам всем!!!



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 12 июля 2007 16:36 · Поправил: Sturgeon
· Личное сообщение · #4

Сорри . 3ton чуть ниже все правильно написал.



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

Создано: 12 июля 2007 16:42 · Поправил: 3ton
· Личное сообщение · #5

morg поставь bp на 00480944 и нажми <F9>
потом один раз <F7> и ты на OEP. Теперь снимай дамп, прикручивай импорт и т.д. Ты снимаешь дамп с нераспакованного crackme.




Ранг: 115.8 (ветеран)
Активность: 0.080
Статус: Участник

Создано: 12 июля 2007 20:10
· Личное сообщение · #6

Demon666 пишет:
Мля, мне стыдно за вас(!)


Про постоянное снимание этой галки не было сказано ни слова. Топик о другом.
У каждого свое понятие об удобстве.

нех%№ флудить, умник.

-----
Ни одно доброе дело не должно остаться безнаказанным !!!




Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 12 июля 2007 21:02 · Поправил: RSI
· Личное сообщение · #7

morg
Ты меня поражаешь! тебе 2 ролика сняли люди - а ты все опять за свое, за статью и др...

morg пишет:
5. Запускаем crackme7.exe в Оле. После подгрузки DLL библиотек Оля спаршивает: проанализировать файл или нет. Жмем No
Мы стоим на Ер:
00480760 60 PUSHAD
6. Пролистаем асамблерный листинг вниз и найдем команду: popad
00480943 61 POPAD
00480944 E9 1764FDFF JMP 00456D60 <- ЭТО ПЕРЕХОД НА ОЕР
00480949 0000 ADD BYTE PTR DS:[EAX], AL


Да вот теперь стоя на адресе 00480944 жми F2 - это значит поставить брейкпоинт, и жми F9 чтобы программа запустилась и распаковалась. После этого сратаботает твой бряк, опять жмешь F2, чтобы его снять и потом F8 чтобы выполнить команду. Вот после этого это будет OEP распакованнай программы.

А дальше делай как по твоему плану

З.Ы. Я уже на знаю как тебе по-другому обьяснить



Ранг: 158.7 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 13 июля 2007 00:25
· Личное сообщение · #8

RSI пишет:
Я уже на знаю как тебе по-другому обьяснит

чем больше смотрю на топик, тем больше понимаю, что объяснения должны быть:
1) upx -d
2) Quick Unpack
3) RL!dePacker
4) PEiD Generic Unpacker
+ ещё много и много распаковщиков заточенных конкретно под upx...

-----
Я ещё не волшебник, я только учусь...




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 13 июля 2007 00:38
· Личное сообщение · #9

[EXE]_cutor пишет:
нех%№ флудить

А ну да-да, сорри за флуд в топике ниачем… или ты со мной не согласен?
Если бы вы сразу предложили топикстартеру выпить йаду, думаю он поюзал бы поиск и через минут десять уже умел бы распаковывать не только UPX…

[EXE]_cutor пишет:
У каждого свое понятие об удобстве.

А ну, в таком случае мы являемся простыми юзверями крЭк-тулуз, и тупо повторяем все то что написано в статьях… мдя……
Сталобыть я увидел истЕну! ©

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 158.7 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 13 июля 2007 02:46
· Личное сообщение · #10

Veliant пишет:
UPX меньше чем за минуту снять мона

36 секунд (от начала загрузки в отладчик до проверки работоспособности (размер 334 кб))...
от большого безделия только что проверил

-----
Я ещё не волшебник, я только учусь...




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

Создано: 14 июля 2007 20:04
· Личное сообщение · #11

Все-таки общение на форуме очень полезная вещь! Не все нюансы можно понять, когда читаешь статью, а вот общение на форуме - совсем другое!
Господа крекеры прошу извинить меня, если что то не правильно спросил у Вас или не правильно задал вопрос. Вы ведь тоже когда-то начинали заниматься этим замечательным исскуством и не все сразу было Вам понятно, так же как и в моей ситуации.
Прежде чем закрыть эту тему хотел бы получить ответ:
1. Почему чтобы попасть на ОЕР, обязательно необходимо поставить бряк? Почему нельзя так:
Go to->Expression - записываем ОЕР [00465D60] нажимаем ОК и останавливаемся на адресе:
00465D60 3D 028BF328 CMP EAX, 28F38B02
Почему стоя в Оле на этом адресе не снять бы дамп?
2. После снятия дампа для того чтобы восстановить таблицу импорта как сделать правильно:
1. Не выходя из Оли (стоим на ОЕР) открыть ImpREC и восстановить таблицу
2. Закрыть прогу в отладчике, выйти из него, запустить нераспакованный ехе.файл, открыть ImpREC и восстановить таблицу
Благодарю всех крекеров, кто принял участие отвечая на мою заданную тему!
Желаю всем Вам удачи!



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 14 июля 2007 20:37
· Личное сообщение · #12

morg пишет:
Почему стоя в Оле на этом адресе не снять бы дамп?

Принцип работы всех упаковщиков состоит в том, что на жестком диске лежит сжатая программа (что-то типа архива). Когда ты запускаешь программу, то код упаковщика распаковывает в память программу, которая и будет уже выполнятся в памяти.
На примере с УПХом цикл распаковки начинается с команды POPAD и заканчивается командой PUSHAD, поэтому после выполнения последней команды распаковки в памяти лежит уже распакованная программа, с которой и снимаем дамп.
Команда Go to->Expression просто переходит на указанный адрес. Программа при этом не запускается и не выполняется. Соответственно, никакой распаковки тоже не происходит. И как выше уже писал 3ton ты снимал дамп с нераспакованной проги.
А по поводу импорта это без разницы как его снимать.




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 14 июля 2007 20:40
· Личное сообщение · #13

1) потому что прежде чем снять дамп надо чтобы программа распокавалась, для этого она должна выполниться до ОЕП. И как ты собрался прыгать на ОЕП через GotoExpression если ты не знаешь изначало этот самый ОЕП? Его найти еще надо!

-----
invoke OpenFire




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

Создано: 14 июля 2007 23:12
· Личное сообщение · #14

Благодарю ВСЕХ крекеров кто общался со мной!
На этом тему считаю закрытой!


<< . 1 . 2 .
 eXeL@B —› Вопросы новичков —› Ручная распаковка программ, запакованных UPX
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати