Сейчас на форуме: Magister Yoda, rtsgreg1989, ==DJ==[ZLO] (+6 невидимых) |
eXeL@B —› Основной форум —› Вызов окон |
Посл.ответ | Сообщение |
|
Создано: 13 марта 2005 10:57 · Личное сообщение · #1 |
|
Создано: 13 марта 2005 11:54 · Личное сообщение · #2 |
|
Создано: 13 марта 2005 12:34 · Личное сообщение · #3 |
|
Создано: 13 марта 2005 12:59 · Личное сообщение · #4 |
|
Создано: 13 марта 2005 13:05 · Личное сообщение · #5 |
|
Создано: 13 марта 2005 13:17 · Личное сообщение · #6 dosikus пишет: ткнуть меня носом http://www.exelab.ru/art/ollydbg.php dosikus пишет: Про работу с окнами и сообщениями http://www.exelab.ru/art/ Hyper пишет: а вобще иди статьи почитай лучше. Начни с FAQ ----- TBR |
|
Создано: 13 марта 2005 13:45 · Поправил: Hyper · Личное сообщение · #7 dosikus Ща, подожди немного. Мы уже окончательно хелп дочищаем по Олле. Скоро на тестинг ОКОНЧАТЕЛЬНЫЙ (надеюсь) зальём. Статьи статьями, а ФСЕ фичи Олли тока из хелпа можно выудить. dosikus пишет: А по Execute till user code Alt+F9 я однозначно должен попасть на место после вызова создания окна ты попадешь в код программы на адрес сразу после CALL'а, допустим идёт код: push 0 ; 1 строка push 0 ; 2 строка call something1 ; 3 строка push 0 ; 4 строка call something2 ; 5 строка Ты когда на 3 строке нажмешь F7, можешь попасть в свой USER32.dll (если этот колл функ-ю из юзверя вызывает). И будешь ты тусить в юзвере32 до первого RET, который либо кинет тебя в какую нить другую либу, или вернёт в код твоей проги. Дык вот, если ты даванешь Alt+F9, то с вероятностью 97% окажешься на пуше из 4 строки. Вот те глава по этому вопросу из хелпа 4360_Выполнить до кода пользователя.rtf |
|
Создано: 13 марта 2005 14:25 · Личное сообщение · #8 |
|
Создано: 13 марта 2005 18:58 · Личное сообщение · #9 Еще способ который я нигде еще не встречал. Применим только для прог написанных на Delphi или C++ Builder! (их довольно много в % отношении ко всем прогам поэтому способ вполне юзабельный). Многократно опробован на разных прогах и показывает хороший результат по экономии времени. Основное назначение: вычисление места вызова всяческих нагов. Ход работы: 1. Сканером окон вычисляем класс окна (например "frmNag"). 2. В НЕХ-редакторе заменяем все текстовые включения "frmNag" на что-нибудь произвольное, например "XYZ". 3. Запускаем прогу в OllyDbg. 4. Первая ошибка вывалится в момент создания окна, пропускаем ее (Shift+F9). 5. Вторая ошибка вывалится при попытке показать несуществующее окно. Проходим глючащий участок кода пошагово (Shift+F8) и очень быстро (обычно за 2-3 ret'a) оказываемся чуть ниже места вызова это окна. 6. Записываем адрес функции вызова нага, грузим в отладчик оригинальный файл проги, ставим бряк и проверяем верно ли нашли место вызова окна. 7. Действуем по обстоятельствам - делаем jmp через вызов окна или nop'им его. З.Ы. Если метод действительно нигде не описывается (в чем я лично сильно сомневаюсь) не буду возражать против помещения его в FAQ |
|
Создано: 14 марта 2005 15:59 · Личное сообщение · #10 |
|
Создано: 14 марта 2005 23:36 · Личное сообщение · #11 |
|
Создано: 15 марта 2005 16:27 · Поправил: Gloomy · Личное сообщение · #12 |
eXeL@B —› Основной форум —› Вызов окон |