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

 eXeL@B —› Вопросы новичков —› Проблема с распаковкой UPX
Посл.ответ Сообщение

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

Создано: 10 февраля 2008 13:15 · Поправил: satana
· Личное сообщение · #1

Здраствуйте, у меня возникла проблема с распаковкой UPX. Распаковать решил обычный mspaint.exe, как ни странно мой когда я открыл свой оригинальный mspaint.exe через PEid он написал Nothing Found*... Но не в этом суть, когда я запаковал его UPX'ом PEid показал UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo как раз то что и нужно, и оригинальный и запакованные файлы запускаются нормально, и работают. Далее я все делал по инструкции, в SoftIce ставил бряк на int 3 (bpint 3), далее в PETools открыл запакованный файл через Break & Enter, когда вывалился в SoftIce восстановил eip (e eip 60) снял бряк с int 3 (bc *) - и поставил след.бряк на esp-4. Нажав F5 тутже снова вылез SoftIce:

01059776 . 61 POPAD
01059777 . 8D4424 80 LEA EAX,DWORD PTR SS:[ESP-80] <<--Тута я прервался...
0105977B > 6A 00 PUSH 0
0105977D . 39C4 CMP ESP,EAX
0105977F .^75 FA JNZ SHORT mspaint.0105977B
01059781 . 83EC 80 SUB ESP,-80
01059784 .-E9 36B4FDFF JMP mspaint.01034BBF <<-- Здесь как я понял прыжок на OEP, я так решил по след причине, вот что выполняется если выполнить прыжек...

01034BBF 6A 70 PUSH 70
01034BC1 68 00740001 PUSH mspaint.01007400
01034BC6 E8 11040000 CALL mspaint.01034FDC
01034BCB 33FF XOR EDI,EDI
01034BCD 57 PUSH EDI
01034BCE FF15 B0110001 CALL DWORD PTR DS:[10011B0]

А вот начало незапакованного файла:
01034BBF > $ 6A 70 PUSH 70
01034BC1 . 68 00740001 PUSH mspainto.01007400
01034BC6 . E8 11040000 CALL mspainto.01034FDC
01034BCB . 33FF XOR EDI,EDI
01034BCD . 57 PUSH EDI
01034BCE . FF15 B0110001 CALL DWORD PTR DS:[<&KERNEL32.GetModuleHandleA>]

Так вот, записав на листочек адрес 01034BBF как OEP я снял все бряки в Сайсе и поставил на 01059784 по которому находится прыжек на OEP, когда на нем прервался снова снял все бряки и в зациклил программу (а [enter] jmp eip [enter][enter])

Потом нажал F5 и запустил LordPE, там в списке процессов, на процессе mspaint.exe в контекстном меню выбрал dump full... Сохранив файл под именем dumped.exe

Далее запустил запакованный файл (mspaint.exe), потом ImpRec и в нем выбрал процесс mspaint.exe, в поле OEP ввел 34BBF, нажал на IAT Auto Search, появилось сообщение - Found Address......
В поле RVA поместилось 1000 а в поле Size 00000EA0.
После нажатия на кнопку Get Import в списке появилось 11 строк с библеотеками, напротив каждой стояло YES. Далее нажал Fix Dump, выбрал dumped.exe и все... При запуске dumped_.exe ничего не происходит

Подумал что что-то напутал и еще раз повторил вышеуказанные действия, все тоже самое...

При открытии его в Olly Debug выскакивает сообщение:
Module 'dumped_' has entry point outside the code (.....
(Мои скромные познания в англ.языке подсказывают что сообщение о том что точка входу вне кода)

Однако код такой же как в оригинале (не запакованной), спустившись на несколько строк преравыемся на эксепшене...
01034C34 830D 7CF40301 FF OR DWORD PTR DS:[103F47C],FFFFFFFF <<-- Вот на этой строке...
01034C34 830D 7CF40301 FF OR DWORD PTR DS:[103F47C],FFFFFFFF <<-- В оригинале строка такаяже!

Ничего непонятно... Исключение возникает из за попытки записи по адресу 0103F47C

Пользовался след программами...
UPX 3.00w
PETools 1.5.400
Import REConstructor v1.6F
LordPE (где посмотреть версию так и не нашел)
В настройках LordPE - в котегории Task Viewer галочка стоит только напротив Full dupm: Fix header как и написанно в инструкции, в качестве инструкции использовал статью "Распаковка: от самого простого к чуть более сложному", Автор: MozgC [TSRh].

К топику прилагается архив, в нем:
mspaint.exe - запакованный файл
dumped.exe - дамп
dumped_.exe - должен быть работоспособным распакованным.
answer.txt - эта тема
ImpRecLog.txt - лог ImpRec'a

Более детально чем я описал проблему описать наверное невозможно, помогите поожалуйста разобратся, в часности всетаки распакавать данную прогу и понять почему вылетает исключение, и почему OEP вне кода получился... заранее всем большое спасибо=)

0607_10.02.2008_CRACKLAB.rU.tgz - my.rar



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 10 февраля 2008 14:07 · Поправил: Veliant
· Личное сообщение · #2

Права у секции UPX1 (code) поставь Full access или хотя бы Writeable и все норм запустится....IMHO UPX при помощи SoftIce распаковывать изврат



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

Создано: 10 февраля 2008 14:08
· Личное сообщение · #3

Странно, все нормально распаковал. С импортом проблем не возникло.
У тебя дамп кривой 100%




Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 10 февраля 2008 14:35
· Личное сообщение · #4

satana
У тебя сдамплено неправильно, - не на OEP. Проблем с распаковкой здесь нет никаких - это даже не модифицированный UPX, можно использовать плагин OllyDump и сдампить с восстановлением импорта. Тогда и ImpREC можно не использовать.

-----
Программист SkyNet




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

Создано: 10 февраля 2008 14:47 · Поправил: satana
· Личное сообщение · #5

>>>IMHO UPX при помощи SoftIce распаковывать изврат
Эта первая программа котторую я пытаюсь распаковать вручную=)

>>>Права у секции UPX1 (code) поставь Full access или хотя бы Writeable
Про что почитать чтобы это понять?

>>>У тебя дамп кривой 100%
А почему он в Olly Debug выглядит в точности как оригинал?



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 10 февраля 2008 15:42
· Личное сообщение · #6

Стоя на ЕР, прокрути немного вниз, увидишь нули. перед ними прыжок на OEP- в оле по F7 / F8 прыгай, и сдирай дамп с помощью OllyDump'a. получается рабочий дамп. все упиксы сдираются так, и более простого решения нету.
... при сдирании дампа давишь кнопку "Get EIP as OEP", и никакого восстановления уже не нужно...
По упиксу статьей есть здесь несколько, посмотри, там все по теме, включая скрэмблеры-но они почти не усложняют работу.



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

Создано: 10 февраля 2008 17:25
· Личное сообщение · #7

Gerpes пишет:
, и более простого решения нету.
Есть upx -d file.exe

Для меня главное научится распаковывать, и понять как это происходит, а для этого больше подходит сайс. в данный момент остался один вопрос, это про права секции, в статьях про распаковку про это нету...



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

Создано: 10 февраля 2008 17:44
· Личное сообщение · #8

satana
Может быть дамп получается кривой из-за LordPE , попробуй сдампить при помощи PETools.
А права у секций можно установить в PE редакторе.



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

Создано: 10 февраля 2008 17:55
· Личное сообщение · #9

Секции я нашел и в LordPE и в PETools (PE Editor->Sections) их 4 всего....
UPX0
UPX1
.rsrc
.mackt
А как права у них менять?



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

Создано: 10 февраля 2008 18:12 · Поправил: Assass1n
· Личное сообщение · #10

Ручная распаковка программ, запакованных UPX

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




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

Создано: 11 февраля 2008 09:58
· Личное сообщение · #11

satana пишет:
А как права у них менять?



eb2f_10.02.2008_CRACKLAB.rU.tgz - 123.rar


 eXeL@B —› Вопросы новичков —› Проблема с распаковкой UPX
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати