
安裝教程(含激活方法)
(軟件為綠色版本,無需安裝破解)1.在本作下載好數據包后進行解壓在“x64dbg”文件夾中運行“初始設置.bat”,輸入“1”創建桌面快捷方式

2.任何回到你的電腦桌面運行軟件快捷方式即可進入軟件,開始免費使用

此版說明
1.為幫助用戶更好地了解軟件反匯編后的CPU匯編指令信息,對匯編指令的“助記符摘要”全部進行了漢化。由于本次更新幅度較大,更改的內容較多,所以對“助記符幫助”進行了部分漢化。匯編指令的漢化參考了“清華大學出版社”出版的《匯編語言程序設計教程》(第4版) 中術語,因此可能與其他軟件的漢化術語略有不同。2.對Scylla插件等進行了全面漢化。
3.對幫助文檔的主要內容進行了漢化,并按照最新版進行了修訂、翻譯。對界面字體以及布局重新進行了設置。將默認調用在線英文幫助更改為調用本地的中文幫助文件。
4.對軟件官方中文版的漢化錯誤及不一致處進行了修訂,并與幫助文檔的關鍵詞進行了統一。
5.對中文版界面字體進行了重新設置,使其更為美觀。
6.集成中文字符串搜索插件、反反調試插件SharpOD_x64_v0.6b,除此之外無其它修改!
新增或已支持功能
1.開源2.直觀和熟悉的新用戶界面
3.類似C的表達式解析器
4.DLL和EXE文件的全功能調試(TitanEngine)
5.IDA般的側邊欄與跳躍箭頭
6.IDA樣的指令令牌高亮(高亮寄存器等)
7.存儲器映射
8.符號觀
9.線程視圖
10.內容敏感的注冊查看
11.完全可定制的配色方案
12.動態識別模塊和串
13.進口重構集成(青蟹)
14.快反匯編(BeaEngine)
15.用戶數據庫(JSON)征求意見,標簽,書簽等。
16.不斷增長的API插件的支持
17.可擴展的,可調試的腳本語言自動化
18.多數據類型的內存轉儲
19.基本調試符號(PDB)的支持
20、動態堆棧視圖
21.內置匯編(XEDParse)
22.查看你的補丁,并將它們保存到磁盤
23.內置的十六進制編輯器
24.查找內存模式
功能優點
1.積極發展軟件正在不斷的積極發展。
2.GPLv3
我們同時提供了可執行文件和源代碼。隨意作出貢獻。
3.自定義
C ++編寫的插件,改變顏色和調整你的喜好。
5.X64/X32支持
可以調試x64和X32的應用程序。只有一個接口。
6.建立在開源庫
使用的Qt,TitanEngine,BeaEngine,青蟹,楊松,LZ4和XEDParse。
7.操作簡單,功能強大的開發
使用C ++和Qt4的快速添加新的功能。
8.腳本化
擁有一個集成的,可調試,ASM-like腳本語言。
9.社區意識
有許多功能的倒車社會思想或創建的。
10.伸縮
編寫插件來添加腳本命令或集成的工具。
使用方法
一、輸入1.命令
命令具有以下格式:命令 arg1 , arg2 , argN
2.變量
變量可選地以a開頭,$并且只能存儲一個DWORD。
3.注冊
所有寄存器(所有大?。┒伎梢杂米髯兞?。
備注:大多數寄存器的變量名稱與它們的名稱相同,但以下寄存器除外:x87控制字標志:該寄存器的標志名稱如下:_x87CW_UM,除了在體系結構中的寄存器,x64dbg提供以下寄存器:CAX,CBX,CCX,CDX,CSP,CBP,CSI,CDI,CIP。這些寄存器映射到32位平臺上的32位寄存器,以及64位平臺上的64位寄存器。例如,CIP是EIP在32位平臺上,并且是RIP在64位平臺上。此功能旨在支持與體系結構無關的代碼。
4.記憶位置
您可以使用以下表達式之一從/向內存位置讀取/寫入:
[addr]從中讀取DWORD / QWORD addr。
n:[addr]從中讀取n個字節addr。
seg:[addr]從一個段讀取一個DWORD / QWORD addr。
byte:[addr]從中讀取BYTE addr。
word:[addr]讀一個WORD addr。
dword:[addr]從中讀取一個DWORD addr。
qword:[addr]從addr(僅限x64)讀取QWORD 。
備注:n 是要讀取的字節數,在x32上可以是小于4且在指定時在x64上小于8,否則會出錯。seg可以gs,es,cs,fs,ds,ss。只有fs并gs產生影響。
5.標志
調試標志(解釋為整數)可用作輸入。標志以a為前綴,_后跟標志名稱。有效的標志是:_cf,_pf,_af,_zf,_sf,_tf,_if,_df,_of,_rf,_vm,_ac,_vif,_vip和_id。
6.數字
所有數字默認都被解釋為十六進制!如果你想確定,你可以x或0x作為前綴。十進制數可以使用前綴來點數量:.123=7B。
7.表達式
有關更多信息,請參閱表達式部分。
8.標簽/符號
用戶定義的標簽和符號是有效的表達式(它們解析為所述標簽/符號的地址)。
9.模塊數據
(1)DLL導出:鍵入GetProcAddress并自動將其解析為函數的實際地址。要明確定義從哪個模塊加載API,請使用:[module].dll:[api]或[module]:[api]。以類似的方式你可以解決序數,嘗試[module]:[ordinal]。另一個宏許您獲取模塊的加載基礎。例如,當[module]為空字符串時:GetProcAddress,將使用當前在CPU中選擇的模塊。
()2加載模塊庫:如果您要訪問加載模塊的基礎上,你可以寫:[module]:0,[module]:base,[module]:imagebase或[module]:header。
10.RVA /文件偏移
如果您想訪問模塊RVA,您可以編寫[module]:0+[rva],也可以編寫[module]:$[rva]。如果要將文件偏移量轉換為VA,則可以使用[module]:#[offset]。例如,當[module]為空字符串時:0,將使用當前在CPU中選擇的模塊。
11.模塊入口點
要訪問一個模塊的入口點,你可以寫[module]:entry,[module]:oep或[module]:ep。請注意,當存在帶有名稱的導出時entry,oep或者ep將返回這些名稱的地址。
備注:您也可以使用a來代替分隔符,.如果您需要查詢模塊信息,[module]:imagebase或者[module]:entry建議您使用?as分隔符:[module]?entry。在?沒有分隔符后檢查命名的出口,所以當有一個叫做出口將仍然工作entry的模塊中。
12.最后的話
除非另有說明,否則參數輸入始終可以使用上述任何形式。
二、表達式
調試器允許使用基本表達式。只需在命令窗口中鍵入表達式,結果將顯示在控制臺中。除了計算之外,它還允許使用類似C語法的快速變量更改。
1.輸入
基本輸入(數字/變量)可用作表達式中的常量,有關詳細信息,請參閱輸入。
2.運營商
您可以在表達式中使用以下運算符。它們按以下順序處理:
括號/括號:(1+2),[1+6]優先于其它操作。
unary minus / binary not / logical not :( -1negative 1),~1(binary not of 1),!0(logical not of 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(如果為真,則解析為1,如果為假,則解析為0)。
二進制和 :( 12&2常規二進制和)。
二進制xor :( 2^1常規二進制xor)。
二進制或 :( 2|8常規二進制或)。
logical和 :( 0&&3如果為true則解析為1,如果為false則解析為0)。
logical或 :( 0||3如果為true則解析為1,如果為false則解析為0)。
邏輯含義 :( 0->1如果為真則解析為1,如果為假則解析為0)。
3.快速分配
使用類似C的語法可以輕松完成更改內存,變量,寄存器或標志:
a?=b哪里?可以是任何非邏輯運算符。a可以是任何寄存器,標志,變量或內存位置。b可以是任何被認可為表達的東西。
a++/a--哪里a可以是任何寄存器,標志,變量或內存位置。
三、表達函數
您可以在表達式中使用函數。調試器定義了以下函數:
1.GUI交互
disasm.sel()/ dis.sel():在反匯編視圖中獲取所選地址。
dump.sel() :在轉儲視圖中獲取所選地址。
stack.sel() :在堆棧視圖中獲取所選地址。
2.來源
src.disp(addr):獲取addr相對于最后一個源代碼行的位移。
src.line(addr):獲取源代碼行數addr。
3.模塊
mod.party(addr):參加模塊派對addr。0是用戶模塊,1是系統模塊。
mod.base(addr):獲取模塊的基址addr。
mod.size(addr):獲取模塊的大小addr。
mod.hash(addr):獲取模塊的哈希值addr。
mod.entry(addr):獲取模塊的入口地址addr。
mod.system(addr):如果模塊位于addr系統模塊,則為True 。沒有模塊是用戶模塊。
mod.user(addr):如果模塊位于addr用戶模塊,則為True 。沒有模塊是用戶模塊。
mod.main():返回主模塊(debuggee)的基礎。如果這是一個DLL,它將返回,0直到加載。
mod.rva(addr):獲得RVA addr。如果addr不在模塊內,它將返回0。
mod.offset(addr):獲取文件偏移量addr。如果addr不在模塊內,它將返回0。
4.處理信息
peb() :獲取PEB地址。
teb() :獲取TEB地址。
tid() :獲取當前的線程ID。
5.一般目的
bswap(value):字節交換value。
ternary(condition, val1, val2):如果條件非零,則返回val1,否則返回val2。
GetTickCount() :tick計數x64dbg。
6.記憶
mem.valid(addr):如果addr是有效的內存地址,則為True 。
mem.base(addr):返回內存頁面的基數addr(可以根據您的內存映射模式更改)。
mem.size(addr):返回內存頁面的大小addr(可以根據內存映射模式而改變)。
mem.iscode(addr):如果addr是可執行的頁面,則為True 。
mem.decodepointer(ptr):相當于調用DecodePointerAPI ptr,僅適用于Vista +。
7.反匯編
dis.len(addr):獲取指令的長度addr。
dis.iscond(addr):如果指令at addr是條件分支,則為True 。
dis.isbranch(addr):如果指令at addr是分支(jcc / call),則為True 。
dis.isret(addr):如果指令addr是a ,則為真ret。
dis.iscall(addr):如果指令addr是a ,則為真call。
dis.ismem(addr):如果指令at addr有內存操作數,則為True 。
dis.isnop(addr):如果指令at addr等于NOP ,則為真。
dis.isunusual(addr):如果指令處于addr異常狀態,則為真。
dis.branchdest(addr):指令的分支目的地addr(如果按Enter鍵,它會跟隨什么)。
dis.branchexec(addr):如果分支處于addr執行狀態,則為True 。
dis.imm(addr):指令的立即值addr。
dis.brtrue(addr):指令的分支目的地addr。
dis.brfalse(addr):如果指令at addr是條件分支,則為下一條指令的地址。
dis.next(addr):來自的下一條指令的地址addr。
dis.prev(addr):上一條指令的地址addr。
8.跟蹤記錄
tr.enabled(addr):如果啟用了跟蹤記錄,則為True addr。
tr.hitcount(addr):跟蹤記錄上的命中數addr。
tr.runtraceenabled() :如果啟用了運行跟蹤,則為True。
9.字節/字/雙字/四字/ PTR
ReadByte,Byte,byte(addr):從中讀取一個字節addr并返回該值。
ReadWord,Word,word(addr):從中讀取一個字(2個字節)addr并返回該值。
ReadDword,Dword,dword(addr):從中讀取一個雙字(4個字節)addr并返回該值。
ReadQword,Qword,qword(addr):從中讀取一個qword(8個字節)addr并返回該值(僅在x64上可用)。
ReadPtr,ReadPointer,ptr,Pointer,pointer(addr):從中讀取指針(4/8字節)addr并返回值。
10.功能
func.start():函數的開始addr是零的一部分,否則為零。
func.end():函數結束addr是其中一部分,否則為零。
11.參考資料
ref.count() :當前參考視圖中的條目數。
ref.addr(index):獲取參考地址index。失敗歸零。
12.參數
這假設返回地址在堆棧上(例如,您在函數內)。
arg.get(index):獲取index(從零開始)的參數。
arg.set(index, value):將參數設置為index(從零開始)為value。
13.插件
插件可以注冊自己的表達式函數。
x64dbg 2021歷史版本下載
重要提示解壓密碼:zdfans