X64dbg 2021最新版 中文乱码解决

X64dbg中文乱码解决

X64dbg可以对64位的软件进行反编译,是针对Olldbg只能调试32位软件的改进,使用也比较方便。但由于该软件前端使用QT开发,对中文的解析经常会出现乱码,不能很好解析出中文(经测试发现对GB2312、GBK的字符解析都没问题),使用Strings和x64dbg_tol两款插件也不能解决问题,为此对x64dbg-2021-1-12版进行了修改完善,增加了解析UTF-8及完善了UTF-16(Unicode)的功能,并对CPU dump界面显示方式和寄存器、堆栈标签显示方式进行了修改,同时增加了自动对进程PEB和线程TLB进行注释的功能。

一、源码下载及编译

1、下载development版源码

进入x64dbg目录下,将.gitmodules内的github.com替换为hub.fastgit.org
然后在x64dbg目录内执行:

下载子目录文件。(使用hub.fastgit.org代替github.com是为了加快下载速度)

2、安装编译环境

下载安装:
qt-opensource-windows-x86-msvc2013_64-5.6.3.exe
qt-opensource-windows-x86-msvc2013-5.6.3.exe
qt-creator-opensource-windows-x86-4.3.1.exe
vs2013sp5
windows_sdk_8.1
qt-vsaddin-msvc2013-2.3.2.vsix
并完成QT_VS_TOOLS的设置(通用设置,略)。
为了调试方便,QT的pro工程使用QT_VS_TOOLS导入解决方案中,不单独使用qt-creater编译。
导入工程选择x64-release版本编译即可成功。(略)

二、UTF-8解析功能实现

在x64dbgsrcdbgdisasm_helper.cpp文件内修改如下函数:
在isunicodestring内对汉字进行严格过滤

增加utf-8字符串判断函数(此处只检测第一个字符是否为utf-8):通过对软件数据跟踪发现,x64dbg内同时存在三字节的UTF-8和两字节的UTF-8,而两字节的UTF-8软件处理位Unicode编码(软件命名为UTF-16),而对三字节的UTF-8编码没有进行处理,
如图:0000h地址处的 E590就是”启”的两字节UTF-8编码0x90E5,即通常意义的Unicode码。
0xCCh处的E590AF就是启的三字节UTF-8编码0xE590AF。

disasmispossiblestring内增加对utf8字符串的处理

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月26日
下一篇 2021年2月26日

相关推荐