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

 eXeL@B —› Основной форум —› Ручная распаковка (глупый вопрос наверно)
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 ноября 2005 16:39 · Поправил: Destruction
· Личное сообщение · #1

Прочитал пару статеек, поставил SoftICE, прочитал еще пару статеек, софтайс не понравился (знаю, это плохо), поставил OllyDbg.
Собственно пытаюсь вручную распаковать программу.
Имеется:
Windows XP SP2, OllyDbg v1.10, PEditor 1.7 by yoda & M.o.D., PeID 0.93 с плагинами, UPX X-Shell (сам upx к нему видимо прилагался).
Действия:
1. Взять какую-нить прогу, беру калькулятор http://ultimasoft.ru/temp/calc.exe .
2. Проверяю через PeID не упакован ли он, результат удовлетворительный.
3. Запускаю UPX X-Shell, пакую.
4. Проверяю через PeID как запаковалось - результат положительный, пишет UPX 0.89.6....
5. Запускаю OllyDbg, F3 -> calc.exe, оказываюсь ессно на строке PUSHAD - листаю вниз, нахожу POPAD:
01020DCE > 61 POPAD
01020DCF .-E9 A116FFFF JMP calc.0102475
6. Записываю на листок OEP (01012475), перехожу на строку с JMP, вешаю бряк (F2), запускаю (F9), жмякаю F8 (хз зачем, так было написано).
7. Запускаю PEditor -> tasks -> нахожу свой калькулятор -> dump(full) -> сохраняю как DUMPED.exe
8. browse -> нахожу дамп, открываю в ImageBase написано 01000000, следовательно точка входа будет 00012475 - вписываю, жму apply changes - выскакивает веселое окошко, которое я тут же закрываю.
9. Жмякаю checksum и жму "correct it !", опять окошко которое я закрываю.
Далее в описании было написано, что у меня выдет работающая распакованная программулька, но вместо того, чтобы быть работающей программулькой у меня вылазает ошибка:
"Ошибка при инициализации приложения (0xc0000005). Для выхода из приложения нажмите кнопку ОК."
Мне ничего не остается делать - жму ок и сижу расстроенный. Что я не так делаю?
Вот нерабочая распаковка (ссылка). http://ultimasoft.ru/temp/DUMPED.exe



Ранг: 45.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 22 ноября 2005 16:44
· Личное сообщение · #2

осталось запустить LORDPE и востановить импорт



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 ноября 2005 16:54 · Поправил: Destruction
· Личное сообщение · #3

Спасибо, помогло, пойду ASProtect'ы распаковывать учится

Блин, ведь знал что вопрос глупый, кстате почему так получается, что распакованный файл получается больше изначально пакованного? Остаётся что-то от пакера? А, вот глянул в PE Explorer - лежит две секции: UPX0 и UPX1, место понимаешь не лишнее занимают.. Чем бы их побить? Пробовал через PETools - файл перестал быть файлов Win32, через LordPE тоже не вышло. Попробую поискать статейку про ручное убийство.

PS: Читал вот эту статью http://www.exelab.ru/art/olly_un.php - хоть повесьте, нету там ничего про восстановление таблиц импорта. А еще где-то читал, что впринципе оно должно запускаться, но только у меня (что навело меня на мысль защитить свои программы от "умельцев" копирующих их copy+paste).



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

Создано: 22 ноября 2005 17:20
· Личное сообщение · #4

Destruction пишет:
кстате почему так получается, что распакованный файл получается больше изначально пакованного?


ЛОЛ
ты чо ниразу rar'ом не пользовался чтоль?
упх (и другие пакеры) сжимает исполняемый файл и дописывает распаковщик
када ты дампиш прогу то получаеш разжатый файл он ессесно будет больше чем сжатый




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 22 ноября 2005 17:26 · Поправил: Jupiter
· Личное сообщение · #5

размер сдампленного файла может быть больше исходного (не пакованного) по нескольким причинам:
из-за файлового выравнивания и выравнивания в памяти (сделай сдамленному файлу RebuildPE в PE Tools/LordPE);
из-за преобразования секций из нескольких в одну и неэффективного распихивания их в памяти;
из-за дублирования части файла (новый импорт в кач-ве новой секции и т.п.)

что до секций UPX0/1 - тебе их не убить ;) т.к. они то и есть программа
попробуй свой файл открыть в PE Explorer - и пересохранить, он автоматически распакует upx ;)
и вообще upx лучше распаковывть им самим ;) даже для обучения
запакуй upx, примени scrambler, попытайся восстановить файл (см. также об упаковщиках http://wasm.ru/article.php?article=packers2#8 )

-----
EnJoy!




Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 ноября 2005 17:43
· Личное сообщение · #6

WarrioR пишет:
ЛОЛ
ты чо ниразу rar'ом не пользовался чтоль?
упх (и другие пакеры) сжимает исполняемый файл и дописывает распаковщик
када ты дампиш прогу то получаеш разжатый файл он ессесно будет больше чем сжатый

Очень смешно.

Я пользовался пакерами, я опытный программист, пытался даже писать свой архиватор. Просто не надо лезть в гущу не ознакомившись с ссутью дела, твой пост меня даже не обидел кстате.

Если перечитаешь и не поймешь, то сделай следущее:
Возьми не пакованный файл, запомни размер, запакуй, распакую вручную, сверь с иходным размером.

PS: Вдумался, кажется понял про, что Вы говорите, перечитайте мой пост еще раз - в нём написано, что я обнаружил, что в программе появился лишний код, я хочу от него избавится.
Jupiter пишет:
что до секций UPX0/1 - тебе их не убить ;) т.к. они то и есть программа
попробуй свой файл открыть в PE Explorer - и пересохранить, он автоматически распакует upx ;)
и вообще upx лучше распаковывть им самим ;)

Вы меня тоже не поняли, видимо общаться разучился, жаль (ну или я Вас не понял) -(

Эти секции есть в распакованной программе, т.е. они уже не должны быть частью кода и вообще не нужны, т.к. программа теперь распакована и секции отвечающие за распаковку программы соответсвенно не требуются.

За остальную информацию спасибо - буду смотреть. Ребилдить пи-структуру пробывал - не помогло ни на байт




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

Создано: 22 ноября 2005 17:58
· Личное сообщение · #7

Вот почитай про перестройку ресурсов www.team-x.ru/show.php?id=coding/cracking/29
А секции UPX0/1 это и есть твои секции data и text .



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 ноября 2005 18:07
· Личное сообщение · #8

Спасибо, читаю

Насчет того, что PE Explorer распаковывает UPX сам - оказалось правда, интересно, как он умудряется сделать так, что файл выходит один в один? (по размеру, байты не сверял, лень).. Эхх, столько информации и так мало времени...



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

Создано: 22 ноября 2005 18:41
· Личное сообщение · #9

Destruction пишет:
Насчет того, что PE Explorer распаковывает UPX сам - оказалось правда, интересно, как он умудряется сделать так, что файл выходит один в один? (по размеру, байты не сверял, лень)..


Даже сам упх када распакует ранее пакованное имже там уже много изменений а чо тада говорить про других..



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 ноября 2005 18:46 · Поправил: Destruction
· Личное сообщение · #10

WarrioR пишет:
Даже сам упх када распакует ранее пакованное имже там уже много изменений а чо тада говорить про других..

Хмм, проверил - и правда... Интересненько... FC нашел измнений аж на половину веса исходной программы (150/300)kb.

Блин, собственно я полез в паковку, чтобы создать нормальный патч (русификатор) для пакованной программы, а оказывается - обломь..

PS: Интересная статейка.




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 22 ноября 2005 19:04
· Личное сообщение · #11

Destruction
Возможно, они распаковывают UPX как UPX -u , т.е. стандартными методами.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 22 ноября 2005 19:46
· Личное сообщение · #12

плагин PE Explorer'a для распаковки upx - статический распаковщик, основанный на коде самого upx и написан на delphi, его функционал аналогичен "upx -d"

Destruction пишет:
Эти секции есть в распакованной программе, т.е. они уже не должны быть частью кода и вообще не нужны, т.к. программа теперь распакована и секции отвечающие за распаковку программы соответсвенно не требуются.


эти секции и есть программа, я об этом написал, так что не поняли меня Вы
stub распаковщика занимает не так много места, что занимать две секции одновременно ;)
то, что секции называются UPX0/1, а не .text|.data, ещё не говорит о том, что они не нужны
ведь при дампинге секции автоматом не переименовываются ;)

-----
EnJoy!




Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 ноября 2005 19:50
· Личное сообщение · #13

Jupiter пишет:
при дампинге секции автоматом не переименовываются

А почему?...
Потому, вероятно потому, что UPX'у на это как-то зелено. Ладно.

Спасибо всем.

PS: Распаковал ASPack, обошел ASProtect, доволен до нельзя


 eXeL@B —› Основной форум —› Ручная распаковка (глупый вопрос наверно)
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати