| eXeL@B —› Вопросы новичков —› Чем можно прочитать строку из окошка? |
| Посл.ответ | Сообщение |
|
|
Создано: 04 февраля 2009 19:38 · Личное сообщение · #1 Знаю, что можно при помощи GetDlgItemTextA[W]. Ещё есть GetWindowTextA[W]. Вот у меня программа, написана на Borland C++. Есть поле для ввода строки в окошке. Нужно остановиться во время чтения этой строки. Фишка в том, что в этой программе нет импорта GetDlgItemTextA[W], а GetWindowTextA не используется именно в этом окошке (динамически ни одна из этих функций тоже не используется, уже проверил). Прикрепил таблицу с импортом/экспортом из Olly. Может кто сможет подсказать в какую сторону искать? Заранее спасибо
P.S. Ещё остаётся метод поставить memory breakpoint на введённую строку, но потом тяжело перейти в секцию кода ![]() 6793_04.02.2009_CRACKLAB.rU.tgz - import.txt
![]() |
|
|
Создано: 04 февраля 2009 20:08 · Поправил: coderess · Личное сообщение · #2 SendMessage (WM_GETTEXT), SendDlgItemMessage(WM_GETTEXT), если выдается сообщение о не правильности введенных данных, то бряк на сообщение (MessageBox(A/W)) и трасировка до функции из которой вызывается. Чаще всего я использую бряк на данные в памяти. ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
|
Создано: 04 февраля 2009 21:12 · Личное сообщение · #3 |
|
|
Создано: 04 февраля 2009 21:30 · Личное сообщение · #4 |
|
|
Создано: 05 февраля 2009 00:48 · Личное сообщение · #5 AlannY coderess пишет: Чаще всего я использую бряк на данные в памяти. Ставь хардварный бряк на свою строку... И когда бряк сработает в стеке чуть выше твое строчки будет адрес процедуры которая положила в стек эту строку. Снимай бряк... Переходи по этому адресу и ставь обычный бряк и в следующий раз ты остановишься в самой проге и не прийдеться шуршать по системным либам. ![]() |
|
|
Создано: 05 февраля 2009 13:16 · Личное сообщение · #6 F_a_u_s_t, практически так я и сделал Только вместо того, что бы смотреть в стек - поставил memory breakpoint на секцию кода, снял жёсткий бряк и запустил, немного потрассировал и оказался там, где хотел
А вообще, в моём случаи используется TControl::GetText функция из стандартной библиотеки Borland C++. Её IDA распознала, так что - был бы я умнее сразу бы догадался где копать
![]() |
|
|
Создано: 05 февраля 2009 16:42 · Личное сообщение · #7 |
|
|
Создано: 05 февраля 2009 18:27 · Личное сообщение · #8 |
| eXeL@B —› Вопросы новичков —› Чем можно прочитать строку из окошка? |






Для печати