Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Softice using help 24.09.01 16:53
Автор: sikd Статус: Незарегистрированный пользователь
|
Подскажите новичку. пожалуйста
Есть программа, требующая ввода числа из окна ввода.
Можно ли с помощью Softice найти ту точку программы, к-я следует сразу за вводом, а еще лучше - первое обращение к введенному числу.
Если можно, то как?
|
|
Softice using help 24.09.01 17:00
Автор: zelych Статус: Member
|
> Подскажите новичку. пожалуйста > > Есть программа, требующая ввода числа из окна ввода. > Можно ли с помощью Softice найти ту точку программы, к-я > следует сразу за вводом, а еще лучше - первое обращение к > введенному числу. > Если можно, то как?
bpx getwindowtexta или bpx getdlgitemtexta или что-то в этом роде..
когда выскочит SI - p ret
теперь можно посмотреть куда число пишется..
обращение к памяти:
bpm r xxxx:xxxxxx - остановится при чтении, вместо r можно w - запись по адресу или x - выполнение..
кажется так, может где-то и ошибся, точно не помню.
|
| |
сорри, ошибочка 24.09.01 17:03
Автор: zelych Статус: Member
|
если там число вводится, то скорее всего надо bpx getwindowinta или что-то в этом роде..
|
| | |
сорри, ошибочка 24.09.01 17:53
Автор: sikd Статус: Незарегистрированный пользователь
|
> если там число вводится, то скорее всего надо bpx > getwindowinta или что-то в этом роде..
А какой системный dll содержит эти функции? Чтобы можно было бы его подключить в loadere softica
|
| | | |
сорри, ошибочка 24.09.01 18:09
Автор: Cyril <sc> Статус: Member
|
> > если там число вводится, то скорее всего надо bpx > > getwindowinta или что-то в этом роде.. > > А какой системный dll содержит эти функции? Чтобы можно > было бы его подключить в loadere softica
Забудь про SymLoader, так как он нужен для подключения
отладочной символьной информации
которую ни один программист в трезвом уме и здравом рассудке
не будет вставлять в релиз программы
для того чтобы ты смог поставить бряк на какую либо API функцию
предварительно надо открыть файл winice.dat и раскомментировать строчки
следующего вида
EXP=c:\windows\system\kernel32.dll
EXP=c:\windows\system\user32.dll
EXP=c:\windows\system\gdi32.dll
.....................................................
после этого запускаешь свою программу
захдишь в sice и пишешь в зависимости от разрядности
ломаемого приложения
bpx GetWindowText или
bpx GetDlgItemText
ну и так далее
нажимаешь кнопку регистрации и если ты остановился то
все успешно, если нет то ставишь новый брекпоинт.
|
| | | | |
<без заголовка> 24.09.01 19:11
Автор: sikd Статус: Незарегистрированный пользователь
|
Спасибо,
А где можно найти список всех возможных функций Get... что бы поочередно проверить какая из них используется?
|
| | | | | |
<без заголовка> 26.09.01 03:43
Автор: Бяша <Biasha> Статус: Member
|
> А где можно найти список всех возможных функций Get... что > бы поочередно проверить какая из них используется? В MSDN недалеко от Edit.
Их не много широко используемых: GetWindowTextA(W), GetDlgItemTextA(W), GetDlgItemIntA(W) Больше и не припомню.
Но проблема в том, что этот текст можно получить и всякими левыми путями - WM_GETTEXT(ну это ещё нормально), а вот, например, совсем изврат: выделили текст EM_SETSEL а потом EM_GETSELTEXT.
Так что лучше ставь bp на область данных, в которые винда текст окна пишет :)
|
| | | | | |
<без заголовка> 24.09.01 19:40
Автор: SadM Статус: Незарегистрированный пользователь
|
> Спасибо, > > А где можно найти список всех возможных функций Get... что > бы поочередно проверить какая из них используется?
напиши exp get*
|
|
|