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

 eXeL@B —› Вопросы новичков —› Ужасяющая проблема с елементарными брейкпойнтами в SoftICE`е. Помогите...
Посл.ответ Сообщение

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

Создано: 12 июля 2006 03:27
· Личное сообщение · #1

Дорогие друзья! Подскажите, пожалуйста, в чём моя проблема.
Намучился я с установкой SoftICE под Windows XP, но таки поставил, вроде пашет, всё нормально почти, но есть одно "НО":

при установке брейкпойнта (к примеру, "bpx MessageBoxA") SoftICE действительно останавливается на первой строчке процедуры USER32!MessageBoxA, НО стоит мне только нажать F12 (чтобы пробежать опкоды и вернуться из функции на место её вызова), как выскакивает само окошко во взламываемой программе и приходится жать "ОК", в последствии даного происшествия "окно" SoftICE`а исчезает (ВОТ она проблема, я везде читаю, что оно опять должно выскочить само, да прямо на месте вызова MessageBoxA! Но не тут-то было). После этого я нажимаю CTRL+D в попытках возобновить "окно" SoftICE`а, но он тогда уже находится где-то очень далеко - в модуле ntoskrnl в функции PsGetCurrentProcessId (ужОс-то какой). По крайней мере вверху окна написано "ntoskrnl!PsGetCurrentProcessId+0130".

Неужели я такой ламер?? Помогите... растолкуйте.. Ну уж очень прошу. СУТКИ над этим мучаюсь, весь интернет облазил, весь гугл, весь краклаб и другие подобные сайты. Повидимому ни у кого такой проблемы не возникало ещё (хотя я таки уверен, что просто чего-то недопонимаю)

Очень надеюсь на вашу помошь, експерты!

Спасибо за внимание

P.S. и ещё: Обьясните, плиз, принципы адресации в рантайме. В тюториале с крякмисом pilorama.com.ru/4newbies/4nb010.php такие красивые там адреса упоминаются, типа 4013D8 или 4013DC, а у меня в айсе всё такое некрасивое, типа 0008:F140F1DE или 0010:0140AEFF. Как понимать адреса упомянутые в статье?

P.S. Зарание, дважды прошу прощения за, возможно, глупые вопросы ))



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

Создано: 12 июля 2006 08:12
· Личное сообщение · #2

используй OLYDbg



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

Создано: 12 июля 2006 12:03
· Личное сообщение · #3

Я уже начал об этом задумываться, но не хочется, так долго морочился, таки установил, и SoftICE мне кажется удобнее (с комманд лайном), на него все статьи ориентированы, а про Оли не такие хорошие отклики, да и не могу некак там брейкпойнт установить ))

Может всё-таки кто-то знает, как мне помочь? )

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



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

Создано: 12 июля 2006 12:49
· Личное сообщение · #4

SlipKnot
на OllyDbg тоже есть комманд лайн



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

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

maikkri5ki пишет:
на OllyDbg тоже есть комманд лайн

а как его врубить?



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

Создано: 12 июля 2006 16:17 · Поправил: maikkri5ki
· Личное сообщение · #6

SlipKnot
на олю 2 плагина есть,
1. comandbar
2. comandline



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

Создано: 12 июля 2006 16:40
· Личное сообщение · #7

Ой красота, установил СommandBar 3.00.108, терь Оля у меня красавица )))
Спасибо, maikkri5ki



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

Создано: 12 июля 2006 17:03
· Личное сообщение · #8

SlipKnot
А проблема твоя простая, как и у всех новичков : вместо внимательно читать и думать - сразу спрашивать.
Нажав F12 и пробежав до возврата из функции ты этим ее выполнил. И больше это окно уже не выскочит.
А в инструкциях написано примерно следующее : выполните команду RET, запомните место команды call - она будет перед адресом возврата и ПЕРЕЗАПУСТИТЕ программу ! А теперь надо ставить бряк, либо за несколько команд до CALL - для простых защит, либо опять же читать и думать. Увы, чужими ответами еще никто мастером не стал. Пока сам не сделаешь и тысяча гениальных ответов не сделают тебя умнее.



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

Создано: 12 июля 2006 17:21
· Личное сообщение · #9

tundra37 пишет:
выполните команду RET, запомните место команды call


Я бы с радостью всё это проделал, да вот только говорю же, после выполнения комманды RET у меня выскакивает само диалоговое окно, которое как-бы "гасит" SoftICE и после нажатия "ОК" ничего не происходит , и мне ничего не остаётся делать, как только жать CTRL+D, я же хочу увидеть откуда вызывалась MessageBoxA, но когда открывается SoftICE, он совсем не там где надо.

Как можно подавить диалоговое окно при пошаговом выполнении комманд?

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


Полностью с этим согласен. Я вот не читая статьи pilorama.com.ru/4newbies/4nb010.php просто скачал файл вчера и создал для него патч, который просто обходит проверку серийника (это конечно не генератор, но как для совсем первого раза, по-моему, неплохо, учитывая, что я всего 2 дня вообще этим интересуюсь).

Я так понял (без обиды), что ты меня обвиняешь в бестолковстве и надежде на чужие ответы =), но ведь это всего лишь технический вопрос (учитывая ещё и степень трудности и глюкавости SoftICE`а на WinXP). Так что с твоим обвинением я не совсем согласен

Спасибо за помощь!



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

Создано: 12 июля 2006 18:37
· Личное сообщение · #10

SlipKnot
Пардон тогда. Сам невнимательно прочел.
Тогда надо : в айсе смотреть стек - на вершине лежит адрес возврата. Можно тут же посмотреть дизассемблер и не делать лишних действий. В олли, возможно, и "прогон до return" получится.
Правда остановимся на команде RET и придется делать, как я сказал.
По поводу адресов : в проге в айсе у меня обычно адрес сегмента 0023:004xxxxxx , 08 и 10 - это системные адреса. 014ххх - это скорее всего DLL из программы, а про F1xxx ты явно загнул - больше 7F не может быть, если конечно у тебя не 64-бита или ключ /3Gb используется.
В примерах изучают обычно простые программы, без DLL - они лежат с адреса 00400000.
Тут немного отвлекся и вспомнил. Посмотри в айс команду FKEY - что у тебя зашито на F12. Тогда уж будем думать.



Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 12 июля 2006 19:14 · Поправил: Error_Log
· Личное сообщение · #11

SlipKnot пишет:
чтобы пробежать опкоды и вернуться из функции на место её вызова

Можно сделать проще - когда брякнешся на начале MessageBox просмотри вниз саму функцию и поставь на первый ret после ее начала бряк (двойным кликом мыши по опкоду). Далее, нажав F5 ты увидишь окошко, нажав в нем "ok" ты снова увидишь окно SoftICE на команде ret, теперь достаточно выполнить эту команду, нажав F8 и ты окажешся в месте вызова MessageBox. Так же можешь попробовать вместо F12 ввести команду p ret или нажать F11.

-----
Research is my purpose




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

Создано: 12 июля 2006 19:50
· Личное сообщение · #12

>FKEY
F12: ^P RET;

Не знаю, подскажи, как посмотреть на вершину стека? Что-то я совсем запутался?




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 12 июля 2006 20:18
· Личное сообщение · #13

SlipKnot пишет:
как посмотреть на вершину стека?

dd esp -- самый первый DWORD и будет твой адрес возврата.

-----
the Power of Reversing team




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

Создано: 12 июля 2006 20:54
· Личное сообщение · #14

Error_Log пишет:
когда брякнешся на начале MessageBox просмотри вниз саму функцию и поставь на первый ret после ее начала бряк (двойным кликом мыши по опкоду). Далее, нажав F5 ты увидишь окошко, нажав в нем "ok" ты снова увидишь окно SoftICE на команде ret, теперь достаточно выполнить эту команду, нажав F8 и ты окажешся в месте вызова MessageBox.

Спасибо большое! Так сработало! А второй вариант не сработал.

Я экспериментирую на крякми по статье pilorama.com.ru/4newbies/4nb010.php и заметил кое-что в SoftICE: если я в даный момент нахожусь в определенном сегменте, то я не могу задать БП на комманду другого сегмента (даже так: bpx xxxx:xxxxxxxx), это можно проделать ТОЛЬКО после того, как программа войдёт в MessageBoxA. Вот так.

DillerInc пишет:
dd esp -- самый первый DWORD и будет твой адрес возврата.

Спасибо. Буду знать на будущее.

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



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

Создано: 13 июля 2006 11:15
· Личное сообщение · #15

Маленькое замечание. Посмотрел этот кракми, но дело даже не в этом.
У меня 2000-й и в конце MessageBox стоит RETN 10 !!! Соответственно F12 и не работает ?! Ведь код RET - C3, а у этой команды C2. Или я не прав?!




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 13 июля 2006 13:07 · Поправил: DillerInc
· Личное сообщение · #16

tundra37 пишет:
в конце MessageBox стоит RETN 10

...всё правильно -- так и должно быть,и всё при этом работает(F12).
Просто может у товарища стоит отладчик какой-нибудь допотопной версии -- от того и не работает...

-----
the Power of Reversing team




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

Создано: 14 июля 2006 10:15
· Личное сообщение · #17

SlipKnot пишет:
если я в даный момент нахожусь в определенном сегменте, то я не могу задать БП на комманду другого сегмента

Есть такое понятие, как контекст(context) - грубо говоря, адресное поле процесса. Софтайс может задать останов только в контексте текущего процесса(см. ниже уточнение) - достаточно часто при случайном останове ты попадаешь в idle(пустой процесс). Системные DLL( функция MessageBox в т.ч.) доступны во всех контекстах. В MessageBox ты попадаешь в контексте своего крякми. Для переключения контекста служит команда addr и это все описано в материалах для новичка.


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


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