內存讀取
[addr] 讀取DWORD / QWORD
n:[addr] 從addr開始讀取n個字節
seg:[addr] 段寄存器加偏移讀取DWORD / QWORD seg可以gs,es,cs,fs,ds,ss
byte:[addr] 讀取BYTE
word:[addr] 讀取word
dword:[addr] 讀取dword
qword:[addr] 讀取qword
字節/字/雙字/四字/指針(ptr)
ReadByte,Byte,byte(addr):從 addr 讀取一個字節,並返回該值。
ReadWord,Word,word(addr):從 addr 讀取一個字(2字節),並返回該值。
ReadDword,Dword,dword(addr):從 addr 讀取雙字(4字節),並返回該值。
ReadQword,Qword,qword(addr):從 addr 讀取四字(8字節),並返回該值(僅用於x64)。
ReadPtr,ReadPointer,ptr,Pointer,pointer(addr):從 addr 讀取一個指針(4/8 字節),並返回該值。
數字
默認情況下,所有數字都解釋為十六進制!如果要指定,可以x或0x作為前綴。十進制數可以通過在數字前加點號來使用.123=7B
模塊數據
鍵入GetProcAddress,它將自動解析為函數的實際地址。要明確定義從哪個模塊加載API,請使用:[module].dll:[api]或[module]:[api]。當[module]為空字符串時:GetProcAddress,將使用CPU中當前選擇的模塊。
加載的模塊基地
如果您要訪問加載模塊的基地址,你可以寫:[module]:0,[module]:base,[module]:imagebase或[module]:header
RVA /文件偏移量
如果要訪問模塊RVA,則可以寫[module]:0+[rva],也可以寫[module]:$[rva]。如果要將文件偏移量轉換為VA,可以使用[module]:#[offset]。例如,當[module]為空字符串時,將使用CPU中當前選擇的模塊
模塊的入口點
要訪問一個模塊的入口點,你可以寫[module]:entry,[module]:oep或[module]:ep。請注意,當有名稱為的導出時entry,oep否則ep將返回這些地址
表達式
調試器允許使用基本表達式。只需在命令窗口中鍵入一個表達式,結果就會顯示在控制台中。除了計算之外,它還允許使用類似C的語法快速更改變量
- 括號:
(1+2),[1+6]比其他操作優先。 - 一元減/二進制非/邏輯非:(
-1負1),~1(二進制非1),!0(邏輯非0)。 - 乘法/除法:(
2*3常規乘法),2`3(得到乘法的高分),6/3(常規除法),5%3(除法的模/余數)。 - 加法/減法:(
1+3加法),5-2(減法)。 - 左/右移位/旋轉:(
1<<2向左移位,shl表示無符號,sal表示有符號),10>>1(向右移位,shl表示無符號,sal表示有符號),1<<<2(向左旋轉),1>>>2(向右旋轉)。 - 小(相等)/大(等於):
4<10,3>6,1<=2,6>=7(如果真解析為1,0,如果假)。 - 等於/不等於:
1==1,2!=6(如果為true,則解析為1;如果為false,則解析為0)。 - 二進制和:(
12&2常規二進制和)。 - 二進制異或:(
2^1常規二進制異或)。 - 二進制或:(
2|8常規二進制或)。 - 邏輯和:(
0&&3如果為true,則解析為1;如果為false,則解析為0)。 - 邏輯或:(
0||3如果為true,則解析為1;如果為false,則解析為0)。 - 邏輯含義:(
0->1如果為true,則解析為1;如果為false,則解析為0)
處理信息
peb():獲取PEB地址。teb():獲取TEB地址。tid():獲取當前線程ID
