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

 eXeL@B —› Вопросы новичков —› PE compact & Olly debugger
Посл.ответ Сообщение

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

Создано: 21 января 2007 04:26
· Личное сообщение · #1

Здасьте все. Я до сих пор читаю статью MozgC'а "распаковка...". UPX и ASP распаковал, но на
PEcompact у меня проблема: я пользуюсь не сайсом, как в статье, а Олей. И когда я открываю
в Оле что-нибудь запакованое PE compact'ом, то возникает такая картина (я открыл PCmedic
как в статье, скачанный по адресу www.softok.org/utils/admin/16463dload.html):

00401000 MOV EAX,PcMedic.00532128
00401005 PUSH EAX
00401006 PUSH DWORD PTR FS:[0]
0040100D MOV DWORD PTR FS:[0],ESP
00401014 XOR EAX,EAX
00401016 MOV DWORD PTR DS:[EAX],ECX
00401018 PUSH EAX
00401019 INC EBP
0040101A INC EBX
И Т.Д.

Дело в том, что при нажатии на F9 (run) выполнение программы останавливается на строке
00401016 и при повторном нажатии F9 ничего не происходит. B строке состояния появляется
надпись: "Access violation when writing to [00000000] - use Shift+F7/F8/F9 to pass exeption
to program". Т.К. я не знаю английского, пробую нажимать Shift+F9, меня перекидывает
на адрес: 7C81EB33 и тут выполнение программы снова приостанавливается и уже другая надпись
в строке состояния: "Exeption 406D1388 - use use Shift+F7/F8/F9 to pass exeption to program",
Нажимаю опять Shift+F9 программа остаётся на этом же адресе, только надпись уже немножко другая:
"Exeption 0EEDFADE - use use Shift+F7/F8/F9 to pass exeption to program". Нажимаю ещё раз
Shift+F9 и только в этот раз запускается PCmedic.
Что здесь происходит?
А если я ставлю Брэкпоинт "hr 0012FFC0", где 0012FFC0 это мой ESP-4, то мне выдаёт кучу
остановок и ни одной из них не похожа на ту, которая в статье. Как мне попасть на переход
на OEP?




Ранг: 120.9 (ветеран), 5thx
Активность: 0.080
Статус: Участник
Programmer and reverser

Создано: 21 января 2007 04:51
· Личное сообщение · #2

чтоб найти ОЕР в ПЕКомпакте, можно просто произвести следующие действия:
ПКМ -> Search for -> Sequence of commands
Вбиваем:
popfd
push eax
И все. следующая команда пихает в стек ОЕР. вроде работает на всех прогах, запакованных им.

-----
Уважайте других и пишите грамотно.





Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 21 января 2007 04:52
· Личное сообщение · #3

[poly] glot пишет:
Т.К. я не знаю английского

Ну так учи! 80% информации в инете (в т.ч. обычные статьи) написаны на английском языке.

А по теме - 1 раз поток прерван на том месте, где исключение возникло, 2 раз - на том месте, где оно начало обрабатываться (на самом деле оно начинает обрабатываться в 0 кольце, но это не важно - здесь интересно начало обработки в 3 кольце).

[poly] glot пишет:
А если я ставлю Брэкпоинт "hr 0012FFC0", где 0012FFC0 это мой ESP-4, то мне выдаёт кучу
остановок и ни одной из них не похожа на ту, которая в статье. Как мне попасть на переход
на OEP?

Зачем столько мороки? Вводи hr esp-4 - мб ты ошибся со значением?
Оля с выключенными исключениями доходит до jmp eax по shift+F9 на ура



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

Создано: 21 января 2007 05:51
· Личное сообщение · #4

Executioner
После этих двух комманд у меня идёт push ss, я ставлю клавишей F2 брэкпоинт по адресу,
на котором эта команда, но отладчик не прерывается на этой команде => команда не выполняется,
а как мне тогда посмотреть, что будет в ss, если этот кусок не будет выполняться?

HoBleen
Учить английский в ближайшие пол-года времени нет. А потом думаю стоит попробовать...
Исключение - в смысле исключительная ситуация? Если да, то почему в PE compact'e есть
обработчик исключительных ситуаций, ведь в статье mozgC'a в главе о ПЕ компакте ничего
не сказано об исключительных ситуациях?
А как отключить в Оле исключения и всегда ли отключение исключений помогает?
Насчёт мороки: я когда зацикливаю прогу в Оле, то я выделяю корректируемую строку,
нажимаю пробел и пишу "jmp" и адрес данной строки вручную. Когда я пишу "jmp eip",
то написано:"Unknown identifier". Нельзя ли как-нибудь всё-таки написать jmp eip, а не
вводить адрес вручную?




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 21 января 2007 06:17
· Личное сообщение · #5

[poly] glot пишет:
ведь в статье mozgC'a в главе о ПЕ компакте ничего
не сказано об исключительных ситуациях?

Видимо ты исследовал PeCompact 2.x, в статье рассказано о снятии версии 1.х, где исключения не вызываются.

[poly] glot пишет:
А как отключить в Оле исключения и всегда ли отключение исключений помогает?

Options -> Debugging Options -> Exceptions и выбираешь те, которые будут обходиться на автомате.
В принципе их надо проходить вручную, если после него надо что-то сделать.

[poly] glot пишет:
Когда я пишу "jmp eip",
то написано:"Unknown identifier". Нельзя ли как-нибудь всё-таки написать jmp eip, а не
вводить адрес вручную?

Наверно нет. Но esp вводить можно.



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

Создано: 21 января 2007 08:00
· Личное сообщение · #6

Спасибо, HoBleen, очень благодарен, считаю, что полностью разобрался...



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

Создано: 21 января 2007 21:52
· Личное сообщение · #7

[poly] glot пишет:
Т.К. я не знаю английского

++ Мля, зато какй ник (полиглоТ)



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

Создано: 21 января 2007 23:34
· Личное сообщение · #8

[poly] glot
Вставка зацикливания :
1) ставим метку : -> label @@1
2) ставим команду jmp @@1



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 22 января 2007 03:28
· Личное сообщение · #9

Options->Debugging Options->Exceptions понаставь галочек Ignore (Pass to program).
А OEP для PECompact 2.x ищется просто - ставь хардварный бряк на EP и F9.
Как брякнется знач ты уже на OEP
Они по ходу совпадают, правда мож не всегда - глубоким исследованием не занимался - но мне не попадалось.



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

Создано: 22 января 2007 03:51
· Личное сообщение · #10

tundra37

Я так понимаю, это ты мне показал зацикливние в МАСМе и других компиляторах, разве в Оле можно какому-нибудь адресу дать метку?



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

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

А нафиг нада?
Пиши адрес вместо имени метки и все дела.




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 22 января 2007 05:05
· Личное сообщение · #12

[poly] glot пишет:
Я так понимаю, это ты мне показал зацикливние в МАСМе и других компиляторах, разве в Оле можно какому-нибудь адресу дать метку?

tundra37 пишет:
1) ставим метку : -> label @@1

жмешь двоеточие, вводишь название.

Еще можно с пом. какого-то плагина для ольки (не помню название) импортировать символы из иды.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 22 января 2007 10:13
· Личное сообщение · #13

HoBleen пишет:
Еще можно с пом. какого-то плагина для ольки (не помню название) импортировать символы из иды.


GoDup

-----
[nice coder and reverser]





Ранг: 120.9 (ветеран), 5thx
Активность: 0.080
Статус: Участник
Programmer and reverser

Создано: 22 января 2007 10:25
· Личное сообщение · #14

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

-----
Уважайте других и пишите грамотно.





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

Создано: 22 января 2007 10:43
· Личное сообщение · #15

[poly] glot

-->почитай еще это<--

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




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

Создано: 22 января 2007 11:29
· Личное сообщение · #16

[EXE]_cutor - спасибо за ссылку, как MozgC'a осилю, так эту статью прочитаю


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


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