闪电下载吧 最新软件 免费软件 绿色软件

教程资讯 软件专题

您的位置:SD124 > 工具软件 > 用于Windows的开源x64/x32调试器 x64_dbg 2023-06-08 中文

用于Windows的开源x64/x32调试器 x64_dbg 2023-06-08 中文

  • 软件大小:32.1 MB
  • 更新日期:2023-06-10
  • 官方网站:闪电下载吧
  • 软件等级:★★★☆☆
  • 运行环境:Winxp/Win7/Win8/Win10
用于Windows的开源x64/x32调试器 x64_dbg 2023-06-08 中文
  • 软件说明
  • 软件截图
  • 下载地址
  • 相关软件
  • 用户评论
  • 投诉建议: 858898909@qq.com
x64_dbg 是 Windows 下的 32/64 位调试器,调试器(目前)有三个部分DBG、GUI和Bridge,DBG是调试器的调试部分。 它处理调试(使用TitanEngine)并将为GUI提供数据。GUI是调试器的图形部分。 它建立在Qt之上,它提供用户交互。Bridge是DBG和GUI部分的通信库(可能在将来的更多部分中)。 该桥可用于处理新功能,而无需更新其他部分的代码。可定制你的软件,用C ++编写插件,改变颜色并调整你的偏好。x64dbg可以调试x64和x32应用程序,集中在一个界面。x64dbg使用C ++和Qt快速添加新功能。x64dbg具有集成的,可调试的,类似ASM的脚本语言。本次小编带来的是最新中文破解版,无需安装,解压即可运行使用,有需要的朋友不要错过了!

软件特色

开源  
直观,熟悉,全新的用户界面  
类似C的表达式解析器  
DLL和EXE文件的全功能调试(TitanEngine)  
具有跳跃箭头的IDA侧边栏  
类似IDA的指令令牌荧光笔(突出显示寄存器等)  
记忆图  
符号视图  
线程视图  
源代码视图  
内容敏感的寄存器视图  
完全可定制的配色方案  
动态识别模块和字符串  
导入重建器集成(Scylla)  
快速反汇编(Zydis)  
用户数据库(JSON),用于评论,标签,书签等。  
增加API的插件支持  
用于自动化的可扩展,可调试的脚本语言  
多数据类型内存转储  
基本调试符号(PDB)支持  
动态堆栈视图  
内置汇编程序(XEDParse/asmjit)  
可执行的修补程序  
Yara模式匹配  
反编译器(雪人)  
分析

软件优势

1、积极发展
x64dbg正在不断积极开发中。
2、GPLv3的
我们提供可执行文件和源代码。随意贡献。
3、定制
用C ++编写插件,改变颜色并调整你的偏好。
4、x64 / x32支持
x64dbg可以调试x64和x32应用程序。只有一个界面。
5、建立在开源库之上
x64dbg使用Qt,TitanEngine,Zydis,Yara,Scylla,Jansson,lz4,XEDParse,asmjit和snowman。
6、简单,强大的开发
x64dbg使用C ++和Qt快速添加新功能。
7、编写脚本
x64dbg具有集成的,可调试的,类似ASM的脚本语言。
8、社区意识
x64dbg具有许多由反向社区思考或实现的功能。
9、可扩展
编写插件以添加脚本命令或集成工具。

软件功能

1、基本功能
·DLL和EXE文件的全功能调试(TitanEngine社区版)
·从Windows XP到Windows 10的32位和64位Windows支持
·内置汇编程序(XEDParse / Keystone / asmjt)
·快速拆卸器(Capstone)
·类似C的表达式解析器
·记录
·笔记
·Memorymap视图
·模块和符号视图
·源代码iew
·线程视图
·内容敏感的registerview
·调用堆栈视图
·SEH观点
·句柄,权限和TCP访问枚举。
·Mui数据类型内存转储
·动态堆栈视图
·可执行的修补程序
·Dyramically识别模块和字符串
·用户数据库(JSON),用于评论,标签,书签等。
·基本调试符号(PDB)支持
·可扩展,可调试的脚本语言,用于自动化
·增加API的插件支持
·基本的艺术调试
2、高级功能
·反编译(雪人)
·Yara图案匹配
·导入重构器集成(Scyla)
·分析
·具有很大灵活性的条件断点和跟踪
·跟踪时收集数据
3、GUI功能
·直观,熟悉,全新的用户界面
·类似IDA的侧边栏,带有跳跃的弓箭
·类似IDA的指令令牌荧光笔(突出显示寄存器,命令等)
·丰富的可定制配色方案和短切键
·控制流程图
·集成的助记符和寄存器帮助
·代码折叠
·易于与自定义工具集成(收藏夹菜单)

使用帮助

一、输入
使用x64dbg时,您通常可以使用各种内容作为输入。
1、命令
命令具有以下格式:
命令 arg1 , arg2 , argN
2、变量
变量可选地以a开头,$并且只能存储一个DWORD(x64上的QWORD)。
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、模块数据
DLL导出:
键入GetProcAddress并自动将其解析为函数的实际地址。要明确定义从哪个模块加载API,请使用:[module].dll:[api]或[module]:[api]。以类似的方式你可以解决序数,尝试[module]:[ordinal]。另一个宏允许您获取模块的加载基础。例如,当[module]为空字符串时:GetProcAddress,将使用当前在CPU中选择的模块。
加载模块库:
如果您要访问加载模块的基础上,你可以写:[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、插件
插件可以注册自己的表达式函数。有关更多详细信息,请参阅插件文档。

更新日志

中文修订:王苏 2021.02.21
 
1. 为帮助用户更好地了解 x64dbg 反汇编后的 CPU 汇编指令信息,对汇编指令的“助记符摘要”全部进行了汉化。由于本次更新幅度较大,更改的内容较多,所以对“助记符帮助”进行了部分汉化。汇编指令的汉化参考了“清华大学出版社”出版的《汇编语言程序设计教程》(第4版) 中术语,因此可能与其他软件的汉化术语略有不同。
2. 对 Scylla 插件等进行了全面汉化。
3. 对 x64dbg 帮助文档的主要内容进行了汉化,并按照最新版进行了修订、翻译。对界面字体以及布局重新进行了设置。将默认调用在线英文帮助更改为调用本地的中文帮助文件。
4. 对 x64dbg 官方中文版的汉化错误及不一致处进行了修订,并与帮助文档的关键词进行了统一。
5. 对中文版界面字体进行了重新设置,使其更为美观。
 
* 集成中文字符串搜索插件, 反反调试插件SharpOD_x64_v0.6b,除此之外无任何修改!

下载地址
有任何意见或者建议请联系邮箱:858898909[at]qq.com 本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!
Copyright © 2012 SDBETA.com. All Rights Reserved 豫ICP备12021367号 豫公网安备 41019702002546号闪电下载吧