x64dbg 调试器的源码编译很麻烦,网络上的编译方法均为老版本,对于新版本来说编译过程中会出现各种错误,编译的坑可以说是一个接着一个,本人通过研究总结出了一套编译拳法可以完美编译输出,不过话说回来x64dbg这种使用两个编译器开发的方式以及调用太多的第三方项目想要完全编译其实也是非常困难的,如下笔记只提供编译x64dbg本体,并确保其能够正常运行。
首先你需要安装 visual_studio_2013_update_5 这个版本全功能勾选,并且要安装微软提供的SDK。
其次是下载Qt编译器,此处分别是32位与64位版本,以及Qt的开发界面。
- https://download.qt.io/archive/qtcreator/4.3/4.3.1/qt-creator-opensource-windows-x86-4.3.1.exe
- https://osdn.net/projects/x64dbg/storage/qt/qt-opensource-windows-x86-msvc2013-5.6.3.exe
- https://osdn.net/projects/x64dbg/storage/qt/qt-opensource-windows-x86-msvc2013_64-5.6.3.exe
接着就是下载x64dbg源代码以及他所需要用到的三个库源码。
- https://codeload.github.com/x64dbg/btparser/zip/d5034cf6d647e98cb01e9e1fc4efa5086f8fc6a5
- https://codeload.github.com/x64dbg/zydis/zip/7c4e7d7daf3a6fe3ed237fa487b4da3e429eabf2
- https://codeload.github.com/x64dbg/Translations/zip/7414d65c468803dbd548e2f12998624d66a12bc0
- https://codeload.github.com/x64dbg/x64dbg/zip/refs/heads/development
下载并安装好这些前期准备工作就算完事了,接着就是安装。
分别将如下几个项目拷贝到x64dbg目录下。
- 将压缩包内Translations放入到src/gui/Translations
- 将压缩包内zydis放入到src/zydis_wrapper/zydis
- 将压缩包内btparser放入到src/dbg/btparser
并且将这三个包再次放入到x64dbg根目录下的deps
目录下,如下。
运行x64dbg下面的三个bat脚本文件。
install.bat
setenv.bat
setupdeps.bat
至此我们打开x64dbg.sln
这个项目,然后选择好32位模式,并启动编译,等待一会即可生成,生成后默认在bin
目录下保存。
接着进入到src/gui
目录下,直接使用qt 5.6
打开x64dbg.pro
项目。选好编译器版本。
Qt中切换到release模式。
接着点击项目,选择浏览找到bin目录并配置上。
配置好以后直接点击编译,等待10分钟左右,编译成功后生成x32gui.dll
文件。
此时切换到主目录,并执行release.bat
发布脚本,即可自动发布输出文件到release目录下。
此时继续切换到x32子目录下,使用qt命令行打开目录,并执行生成命令。
此时切换到x32子目录下,就可以看到我们生成的所有文件。
此时的x32dbg是无法运行的,因为缺少dll动态链接库,这些动态库每一个都需要单独编译,工程量是巨大的,此处我就直接拷贝编译好的。
直接将编译环境内的动态库拷贝到x32dbg目录下面。
最后运行x32dbg,就可以了。
总结就是,这个程序如果想要完全编译,这些第三方库都需要编译一遍,这是一件费力不讨好的事,尽量还是用现成的吧。
文章作者:lyshark (王瑞)