Сейчас на форуме: user99, _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых)

 eXeL@B —› Основной форум —› OllyDBG
Посл.ответ Сообщение

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

Создано: 04 октября 2005 23:29
· Личное сообщение · #1

Не могу понять как заставить сабж ставить брекпоинты
на функции win.
В SoftIce для этого было достаточно в настройках указать dll
Как это делается в сабже ?



Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 04 октября 2005 23:38
· Личное сообщение · #2

DenKor
Тут их можно сразу ставить
Alt+f1->BP MessageBoxA (с учетом регистра)
или ести ты находишся в ф-ии Ф2 на коде

Проблемы будут тольков 98ым

-----
Подписи - ЗЛО! Нужно убирать!




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

Создано: 05 октября 2005 01:41
· Личное сообщение · #3

Я набиваю это в command bar
Но брекпоинт не срабатывает.
В окне брекпоинтов есть ссылка на адрес,но что это именно это заадрес не показывается ?

Не можешь мне выложить уже настроенную свою версию ollydbg вместе с плагинами



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 05 октября 2005 02:07
· Личное сообщение · #4

DenKor
Не мути.
Если у тебя WinXP или Win2k - всё должно работать.
Ищи в статьях.
Ищи в форуме.

DenKor пишет:
Я набиваю это в command bar
Но брекпоинт не срабатывает.

Набираешь "bpx MessageBoxA", вылетает окошко со всеми анализированными функциями из импорта.
Мышкой тыкаешь по верхней полоске графы "Destination", ищешь глазами в алфавитном порядке твой MessageBoxA.
Если бряк установился, строки с искомым будут выделены.
Если строки не выделены возможно только два варианта:
1 криво набрал
2 такой функции просто нет в списке

-----
Всем привет, я вернулся




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

Создано: 05 октября 2005 02:27
· Личное сообщение · #5

Или просто bpx 1, открывается окно импорта, sort by destination - будет по алфавиту, находим нужную функцию и ставим F2, или там же правой мышой - Set breakpoint on every call to MessageBoxA. - тогда брейки будут установлены на все MessageBoxA'ы в проге...

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 05 октября 2005 02:35
· Личное сообщение · #6

добавлю к словам Bitfry:
после "bpx MessageBoxA", чтобы не рыскать по списку функций и не искать, выделена ли строка с твоим бряком в списке всех API функций, можно сразу лезть в окно с брейкпоинтами (ALt-B) и там смотреть.
потому что, когда bp удачно установлен, то его быстрее увидеть как раз в списке брейкпоинтов, а не списке всех функций, особенно когда их много

-----
EnJoy!




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

Создано: 05 октября 2005 03:09
· Личное сообщение · #7

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

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




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

Создано: 05 октября 2005 06:07 · Поправил: DenKor
· Личное сообщение · #8

Дело в том, что у меня в появившемся окне не показывается эта функция.
Там всего 2-3 функции из kernel32.Base...

Соответсвенно я так понимаю, что бряк по этому не срабатывает.
В окне бряков его нет.

Окно которое появлется - intermodular calls

Я бы SoftIce воспользовался, но из-за avp он у меня завешивает компьютер при запуске



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

Создано: 05 октября 2005 06:20
· Личное сообщение · #9

CTRL-G (Go To) и пишешь MessageBoxA (Учитывая регистр). Попадаешь в тело функции, идешь на REtn и ставишь F2.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 05 октября 2005 08:18
· Личное сообщение · #10

DenKor пишет:
Дело в том, что у меня в появившемся окне не показывается эта функция.
Там всего 2-3 функции из kernel32.Base...

Вот по этому я и советовал обратить внимание на список проанализированных функций, особенно если их мало .
Если всего 2-3 функции из kernel, значит прога запакована... Других вариантов я не встречал.

PEiD в руки и удачи.

-----
Всем привет, я вернулся




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

Создано: 14 октября 2005 23:08
· Личное сообщение · #11

Подскажите,плз, как поставить бряк на обращение к окну, если хэндл его мне известен.




Ранг: 299.6 (наставник)
Активность: 0.30
Статус: Участник
Armadillo Killer

Создано: 14 октября 2005 23:23
· Личное сообщение · #12

cosec Читай www.reversing.net/articles/beginner/cdaemon1.htm



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

Создано: 15 октября 2005 14:15
· Личное сообщение · #13

Какое отношение эта статья имеет к Olly и к бряку на хэндл окна.
Я же говорю:
Есть окно(edit), его хэндл. В этом окне число написано, мне нужно отловить момент чтения/записи из/в этот Edit.



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 15 октября 2005 15:27
· Личное сообщение · #14

cosec
В АЙСЕ поставь брейк на сообщение с фильтром или определи адресс WindowProc а потом пиши условный брейкпоинт. А вообще это долгий путь, так что если там число то попробуй для начала bpx GetDlgItemInt/SetDlgItemInt



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

Создано: 15 октября 2005 16:16
· Личное сообщение · #15

Спасибо
А что такое фильтр?



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 15 октября 2005 16:37
· Личное сообщение · #16

А вот теперь займёмя самообрзованием.
Формат команды простой, введи в айсе название и увидишь подсказку. Нужно указать хендл окна и уведомление. Вообще-то команда на messagе-и делает брейкпоинт на WindowProc, но иногда по необьяснимым причинам она глючит.
Насчёт WindowProc - открой MSDN посмотри на параметры, не забудь что при входе в функцию в стеке кроме параметров будет ещё и EIP. Напиши выражение с условными операторами типа "if", "esp->4" ....



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

Создано: 15 октября 2005 16:46
· Личное сообщение · #17

Все ясно, что ничего не ясно!
А где про это почитать можно?



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 15 октября 2005 16:58
· Личное сообщение · #18

Несколько странный вопрос - ответ google.
Кстати, для модераторов.
Очень много участников этого форума увлеклись Олей. Хелпа написали много. А вот по Айсу я тут ничего исчерпывающего не видел. Конечно книгу Айрапетяна (кажись так автор называется) переписывать заново не стоит, но всё же курс молодого бойца по Айсу может стоит выложить, скажем вместе с архивом в разделе скачать ?



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

Создано: 15 октября 2005 17:09
· Личное сообщение · #19

Почему-то на этом форуме не могут ответить нормально ни на один вопрос.
никаких конкретных советов



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 15 октября 2005 17:14
· Личное сообщение · #20

Это форум не для полностью зелёных, а для тех кто хоть чуть-чуть может сделать чтот-то своими руками и гловой
А конкретные советы дают на конкретные вопросы. Если правильно сформулировать вопрос, а для этого нужно самому в правильном направлении поработать, то ответ будет соответствующий.



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

Создано: 15 октября 2005 17:16
· Личное сообщение · #21

Ага, понятно



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

Создано: 15 октября 2005 17:17
· Личное сообщение · #22

Форум не для зеленых - это wasm.ru



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

Создано: 15 октября 2005 17:22
· Личное сообщение · #23

А какие функции работают с edit



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

Создано: 15 октября 2005 17:22
· Личное сообщение · #24

?



Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 15 октября 2005 17:34
· Личное сообщение · #25

cosec
ТОваришч вы много создаете постов без содержательных, делаю вам первое предупреждение

"какие функции работают с edit" Самые обычные SendMessageA(handleEdit,,,,)
TranslateMessage, GetWindowTextA, SetWindowTextA

-----
Подписи - ЗЛО! Нужно убирать!




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

Создано: 15 октября 2005 18:39
· Личное сообщение · #26

спасибонаконец-то помощь



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 17 октября 2005 11:05
· Личное сообщение · #27

Синтаксис: BMSG дексриптор_окна(хендл) [L] [начальное_сообщение] [конечное сообщение] [IF условие] [DO “команда1; команда2; команда3; …”]
Дескриптор_окна – хендл окна (если не знаешь что это такое, то ты слишком рано взялся за СофтАйс).
L – указывает Айсу не активизировался а выводить информацию о срабатывании точки остановки в лог окна команд. Для сохранения лога команд Айса нужно запустить loader32.exe и выбрать пункт меню File->Save SoftICE History As … Это может пригодится когда пытаешься получить ответ на свой вопрос.
начальное_сообщение – номер первого сообщения из диапазона
конечное_сообщение – номер последнего сообщения из диапазона

Если задать только начальное сообщение то именно оно и вызовет срабатывание Айса.
Вот несколько примеров:
bmsg 100212 WM_LBUTTONDOWN - точка остановки на нажатие левой клавиши мыши для хендла окна 100212.
bmsg 1000415 WM_MOUSEFIRST WM_MOUSELAST - точка остановки на сообщения из диапазона WM_MOUSEFIRST - WM_MOUSELAST включительно для дескриптора окна 1000415.
bmsg 100212 WM_GETTEXT – брейкпоинт на считывание текста.

API функции типа GetWindowTextA и GetDlgItemTextA насамом деле отсылают сообщение WM_GETTEXT. Сообщение получает оконная процедура. Дальше – больше: BMSG насамом деле ставит брейкпоинт на процедуру обработки оконных сообщений. Поэтому если сильно приспичило то можно написать спец.макрос, а если лень то с помощью Spy++ определяем процедуру обработки сообщений для окна (кнопки, текстового поля ….) а дальше пишем команду Айсу <bpx адрес_процедуры_окна IF (esp->8) == WM_GETTETXT>. Это означает, что когда в процедуру окна прийдёт во втором параметре сообщение WM_GETTETXT Айс радостно, или не очень, но всёже всплывёт. Не нужно забывать, что команда bpx контекстно зависимая. То есть ты должен находится в контексте программы для которой ставишь брейкпоинт. Самый простой способ это сделать – <addr имя_exe_модуля>.
Теперь маленький пример для Delphi прог. Брейкпоинт на считывание текста ставится так:
<bpx CallWindowProcA IF (esp->8)== ХЕНДЛ_ОКНА && (esp->c) == WM_GETTEXT> Дальше F12 и вводим комнду <d (ebp+8)->0> видим считанный текст. Дальше bpm …
Даный пример не универсален, всё зависит от типа окна (ANSI, UNICODE) и конкретной реализации компилятора, а также операционной системы. Но я пытаюсь дать толчок для самостоятельного изучения не только Айса но и ОС.

Пойди в книжный магазин и купи книгу Крис Касперски «Техника и философия хакерских атак» (2-е издание), а также Р.А. АЙРАПЕТЯН «Отладчик SoftICE подробный справочник» - пригодится и не один раз. Ведь знать всё - просто не возможно, а вот знать где искать – вполне реально.

Для больно умных: не нужно на меня наезжать, и рассказывать о DeDe, разнице в реализации функций user32 в разных ОС, не растравлении всех скобок в командах, склерозе насчёт сервиса 11D2 прерывания 2Eh и т.д. и .т.п. Я тут не энциклопедию пишу, а пытаюсь объяснить начинающему что такое брейк.


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


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