Сейчас на форуме: asfa, bartolomeo (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Трассировка громоздкого CALL - как найти последнюю команду перед RET? |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 16 июля 2012 17:53 · Личное сообщение · #1 В дебаггере есть полезный регистр EIP - показывает следующую команду,но мне понадобилось наоборот узнать предыдущую. Имеется ооочень большая процедура в виде CALL хххххххх, которая по команде F8 проходится за секунду. Но вот оттрассировать её как выяснилось хз как. Внутри код упаковщика,прыгающий туда-сюда между 5-6 разными блоками памяти. По F8 гнал минут 5,запутался. CTRL+F8 гнало минут 5,тоже самое - не видно ни конца ни края. Журнал трассировки переполняется на 65535 команде. Т.е. я точно знаю что у нее есть выход,но не могу на него выйти. ![]() |
|
Создано: 16 июля 2012 18:03 · Личное сообщение · #2 |
|
Создано: 16 июля 2012 18:11 · Личное сообщение · #3 |
|
Создано: 16 июля 2012 18:13 · Личное сообщение · #4 |
|
Создано: 16 июля 2012 18:18 · Личное сообщение · #5 |
|
Создано: 16 июля 2012 18:31 · Поправил: Lumpy · Личное сообщение · #6 yashechka пишет: Он этого не знал Не знал ![]() Я буду сравнивать как она работает с упаковщиком и без него (проблема именно в ней) Если более точно,мне вот что надо: без упаковщика до конца процедуры отладчик не доходит,а виснет где-то глубоко внутри неё. с упаковщиком доходит,соответственно я пытаюсь вычислить то место где происходит сбой ![]() |
|
Создано: 16 июля 2012 18:48 · Личное сообщение · #7 |
|
Создано: 16 июля 2012 19:07 · Личное сообщение · #8 |
|
Создано: 16 июля 2012 19:44 · Поправил: Vnv · Личное сообщение · #9 |
|
Создано: 16 июля 2012 22:25 · Личное сообщение · #10 |
|
Создано: 16 июля 2012 22:34 · Личное сообщение · #11 |
|
Создано: 16 июля 2012 22:49 · Поправил: Lumpy · Личное сообщение · #12 Vovan666 пишет: А если это какая нибудь процедура для расшифровки? Так и есть,похоже даже на виртуализированный код. Проблема в том,как найти на каком адресе проблема - CALL не выполняется до конца,а после F8 висит бесконечный "Running". А для полной трассировки не хватает 65535 строк в журнале отладчика. Вот такие плюшки Иными словами: в оригинале CALL 12345678 - выполнился и погнали дальше в крякнутом тот же CALL - Running и всё,дальше не идет ![]() |
|
Создано: 16 июля 2012 22:59 · Личное сообщение · #13 |
|
Создано: 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. ![]() |
|
Создано: 16 июля 2012 23:05 · Личное сообщение · #15 |
|
Создано: 16 июля 2012 23:07 · Личное сообщение · #16 |
|
Создано: 16 июля 2012 23:59 · Личное сообщение · #17 |
|
Создано: 17 июля 2012 00:03 · Личное сообщение · #18 Lumpy пишет: Если в стэке после выполнения CALL ничего не меняется,а только состояние регистров - то по идее можно его занопить и вручную прописать значения всех EAX,ECX и т.д. И будет работать? НУ как.Регистры это же не все ещё. Есть же ещё память. она наверняка изменяется. Кинь Пе файл свой. Посмотрим вместе ![]() ![]() |
|
Создано: 17 июля 2012 00:14 · Личное сообщение · #19 |
|
Создано: 17 июля 2012 00:53 · Личное сообщение · #20 |
|
Создано: 17 июля 2012 10:20 · Личное сообщение · #21 |
|
Создано: 17 июля 2012 13:35 · Личное сообщение · #22 Прикол в том,что файл запустился. И хотя трассировка мне ничего не дала,как и поиск сбойного места. Я просто выставил в свойствах Совместимость с Windows 2000 - и заработало. Из-за чего такое может быть? ОС - Windows XP SP3 ,процессор Core2Duo 2 ядра. Прога написана на MS VS 7.1 Или упаковщик каким-то образом принудительно тоже выставляет эту совместимость,просто для пользователя это происходит прозрачно? ![]() |
|
Создано: 17 июля 2012 13:46 · Поправил: schokk_m4ks1k · Личное сообщение · #23 Lumpy ты б лучше прочитал серию статей от Нарвахи, а потом уже что не понятно задавал бы вопросы) dimka_new Во первых совет давал не тебе) ты что адвокат что влазишь за других? че за привычка? за себя отвечай, сам бы лучше Нарваху почитал, советчик, себя обсуждай огрызок) а то что я пишу тебя не должно еб*ть, тебе по моему ничего не писал, вот и сиди и не вякай! ![]() |
|
Создано: 17 июля 2012 13:56 · Личное сообщение · #24 Что тебе не понятно,всё очень даже понятно. Если прога,она защищена упаковщиком + окно что "У вас нет доступа". Упаковщик я снял дампом,восстановил IAT,убрал окно - полученный файл запускается,но не до конца. Процесс есть,а на экране шиш с маслом. Беру ставлю совместимость с Вин2000 - всё ОК. Но упакованный файл так работает. Почему? В PETools все галочки перепробовал - бесполезно. ![]() |
|
Создано: 17 июля 2012 14:06 · Поправил: dimka_new · Личное сообщение · #25 Немного оффтоп schokk_m4ks1k хотелось задать Вам вопрос - сами то Нарваху читали ? В курить не могу нафига сообщения - выложи файл, упакована ???, и прочий мусор ? Для поднятия рейтинга ? Ну гляжу рейтинг уже поднялся - может пора остановится, сделать глубокий вдох и начать писать сочинения, что в школе на лето задали ? Извиняюсь за кал в теме Не хотелось бы отвечать - ну лады отвечу, Нарваху читал - может не полностью, имеется грех, но для решения моих задач достаточно - это раз. Во-вторых - твои посты я советами не считаю. В третьих на этот форум хожу почитать статьи и мысли умных, профессиональных людей. Ты не являешься не первым, не вторым и даже не третьим - и видеть тебя здесь совсем не охото. О чем я собственно и написал. ![]() |
|
Создано: 17 июля 2012 14:21 · Поправил: sivorog · Личное сообщение · #26 Lumpy я в таких случаях делаю как ARCHANGEL описал, 2 раза - с оригинальным файлом и с распакованным. ты тогда реально увидишь, что где изменяется и где прога висит/глючит/падает. может, это нестандартный упаковщик, ну не знаю старый УПХ что ли, либо дело может быть в атрибутах секций анпакнутого файла (чтение/запись/исполнение, что можно процессору делать в секции .data, .rdata, .adata ![]() почитай статьи MozgC о распаковке и статью "Распаковка - это легко!!!", здесь на сайте, если читал уже - загляни снова, вдруг че пропустил ![]() и проанализируй свой packed.exe (будем его так называть) другими анализаторами, хотя бы DiE, ExeInfoPE и Protection ID. скажи нам, что они показали, скрины можешь не приводить. потому что PEiD говорит про UPolyX каждый пятый раз - и на MPRESS, и на Themida (ну эт вряд ли твой случай), и на др. упаковщики/протекторы. add приведи названия, размеры и атрибуты секций оригинального и распакованного файлов - это не всегда помогает, но все же... ![]() |
|
Создано: 17 июля 2012 17:11 · Личное сообщение · #27 Lumpy Беру ставлю совместимость с Вин2000 - всё ОК. Сложно сказать. Насколько помню какую-то функцию, важную при защите, как раз переименовали(или правильно назвали) именно в ХП. Может в ней дело. Возможно, что не совсем корректно распаковали и IAT восстановили. Без инфы трудно сказать. Я в сомнительных случаях еще юзаю RDG Packer Detector в макс. режиме. ![]() |
|
Создано: 17 июля 2012 18:23 · Личное сообщение · #28 dimka_new пишет: Извиняюсь за кал в теме Наоборот,очень хороший кал.Я сам ему хотел написать,но решил что не стоит даже тратить мембраны в клавиатуре на это ![]() tundra37 пишет: Возможно, что не совсем корректно распаковали и IAT восстановили IAT сто раз перепроверил - там всё ОК. Можно снять 2 трассы - одну в режиме обычном, вторую - когда стоит совместимость с Вин2к. Только наверно OllyDbg не умеет запускать в режиме совместимости ![]() |
|
Создано: 17 июля 2012 18:30 · Поправил: Lumpy · Личное сообщение · #29 sivorog пишет: приведи названия, размеры и атрибуты секций оригинального и распакованного файлов - это не всегда помогает, но все же... Ну ладно,довольно ломать комедию.Просили файл,вот он: http://depositfiles.com/files/kkyjouica А вот ещё одна секретная разработка силовой звезды для исследования космоса: ![]() ![]() |
|
Создано: 17 июля 2012 20:47 · Личное сообщение · #30 |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Трассировка громоздкого CALL - как найти последнюю команду перед RET? |
Эта тема закрыта. Ответы больше не принимаются. |