· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.HEAP —› SoftIce, окно дампа, режим DD

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Июн 19, 2003 12:59:13

Перехватываю вызов функции.Смотрю стек.
Вместо адресов - селекторы:смещения.
Как получать адреса?


Дата: Июн 19, 2003 17:58:27

Конкретнее, плиз.
Вопрос: как передаются параметры функции? Через ebp или esp?


Дата: Июн 20, 2003 06:21:58

Делаю обычную вещь:
bpx TextOut
на перехвате:
dd ss:esp+4

вижу:
4aef:0000b392 175f:039c ...
как увидеть содержимое 175f:039c


Дата: Июн 22, 2003 06:22:17

Во-первых, надо пользовать ws для просмотра стека.
Во-вторых, что-то я запутался. Зачем dd? Почему не d? И что значит селекторы и смещения в стеке????


Дата: Июн 22, 2003 07:27:55

Это чё за прога? DOS'овская что ли :-)
Смотреть можно по-всякому, смотря как тебе нужно,
dd [адрес, регистр, выражение]- если нужен DWORD,
db [то же самое]- если нужны BYTE, есть и др. команды.
По Sice есть переведённый на русский help,
посмотри на http://kickme.to/cr0aker/


Дата: Июн 22, 2003 19:31:11

В том-то и дело, что не все так просто. Смотри, он ставит bpx на TextOut - это значит, что уже стоит Win 3.11 как минимум. А каким хреном там селекторы и смещения, я вообще дурею :) Не должно быть их там и все!


Дата: Июн 22, 2003 20:17:18

Какая у тебя Windows, 98-я?
Тогда бери два ворда за даблворд.
Попробуй: dd 175f039c :-)


Дата: Июн 23, 2003 00:03:02

Разве что так! Это называется - горе от ума :)


Дата: Июн 23, 2003 01:06:53 · Поправил: Asterix

[ volodya: Разве что так! Это называется - горе от ума :)]

Да нет, есть такой глюк у Айса под 98-й Виндой. Я когда-то даже специально переставлял Айс на DS2.7 в 98-ю, чтоб уточнить чей это
глюк SICE4.05 или Винды. Кстати, под win98 лучше оставаться на SICE4.05!!! ;-)


Дата: Июн 23, 2003 03:52:07

Тогда прошу прощения. Сменить айс и дело с концом. Еще раз - мои извинения.


Дата: Июн 23, 2003 04:27:10 · Поправил: Asterix

Разве что сменить на другой дебаггер, потому что у DS2.7 то же самое
под win98 :D, к тому же DS2.7 виснет под win98 :)
Поэтому менять нужно Винду ;-)


Дата: Июн 23, 2003 07:12:22

Спасибо всем за обсуждение. У меня действительно Win98.

Цитата из help:

For the dword format, data may be displayed in two different ways.

•If the displayed segment is a 32-bit segment, the dwords display as 32-bit hexadecimals (eight hexadecimal digits).

• If the displayed segment is a 16-bit segment (VM segment or LDT selector), the dwords display as 16:16 pointers (four hexadecimal digits, a colon, (':'), and four more hexadecimal digits).

Вопрос теперь, как имея LDT selector и смещение, получить адрес памяти


Дата: Июн 23, 2003 13:01:22

Всем огггромное спасибо.
Нашел выход:
Гружу символьную таблицу GDI32
и перехватываю TextOutA из GDI32,
а не TextOut из GDI.При этом наслаждаемся
32-bit segment а не 16-bit.


Дата: Июн 23, 2003 14:31:08

Ну вот! :-)


Дата: Июн 25, 2003 07:41:17

Но так как вопрос с перехватом TextOut из GDI
остался, помощь зала не помогла, пришлось позвонить другу (50/50 к сожалению отсутствует)
Он поведал следующее:
стек 16-битный и в нем сидят:
ss:sp+0 -> far-adress for return
ss:sp+4 -> nMaxCnt (int - 2 byte)
ss:sp+6 -> far-adress of text
ss:sp+8 -> HWND - 2 byte

т.е. dd ss:esp+4 показывает на 175f:039c - а это просто длина строки 39c175f - такая ужасно
длинная строка

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.100