Прочие - SoftIce

Аватара пользователя
DillerInc

Прочие - SoftIce

Сообщение DillerInc »

Итак,речь пойдёт о популярном отладчике SoftIce,известном в простонародии также как "сайс".

В общем,вопрос к людям,знакомым с этим "зверем":

установлен SoftIce версии 4.31 из пакета Compuware DriverStudio 3.1,ОС - Win2000 SP4.При работе с отладчиком,а точнее при ковырянии программы,пойманной за хвост с помощью точек останова типа bpx MessageBoxA останавливается системное время,т.е. часы(те,что в трее отображаются)останавливаются.Потом если перезагрузиться,то время встаёт как надо.Следовательно вопрос - это глюк или нормальное явление?Если первое,то как с этим бороться?
Аватара пользователя
mrcnn

Re: Прочие - SoftIce

Сообщение mrcnn »

Это нормальное явление.



SoftIce - это же отладчик нулевого кольца защиты (Ring0) - ядро Windows это тоже Ring0, все драйвера - Ring0, обычная программа - это Ring3 .



Для Windows время замораживается, практически все системные процессы время нахождения в Softice не работают и соответственно не могут отследить изменение времени.
Аватара пользователя
DillerInc

Re: Прочие - SoftIce

Сообщение DillerInc »

mrcnn


Цитата:



Это нормальное явление.



SoftIce - это же отладчик нулевого кольца защиты



...я так и думал.Спасибо Изображение .



Скоро у меня возможно возникнут новые вопросы по работе этого отладчика,поэтому в случае чего буду сюда писать.
Аватара пользователя
DillerInc

Re: Прочие - SoftIce

Сообщение DillerInc »

А вот и очередной вопрос:

в одной из статей в интернете нашёл следующее...


Цитата:



Вообще-то, для перехвата сообщений существует специальная команда - "BMSG" (Break on MesSaGe), но по малопонятным для меня причинам, в некоторых версиях soft-ice она не работает, выдавая сообщение "Invalid window handle" даже при попытке установить точку останова на заведомо корректный дескриптор окна!



...и в самом деле у меня при попытке реализации этой команды(BMSG)вылезает та же ошибка,сообщающая о неверном дескрипторе(ссылке)окна.Напоминаю,что у меня стоит SoftIce версии 4.31.

Следовательно вопрос: может кто-то имеет опыт/информацию касательно других версий этого отладчика,где подобных глюков нет,или вообще какие-нибудь советы по этому поводу?
Аватара пользователя
mrcnn

Re: Прочие - SoftIce

Сообщение mrcnn »

У меня версия 4.2.6 из релиза Driver Studio 2.6. И операционная система Windows 2000 ( При использовании других осей многие команды могут не работать да и синтаксис команд может отличаться).

Ошибок у меня никаких не возникало и сообщения прекрасно отлавливаются..



1. выясняем handle окна, например, с помощью такой проги как The Customiser от Wanga

2. ставим брейкпоинт, например, таким образом:

bmsg 0x00e6

0x00e6 -это естественно хэндл окна.



Ну, и если интересно, вот синтаксис:


Цитата:



BMSG

Windows 3.1, Windows 9x, Windows NT/2000

Set a breakpoint on one or more Windows messages.



Syntax For Windows 3.1

BMSG window-handle [L] [begin-msg [end-msg]] [c=count]



For Windows 9x and Windows NT/2000

BMSG window-handle [L] [begin-msg [end-msg ]] [IF expression

[DO "command1;command2;..."]]

4

window-handle HWND value returned from CreateWindow or CreateWindowEX.



L Logs messages to the SoftICE Command window.



begin-msg Single Windows message or lower message number in a range of

Windows messages. If you do not specify a range with an end-msg,

only the begin-msg will cause a break.

Note: For both begin-msg and end-msg, the message numbers can be

speci?ed either in hexadecimal or by using the actual ASCII names of

the messages, for example, WM_QUIT.



end-msg Higher message number in a range of Windows messages.



c= Breakpoint trigger count.



IF expression Conditional expression: the expression must evaluate to TRUE (nonzero)

for the breakpoint to trigger.



DO command Breakpoint action: A series of SoftICE commands can execute when

the breakpoint triggers.



Note: You can combine breakpoint count functions (BPCOUNT, BPMISS, BPTOTAL,

BPLOG, and BPINDEX) with conditional expressions to monitor and control

breakpoints based on the number of times a particular breakpoint has or has not

triggered. See Chapter 6, “Using Breakpoints,” in the Using SoftICE manual.



Use

The BMSG command is used to set breakpoints on a window’s message handler that will

trigger when it receives messages that either match a speci?ed message type, or fall within an

indicated range of message types.

• If you do not specify a message range, the breakpoint applies to ALL Windows messages.

• If you specify the L parameter, SoftICE logs the messages into the Command window

instead of popping up when the message occurs.

When SoftICE does pop up on a BMSG breakpoint, the instruction pointer (CS:[E]IP) is set

to the ?rst instruction of the message handling procedure. Each time SoftICE breaks, the

current message displays in the following format:

hWnd=xxxx wParam=xxxx lParam=xxxxxxxx msg=xxxx message-name

Note: These are the parameters that are passed to the message procedure. All numbers are

hexadecimal. The message-name is the Windows de?ned name for the message.

To display valid Windows messages, enter the WMSG command with no parameters. To

obtain valid window handles, use the HWND command.

You can set multiple BMSG breakpoints on one window-handle, but the message ranges for

the breakpoints may not overlap.



Example This command sets a breakpoint on the message handler for the Window that has the handle

9BC. The breakpoint triggers and SoftICE pops up when the message handler receives

messages with a type within the range WM_MOUSEFIRST to WM_MOUSELAST,

inclusive. This range includes all of the Windows mouse messages.

:BMSG 9BC wm_mousefirst wm_mouselast

The next command places a breakpoint on the message handler for the Window with the

handle F4C. The L parameter causes SoftICE to log the breakpoint information to the

SoftICE Command window when the breakpoint is triggered, instead of popping up. The

message range on which the breakpoint triggers includes any message with a type value less

than or equal to WM_CREATE. You can view the output from this breakpoint being

triggered by popping into SoftICE and scrolling through the command buffer.

:BMSG f4c L 0 wm_create
Аватара пользователя
DillerInc

Re: Прочие - SoftIce

Сообщение DillerInc »

mrcnn

Благодарю за информацию - будем думать...



P.S. Да,кстати,какой у тебя стоит Service Pack?
Аватара пользователя
mrcnn

Re: Прочие - SoftIce

Сообщение mrcnn »

Я установил SoftICE 4.05 на XP SP1, заменил пару драйверов в sys32\drivers, после этого сервис SoftICE запустился, но когда нажимаю CTRL+D, монитор выключается(переходит в режим пониженного энергопотребления), моник у меня SyncMaster 765mb, если есть разница.
Аватара пользователя
DillerInc

Re: Прочие - SoftIce

Сообщение DillerInc »

EVILDeath

На вскидку - какой вы установили драйвер в настройках SoftIce "Video" ? Там настоятельно рекомендуется устанавливать т.н. Universal Video Driver.

К тому же зачем устанавливать такую древнюю версию отладчика? Скачайте себе что-нибудь поновее.
Аватара пользователя
DillerInc

Re: Прочие - SoftIce

Сообщение DillerInc »

Проблема в том что у меня мало инету осталось и тот диалап, за то время какое отвел на это дело, нашел кучу сайтов где говорят о SoftICE как о самом крутом дебаггере, но говорят про 4.05 или даже старее, новее нигде найти не могу, может подскажете, где есть новее, или отладчик покруче?
Ответить

Вернуться в «Программное обеспечение Windows»