x64dbg 2022 最新版编译方法
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,就可以了。
总结就是,这个程序如果想要完全编译,这些第三方库都需要编译一遍,这是一件费力不讨好的事,尽量还是用现成的吧。
相关文章
- CVPR 2022 | 二阶相似性测度,让传统配准方法取得比深度学习更好的性能,并达到深度学习的速度
- 提高对抗性迁移能力,通过基于神经元归属的攻击方法(CVPR 2022)
- 视频修复:无监督流对齐的序列对序列学习方法S2SVR(ICML 2022)
- 【愚公系列】2022年08月 Go教学课程 031-结构体方法
- 【愚公系列】2022年08月 Go教学课程 033-结构体方法重写、方法值、方法表达式
- 【愚公系列】2022年08月 Go教学课程 032-结构体方法继承
- Matlab读取txt数据的实用方法[通俗易懂]
- 2022最新注册谷歌账号的方法| 注册谷歌Gmail卡在最后一步“此电话号码无法用于进行验证”已解决!
- NeurIPS 2022 | 最强斗地主AI!网易互娱AI Lab提出基于完美信息蒸馏的方法
- 将通信带宽降低至十万分之一,NeurIPS 2022论文提出新一代协作感知方法
- 软件方法(下)第8章分析之分析类图—知识篇Part13-警惕拼凑泛化
- 2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法。 宏使用如下: #[deriv
- ECCV 2022 | 摆脱部件标签依赖,上科大&ZMO.AI提出分部件3D人体重建与驱动新方法UNIF
- NeurlPS 2022 | 全新大模型参数高效微调方法SSF:仅需训练0.3M的参数,效果卓越
- ICLR 2022 | Facebook AI提出解决表示学习坍塌问题新方法
- BeautifulSoup文档4-详细方法 | 用什么方法对文档树进行搜索?
- Matlab 2022软件的安装方法、下载、激活教程
- 3Ds MAX使用方法--三维软件3DS MAX 2022下载及安装教程
- CentOS 7.2 下nginx SSL证书部署的方法(使用crt以及key 配置)详解程序员
- Android实现矩形区域截屏的方法
- PHP创建多级文件夹的几种方法详解编程语言
- Oracle 等待事件 Enqueues:SN,SequenceNumber 官方解释,作用,如何使用及优化方法
- 使用Redis RDB恢复数据的简单方法(redisrdb恢复)
- Oracle实现动态查询列的方法(oracle动态查询列)
- 级数据Oracle中精确到毫秒的数据获取方法(oracle中获取毫秒)
- 解决MySQL初始化问题的有效方法(mysql不执行初始化)
- ewebeditor在.net的使用方法
- thisconnectorisdisabled错误的解决方法
- Asp.net内置对象之Cookies(简介/属性方法/基本操作及实例)
- C#中datatable去重的方法
- node.js中的fs.renameSync方法使用说明
- 使用FlexiGrid实现Extjs表格效果方法分享