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

 eXeL@B —› Вопросы новичков —› Symbol not defined
Посл.ответ Сообщение

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

Создано: 27 марта 2006 14:36
· Личное сообщение · #1

Привет ALL.
Вообщем проблема в следующем. В Сайсе ставлю бряк на сообщение WM_GETTEXT, а он мне выдает Symbol not defined (WM_GETTEXT). Сайс поставлен вместе с Driver studio 3.2. Насколько я понимаю нужно запустить Symbol Retriever скачать символы и отконвертировать их в формат .nms для Сайса. Но ссылка по умолчанию не работает. Никто не знает откуда их качать? Заранее благодарен.



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

Создано: 27 марта 2006 17:41
· Личное сообщение · #2

Мда. У retriever'а оказались старые библиотеки debughelp.dll и symsrv.dll. Загрузил. Только теперь ICE пишет Symbol file "hal" newer than the module. Symbol informationis WRONG,retranslate the NMS file to fix



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

Создано: 27 марта 2006 18:22
· Личное сообщение · #3

hermit пишет:
Насколько я понимаю нужно запустить Symbol Retriever скачать символы

Это нужно только для отладки ядра. WM_GETTEXT вещь стандартная - это просто 0Dh
и должна работать. Я даже угадаю твою ошибку - ты задал BMSG WM_GETTEXT, а надо
BMSG <hwnd окна> WM_GETTEXT



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

Создано: 27 марта 2006 21:03
· Личное сообщение · #4

Точно, ты прав. Только все же АЙС интересная штука. Значит пишу
:BMSG 00300FC 0Dh
Syntax error
:bl
00) BMSG 00300FC WM_GETTEXT
:bc 00

Потом

:BMSG 00300FC WM_GETTEXT
Syntax error
:bl
00) BMSG 00300FC

Все же он как-то неадекватно относится к WM_GETTEXT



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

Создано: 28 марта 2006 09:28
· Личное сообщение · #5

hermit пишет:
Все же он как-то неадекватно относится к WM_GETTEXT

Насчет адекватности - проверь bpx WM_GETTEXT - должен на 0D установить.
Правда система довольно быстро загнется
По поводу синтаксиса - я смотрел на версии 2.7 - с тех пор могло и поменяться.
Набираешь bmsg и смотришь подсказку внизу. Скорее всего hwnd нельзя
в таком виде задавать, хотя 2.7 у меня не ругалась.



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

Создано: 29 марта 2006 22:33
· Личное сообщение · #6

Проверил bpx WM_GETTEXT. Выдает все те же Symbol not defined.

С синтаксисом BMSG вроде тоже все в порядке (в подсказке BMSG hWnd [L] [begin-msg[end-msg]]...,
в самой документации написано: to set a window message breakpoint for the windows handle 1001E, use
BMSG 1001E WM_NCPAINT).
Да, еще поменял ось WinXPSp2 -> Win2k Pro Sp4. В первой hwnd работал как-то нестабильно. Теперь с hwnd все отлично. Только вот на выданный им Handle (0100F6) BMSG 0100F6 WM_GETTEXT выдает Invalid window handle.



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

Создано: 29 марта 2006 23:56
· Личное сообщение · #7

Хотя в принципе проблему с hwnd можно обойти:
:addr explorer
:hwnd

Найти Handle проги и спокойно ставить BMSG. Только вот хотелось бы поставить бряк на оконную процедуру:
:bpx 7C16E1BD IF (esp->8) == WM_GETTEXT // == 0Dh

Выдает Invalid Expression. Ругается походу на esp->8, хотя судя по документации бряк совершенно легален.



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

Создано: 30 марта 2006 11:20 · Поправил: tundra37
· Личное сообщение · #8

hermit пишет:
// == 0Dh

Выдает Invalid Expression.

Ну так это не С++. Здесь // - это оператор и действительно "Invalid Expression"

Кстати именно после addr hwnd перестает ругаться. Может и bmsg заработает.



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

Создано: 30 марта 2006 19:12
· Личное сообщение · #9

Sorry, неправильно выразился. Просто не подумал что меня могут понять буквально.В оладчике я писал
:bpx 7C16E1BD IF (esp->8) == WM_GETTEXT
и
:bpx 7C16E1BD IF (esp->8) == 0Dh

В первом случае ругается на WM_GETTEXT, а во втором надо заменить 0Dh на 0D и бряк установлен, только оладчик как-то подозрительно не всплывает.

А hwnd не хочет работать именно после addr:
:addr crackme
:hwnd crackme
unable to find a window desctop
:hwnd
:unable to find a window desctop

Хотя под Win2k hwnd работает



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

Создано: 13 июня 2007 10:27
· Личное сообщение · #10

hermit
Слушай, а откуда ты все-таки загрузил символы, у меня что-то тоже ссылочка не работает ни в какую.
( msdl.microsoft.com/download/symbols )



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

Создано: 13 июня 2007 20:03
· Личное сообщение · #11

Satyr, сомневаюсь, что он тебе ответит. На дату посмотри.
http://exelab.ru/download.php?action=list&n=MTA=
Сюда заходил?

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




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

Создано: 14 июня 2007 05:56
· Личное сообщение · #12

ОК, символы я загрузил, но ntoskrnl.pdb и halaacpi.pdb не конвертируются соответственно в ntoskrnl.nms и hal.nms, хотя в bat-файле все пути прописаны правильно. Т.е. на выходе 6 nms-файлов вместо 8-ми. В чем может быть дело?



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

Создано: 12 июля 2007 05:11 · Поправил: Satyr
· Личное сообщение · #13

Хочу поделиться на всякий случай, как я решил свою проблему с конвертацией pdb в nms. Symbol Retriever ничего не загружал, и тогда я заменил библиотеки dbghelp.dll и symsrv.dll на более новые, кстати выдранные из дистрибутива Windbg. После этого Symbol Retriever подгрузил 2 pdb файла для ntoskrnl.exe и hal.dll, но назывались они какими-то совсем левыми именами. Вот эти Pdb конвертировались нормально.

И тут опять возник вопрос: функции GetmessageBoxA и GetWindowTextA импортируются обе из User32.dll.
Тогда почему Softice ставит б\п на GetWindowTextA а на bpx GetmessageBoxA выдает "symbol not defined"?



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

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

Потому что функции "GetmessageBoxA" в WinApi действительно нету. Есть функция "MessageBoxA" или "MessageBoxW".



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

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

такая команда :

bpx SendMessageA IF (*(esp+4)==1105c4) && (*(esp+8)==WM_GETTEXT)

SoftIce отвечает "symbol not defined (WM_GETTEXT)"
nms файлы обновил буквально на днях (хотя такой бряк и раньше не работал)



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

Создано: 14 июля 2007 09:05
· Личное сообщение · #16

А что мешает hex'ом заменить WM_GETTEXT?
bpx SendMessageA IF (*(esp+4)==1105c4) && (*(esp+8)==0Dh)

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




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

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

Bitfry
круто, Bitfry, последний вариант и вправду рабочий, только там надо в конце 0D, а не 0Dh.
(кстати, я этот бряк так и забыл убрать и пока я это писал, у меня SoftIce вывалился со Stack Overflow!!)


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


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