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

 eXeL@B —› Вопросы новичков —› Трассировка громоздкого CALL - как найти последнюю команду перед RET?
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 16 июля 2012 17:53
· Личное сообщение · #1

В дебаггере есть полезный регистр EIP - показывает следующую команду,но мне понадобилось наоборот узнать предыдущую. Имеется ооочень большая процедура в виде CALL хххххххх, которая по команде F8 проходится за секунду. Но вот оттрассировать её как выяснилось хз как. Внутри код упаковщика,прыгающий туда-сюда между 5-6 разными блоками памяти. По F8 гнал минут 5,запутался. CTRL+F8 гнало минут 5,тоже самое - не видно ни конца ни края. Журнал трассировки переполняется на 65535 команде.
Т.е. я точно знаю что у нее есть выход,но не могу на него выйти.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 16 июля 2012 18:03
· Личное сообщение · #2

поставь бряк после этого CALL, а на CALL нажми ctrl+F11(trace intro), это аналог CTRL+F8 только в скрытый.




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

Создано: 16 июля 2012 18:11
· Личное сообщение · #3

Так в олли же есть кнопочка, выполнить код до ближайшего RET из CALL Зачем трассировать если можно сразу пройтись до конца процедуры



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

Создано: 16 июля 2012 18:13
· Личное сообщение · #4

войти в call и Ctrl+F9 не ?




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

Создано: 16 июля 2012 18:18
· Личное сообщение · #5

Он этого не знал



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

Создано: 16 июля 2012 18:31 · Поправил: Lumpy
· Личное сообщение · #6

yashechka пишет:
Он этого не знал

Не знал но мне ещё надо чтобы путь от начала процедуры до конца зафиксировать.
Я буду сравнивать как она работает с упаковщиком и без него (проблема именно в ней)
Если более точно,мне вот что надо:
без упаковщика до конца процедуры отладчик не доходит,а виснет где-то глубоко внутри неё.
с упаковщиком доходит,соответственно я пытаюсь вычислить то место где происходит сбой



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 16 июля 2012 18:48
· Личное сообщение · #7

Какой дебаггер то + что за упаковщик? Вторая Олька лучше трейсит вроде как.



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

Создано: 16 июля 2012 19:07
· Личное сообщение · #8

PEId пишет что запаковано UPolyX 0.5
Вторая Олли не годится потому что нужен плагин Hide Debugger



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

Создано: 16 июля 2012 19:44 · Поправил: Vnv
· Личное сообщение · #9

Lumpy пишет:
Вторая Олли не годится потому что нужен плагин Hide Debugger

--> Link <--



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

Создано: 16 июля 2012 22:25
· Личное сообщение · #10

Если в стэке после выполнения CALL ничего не меняется,а только состояние регистров - то по идее можно его занопить и вручную прописать значения всех EAX,ECX и т.д. И будет работать?



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 16 июля 2012 22:34
· Личное сообщение · #11

Lumpy пишет:
Если в стэке после выполнения CALL ничего не меняется,а только состояние регистров - то по идее можно его занопить и вручную прописать значения всех EAX,ECX и т.д. И будет работать?

Гы-гы! если это strlen, то можно. А если это какая нибудь процедура для расшифровки?



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

Создано: 16 июля 2012 22:49 · Поправил: Lumpy
· Личное сообщение · #12

Vovan666 пишет:
А если это какая нибудь процедура для расшифровки?

Так и есть,похоже даже на виртуализированный код. Проблема в том,как найти на каком адресе проблема - CALL не выполняется до конца,а после F8 висит бесконечный "Running". А для полной трассировки не хватает 65535 строк в журнале отладчика. Вот такие плюшки
Иными словами:
в оригинале CALL 12345678 - выполнился и погнали дальше
в крякнутом тот же CALL - Running и всё,дальше не идет



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

Создано: 16 июля 2012 22:59
· Личное сообщение · #13

Calypso выложи экзэ чтоле




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

Что-то как-то написано много и ни о чём. А всё ведь очень просто - нужно человеку не только последние 65535 строк увидеть. Так это - пожалуйста. Перед началом трассировки в Олли заходим в Show Run Trace (мышью давим на кнопочку с тремя точками ..., которая между Show reference и Show sources), далее пкм -> Log to file и указываем расположение и имя файла. Далее трейсим - ставим бряк на выходе, и давим Ctrl+F11. Потом открываем файл, и там весь лог трассировки.

-----
Stuck to the plan, always think that we would stand up, never ran.





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

Создано: 16 июля 2012 23:05
· Личное сообщение · #15

Lumpy пишет:
виснет где-то глубоко внутри неё

однако к лекарю надо



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 16 июля 2012 23:07
· Личное сообщение · #16

Да и трасса-то ему особо не нужна. Раз там бесконечный цикл, то не проще войти в call запустить прогу на выполнение, а через 5 секунд нажать на паузу и найти по ф8 цикл вручную?



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

Создано: 16 июля 2012 23:59
· Личное сообщение · #17

Трасса нужна,без нее там запутаешься совсем.Он же прыгает туда сюда,примерно так:
00461000 внутренние CALL, модификации регистров
...... JMP 007C0000
007C0000 внутренние CALL, модификации регистров
.... JMP 01BCD0000
01BCD0000 внутренние CALL, модификации регистров
.... JMP 0056A000
и так далее




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

Создано: 17 июля 2012 00:03
· Личное сообщение · #18

Lumpy пишет:
Если в стэке после выполнения CALL ничего не меняется,а только состояние регистров - то по идее можно его занопить и вручную прописать значения всех EAX,ECX и т.д. И будет работать?

НУ как.Регистры это же не все ещё. Есть же ещё память. она наверняка изменяется.
Кинь Пе файл свой. Посмотрим вместе



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

Создано: 17 июля 2012 00:14
· Личное сообщение · #19

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



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

Создано: 17 июля 2012 00:53
· Личное сообщение · #20

Lumpy пишет:
прога это секретная разработка одного из оборонных НИИП

Так в личку высылай, нафиг она кому нужна



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

Создано: 17 июля 2012 10:20
· Личное сообщение · #21

Lumpy Не можете прогу выложить, хотя бы разъясните про крякнутый и не крякнутый вариант. Что-то непонятно. Кто крякал,как, зачем и почему оно не работает. Да и цель конечная какая.



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

Создано: 17 июля 2012 13:35
· Личное сообщение · #22

Прикол в том,что файл запустился. И хотя трассировка мне ничего не дала,как и поиск сбойного места.
Я просто выставил в свойствах Совместимость с Windows 2000 - и заработало.
Из-за чего такое может быть? ОС - Windows XP SP3 ,процессор Core2Duo 2 ядра. Прога написана на MS VS 7.1
Или упаковщик каким-то образом принудительно тоже выставляет эту совместимость,просто для пользователя это происходит прозрачно?



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

Создано: 17 июля 2012 13:46 · Поправил: schokk_m4ks1k
· Личное сообщение · #23

Lumpy
ты б лучше прочитал серию статей от Нарвахи, а потом уже что не понятно задавал бы вопросы)
dimka_new
Во первых совет давал не тебе) ты что адвокат что влазишь за других? че за привычка? за себя отвечай, сам бы лучше Нарваху почитал, советчик, себя обсуждай огрызок) а то что я пишу тебя не должно еб*ть, тебе по моему ничего не писал, вот и сиди и не вякай!



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

Создано: 17 июля 2012 13:56
· Личное сообщение · #24

Что тебе не понятно,всё очень даже понятно. Если прога,она защищена упаковщиком + окно что "У вас нет доступа". Упаковщик я снял дампом,восстановил IAT,убрал окно - полученный файл запускается,но не до конца. Процесс есть,а на экране шиш с маслом. Беру ставлю совместимость с Вин2000 - всё ОК.
Но упакованный файл так работает. Почему? В PETools все галочки перепробовал - бесполезно.



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

Создано: 17 июля 2012 14:06 · Поправил: dimka_new
· Личное сообщение · #25

Немного оффтоп

schokk_m4ks1k хотелось задать Вам вопрос - сами то Нарваху читали ?
В курить не могу нафига сообщения - выложи файл, упакована ???, и прочий мусор ?
Для поднятия рейтинга ? Ну гляжу рейтинг уже поднялся - может пора остановится, сделать глубокий вдох и начать писать сочинения, что в школе на лето задали ?

Извиняюсь за кал в теме

Во первых совет давал не тебе) ты что адвокат что влазишь за других? че за привычка? за себя отвечай, сам бы лучше Нарваху почитал, советчик, себя обсуждай огрызок) а то что я пишу тебя не должно еб*ть, тебе по моему ничего не писал, вот и сиди и не вякай!

Не хотелось бы отвечать - ну лады отвечу, Нарваху читал - может не полностью, имеется грех, но для решения моих задач достаточно - это раз.
Во-вторых - твои посты я советами не считаю.
В третьих на этот форум хожу почитать статьи и мысли умных, профессиональных людей.
Ты не являешься не первым, не вторым и даже не третьим - и видеть тебя здесь совсем не охото.
О чем я собственно и написал.

| Сообщение посчитали полезным: esa_r, Vovan666, hlmadip, SReg, plutos

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

Создано: 17 июля 2012 14:21 · Поправил: sivorog
· Личное сообщение · #26

Lumpy

я в таких случаях делаю как ARCHANGEL описал, 2 раза - с оригинальным файлом и с распакованным.
ты тогда реально увидишь, что где изменяется и где прога висит/глючит/падает.
может, это нестандартный упаковщик, ну не знаю старый УПХ что ли, либо дело может быть в атрибутах секций анпакнутого файла (чтение/запись/исполнение, что можно процессору делать в секции .data, .rdata, .adata , а что нельзя)

почитай статьи MozgC о распаковке и статью "Распаковка - это легко!!!", здесь на сайте, если читал уже - загляни снова, вдруг че пропустил

и проанализируй свой packed.exe (будем его так называть) другими анализаторами, хотя бы DiE, ExeInfoPE и Protection ID. скажи нам, что они показали, скрины можешь не приводить.
потому что PEiD говорит про UPolyX каждый пятый раз - и на MPRESS, и на Themida (ну эт вряд ли твой случай), и на др. упаковщики/протекторы.

add

приведи названия, размеры и атрибуты секций оригинального и распакованного файлов - это не всегда помогает, но все же...



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

Создано: 17 июля 2012 17:11
· Личное сообщение · #27

Lumpy
Беру ставлю совместимость с Вин2000 - всё ОК.
Сложно сказать. Насколько помню какую-то функцию, важную при защите, как раз переименовали(или правильно назвали) именно в ХП. Может в ней дело. Возможно, что не совсем корректно распаковали и IAT восстановили. Без инфы трудно сказать. Я в сомнительных случаях еще юзаю RDG Packer Detector в макс. режиме.



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

Создано: 17 июля 2012 18:23
· Личное сообщение · #28

dimka_new пишет:
Извиняюсь за кал в теме

Наоборот,очень хороший кал.Я сам ему хотел написать,но решил что не стоит даже тратить мембраны в клавиатуре на это
tundra37 пишет:
Возможно, что не совсем корректно распаковали и IAT восстановили

IAT сто раз перепроверил - там всё ОК. Можно снять 2 трассы - одну в режиме обычном, вторую - когда стоит совместимость с Вин2к. Только наверно OllyDbg не умеет запускать в режиме совместимости



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

Создано: 17 июля 2012 18:30 · Поправил: Lumpy
· Личное сообщение · #29

sivorog пишет:
приведи названия, размеры и атрибуты секций оригинального и распакованного файлов - это не всегда помогает, но все же...

Ну ладно,довольно ломать комедию.Просили файл,вот он:
http://depositfiles.com/files/kkyjouica
А вот ещё одна секретная разработка силовой звезды для исследования космоса:
http://depositfiles.com/files/7rghk9smm



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

Создано: 17 июля 2012 20:47
· Личное сообщение · #30

Возможно, просто криво распаковали/восстановили неправильно импорт. И всё.


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Трассировка громоздкого CALL - как найти последнюю команду перед RET?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати