2021-04-15 13:31:59 -05:00

337 lines
14 KiB
Plaintext

SoftIce 3.0 Quick Reference..... By ZeroDay [Feb 07 1997]
==============================================================================
SOFTICE COMMANDS
==============================================================================
SETTING BREAKPOINTS:
BPM Breakpoint on memory access
BPMB Breakpoint on memory access
BPMW Breakpoint on memory access
BPMD Breakpoint on memory access
BPR Breakpoint on memory range
BPIO Breakpoint on I/O port access
BPINT Breakpoint on interrupt
BPX Breakpoint on execution
BMSG Breakpoint on windows message
BSTAT Breakpoint statistics
CSIP Set CS:EIP range qualifier
MANIPULATING BREAKPOINTS:
BPE Edit breakpoint
BPT Use breakpoint as a template
BL List current breakpoints
BC Clear Breakpoint
BD Disable breakpoint
BE Enable breakpoint
BH Breakpoint history
DISPLAY/CHANGE MEMORY:
R Display/change register contents
U Un-Assemblers instructions
D Display memory
DB Display memory
DW Display memory
DD Display memory
DS Display memory
DL Display memory
DT Display memory
E Edit memory
EB Edit memory
EW Edit memory
ED Edit memory
ES Edit memory
EL Edit memory
ET Edit memory
PEEK Read from physical address
POKE Write to physical address
H Help on specified function
? Evaluate expression
VER SoftIce version
WATCH Add watch
FORMAT Change format of data window
DATA Change data window
DISPLAY SYSTEM INFORMATION:
GDT Display global descriptor table
LDT Display local descriptor table
IDT Display interrupt descriptor table
TSS Display task state segment
CPU Display CPU register information
PCI Display PCI device information
MOD Display windows module list
HEAP Display windows global heap
LHEAP Display windows local heap
VXD Display windows VxD map
TASK Display windows task list
VCALL Display VxD calls
WMSG Display windows messages
PAGE Display page table information
PHYS Display all virtual addresses for physical address
STACK Display call stack
XFRAME Display active exception frames
MAPV86 Display v86 memory map
HWND Display window handle information
CLASS Display window class information
VM Display virtual machine information
THREAD Display thread information
ADDR Display/change address contents
MAP32 Display 32bit section map
PROC Display process information
QUERY Display processes virtual address space map
WHAT Identify the type of expression
I/O PORT COMMANDS:
I Input data from i/o port
IB Input data from i/o port
IW Input data from i/o port
ID Input data from i/o port
O Output data to i/o port
OB Output data to i/o port
OW Output data to i/o port
OD Output data to i/o port
FLOW CONTROL COMMANDS:
X Return to host debugger or program
G Go to address
T Single step one instruction
P Step skipping calls, Int, etc
HERE Go to current cursor line
EXIT Force an exit to current dos/windows program
GENINT Generate an interrupt
HBOOT System boot (total reset)
MODE CONTROL:
I1HERE Direct INT1 to SoftIce
I3HERE Direct INT3 to SoftIce
ZAP Zap embedded INT1 or INT3
FAULTS Enable/disable SoftIce fault trapping
SET Change an internal variable
CUSTOMIZATION COMMANDS:
PAUSE Control display scroll mode
ALTKEY Set key sequence to invoke window
FKEY Display/Set function keys
DEX Display/assign window data expression
CODE Display instruction bytes in code window
COLOR Display/set screen colors
ANSWER Auto-answer and redirect console to modem
DIAL Redirect console to modem
SERIAL Redirect console
TABS Set/Display tab settings
LINES Set/display number of lines on screen
PRN Set printer output port
MACRO Define a named macro command
UTILITY COMMANDS:
A Assemble code
S Search for data
F Fill memory with data
M Move data
C Compare two data blocks
WINDOW COMMANDS:
WC Toggle code window
WD Toggle data window
WF Toggle floating point stack window
WL Toggle locals window
WR Toggle register window
WW Toggle watch window
EC Enable/disable code window
. Locate current instruction
WINDOW CONTROL:
CLS Clear window
RS Restore program screen
ALTSCR Change to alternate display
FLASH Restore screen during P and T
SYMBOL/SOURCE COMMANDS:
SYMLOC Relocate symbol base
EXP Display export symbols
SRC Toggle between source,mixed & code
TABLE Select/remove symbol table
FILE Change/display current source file
SS Search source module for string
TYPES List all types, or display type definition
LOCALS Display locals currently in scope
BACK TRACE COMMANDS:
SHOW Display from backtrace buffer
TRACE Enter backtrace simulation mode
XT Step in trace simulation mode
XP Program step in trace simulation mode
XG Go to address in trace simulation mode
XRSET Reset backtrace history buffer
SPECIAL OPERATORS:
. Preceding a decimal number specifies a line number
$ Preceding an address specifies SEGMENT addressing
# Preceding an address specifies SELECTOR addressing
@ Preceding an address specifies indirection
LINE EDITOR KEY USAGE:
[PRINT-SCREEN] Dump Screen to printer
[UP ARROW] Recall previous command line
[DOWN ARROW] Recall next command line
[RIGHT ARROW] Move cursor right
[LEFT ARROW] Move cursor left
[BACKSPACE] Back over last character
[HOME] Start of line
[END] End of line
[INS] Toggle insert mode
[DEL] Delete character
[ESC] Cancel current command
SCROLLING KEY USAGE:
[PAGEUP] Display previous page of display history
[PAGEDOWN] Display next page of display history
[ALT-DN ARROW] Scroll data window down one line
[ALT-UP ARROW] Scroll data window up one line
[ALT-PAGEUP] Scroll data window down one page
[ALT-PAGEDOWN] Scroll data window up one page
[CTRL-UP ARROW] Scroll code window down one line
[CTRL-DN ARROW] Scroll code window up one line
[CTRL-PAGEUP] Scroll code window down one page
[CTRL-PAGEDOWN] Scroll code window up one page
==============================================================================
==============================================================================
SOFTICE TABLE OF OPERATORS (USED FOR EXPRESSIONS)
==============================================================================
Indirection Operators Example
----------------------- ------------------------------------------------------
-> ebp->8 (Gets DWord Pointed To By ebp+8)
. eax.1C (Gets DWord Pointed To By eax+1C)
* *eax (Gets DWord Value Pointed To By eax)
@ @eax (Gets DWord Value Pointed To By eax)
&symbol &symbol (Gets the address of the symbol)
------------------------------------------------------------------------------
Math Operators Example
----------------------- ------------------------------------------------------
Unary + +42 (Decimal)
Unary - -42 (Decimal)
+ eax + 1
- ebp - 4
* ebx * 4
/ Symbol / 2
% (Modulo) eax % 3
<< (Logical Shift Left) bl << 1 (Result is bl shifted left by 1)
>> (Logical Shift Right)eax >> 2 (Result is eax shifted right by 2)
------------------------------------------------------------------------------
BitWise Operators Example
----------------------- ------------------------------------------------------
& (Bitwise AND) eax & F7
| (Bitwise OR) Symbol | 4
^ (Bitwise XOR) ebx ^ 0xFF
~ (Bitwise NOT) ~dx
------------------------------------------------------------------------------
Logical Operators Example
----------------------- ------------------------------------------------------
! (Logical NOT) !eax
&& (Logical AND) eax && ebx
|| (Logical OR) eax || ebx
== (Compare Equality) Symbol == 4
!= (Compare InEquality) Symbol != al
< eax < 7
> bx > cx
<= ebx <= Symbol
>= Symbol >= Symbol
------------------------------------------------------------------------------
Special Operators Example
----------------------- ------------------------------------------------------
. (Line Number) .123 (Value is Address of line 123 in source file)
() (Grouping Symbols) (eax+3)*4
, (Arguements List) Function(eax,ebx)
: (Segment Operator) es:ebx
Function word(Symbol)
# (Prot-Mode Selector) #es:ebx (Address is protected mode Selector:Offset)
$ (Real-Mode Segment) $es:di (Address is real mode segment:offset)
==============================================================================
==============================================================================
SOFTICE BUILT IN FUNCTIONS:(USED FOR EXPRESSIONS)
==============================================================================
Name Description Example
--------------- ------------------------------- ------------------------------
BYTE Get Low Order Byte ? Byte(0x1234=0x34
WORD Get Low Order Word ? Word(0x12345678)=0x5678
DWORD Get Low Order DWord ? DWord(0xFF)=0x000000FF
HIBYTE Get High Order Byte ? HiByte(0x1234)=0x12
HIWORD Get High Order Word ? HiWord(0x12345678)=0x1234
SWORD Convert Byte To Signed Word ? SWord(0x80)=0xFF80
LONG Convert Byte Or Word To signed ? Long(0xFF)=0xFFFFFFFF
Long ? Long(0xFFFF)=0xFFFFFFFF
WSTR Display as UniCode String ? WSTR(cax)
FLAT Convert to a selector relative ? Flat(fs:0)=0xFFDFF000
address to a linear (flat) addr
CFL Carry Flag ? CFL=Bool-Type
PFL Parity Flag ? PFL=Bool-Type
AFL Auxiliary Flag ? AFL=Bool-Type
ZFL Zero Flag ? ZFL=Bool-Type
SFL Sign Flag ? SFL=Bool-Type
OFL OverFlow Flag ? OFL=Bool-Type
RFL Resume Flag ? RFL=Bool-Type
TFL Trap Flag ? TFL=Bool-Type
DFL Direction Flag ? DFL=Bool-Type
IFL Interrupt Flag ? IFL=Bool-Type
NTFL Nested Task Flag ? NTFL=Bool-Type
IOPL IOPL Level ? IOPL=Current IO Privilege
Level
VMFL Virtual Machine Flag ? VMFL=Bool-Type
IRQL Windows NT OS IRQ Level ? IRQL=Unsigned-Char
DATAADDR Returns The Address Of The dd @DATAADDR
First Item Displayed In Data
Window
CODEADDR Returns The Address Of The ? CODEADDR
First Instruction Displayed In
The Code Window
EADDR Effective Address (If Any) Of EADDR
The Current Instructions
EVALUE Current Value Of The Effective EVALUE
Address
PROCESS KPEB(Kernal Process Environment ? PROCESS
Block) Of The Active OS Process
THREAD KTEB(Kernal Thread Environment ? THREAD
Block) Of The Active OS Thread
PID Active Process ID ? PID == Test32PID
TID Active Thread ID ? TID == Test32MainTID
BPCOUNT BreakPoint Instance Count BP<bp params>IF bpcount==0x10
BPTOTAL BreakPoint Total Count BP<bp Params>IF bptotal==0x10
BPMISS BreakPoint Instance Miss Count BP<bp params>IF bpmiss==0x20
BPLOG BreakPoint Silent Log BP<bp params>IF bplog
BPINDEX Current BreakPoint Index # BP<bp params>DO "bd bpindex"
==============================================================================
==============================================================================
SOFTICE TABLE OF OPERATOR PRECEDENCE (USED FOR EXPRESSIONS)
==============================================================================
Operator Associates Comment
--------------- --------------- ----------------------------------------------
(,),FUNCTION Scopes(Precedence OverRide),Function
->,. Left To Right Indirection
: Left To Right Segment:Offset
#,$ Right To Left Protected Mode Selector,Real Mode Segment
*,@ Right To Left Indirection
Unary + Default Radix == Decimal
Unary - Default Radix == Decimal
!,~ Logical Not,Bitwise Not
. Line Number
*,/,% Left To Right Multiply,Divide,Modulo
+,- Left To Right Plus,Minus
<<,>> Left To Right Logical Shift Left, Logical Shift Right
<,<=,>,>= Left To Right Less Than,Less Than Equal,Greater Than.....
==,!= Left To Right Equal To,Not Equal To
& Left To Right Bitwise AND
^ Left To Right BitWise XOR
| Left To Right BitWise OR
&& Left To Right Logical AND
|| Left To Right Logical OR
COMMA Left To Right Argument List
------------------------------------------------------------------------------
Use of Parenthisis () overrides precedence (means its done first)
==============================================================================