首页
社区
课程
招聘
[原创]X64dbg源码编译避坑指南之玩转Github源码
发表于: 2021-11-9 12:48 17959

[原创]X64dbg源码编译避坑指南之玩转Github源码

2021-11-9 12:48
17959

X64dbg源码编译避坑指南之玩转Github源码
系统:Windows7 64位
X64dbg源码:x64dbg-development
https://github.com/x64dbg/x64dbg
MS编译器:VS2013+update5
QT编译器:QT5.6.3
https://download.qt.io/new_archive/qt/5.6/5.6.3

编译代码思路:
1、下载源代码
2、收集编译信息
3、测试编译环境
4、验证代码完整性
5、编译源代码

本帖于2021.11.08由duan首发,如有转载,请注明出处。

新手小白入门贴,大神请忽视跳过,如有不当之处,敬请谅解。

一、下载源代码

通常去官方网站或者GitHub查找,这里官方指定的源码地址也是GitHub。https://x64dbg.com

下载源码最好用Git,可以指定版本下载,当然也可以手动下载,因人而异。https://github.com/x64dbg/x64dbg

源码下载后我们解压到一个目录,注意一个常识,路径不含中文和空格,最好不要在桌面或者网络的共享文件夹内执行。有了这个习惯,就少了焦头烂额整了大半天,最后发现是这个问题,都想骂自己蠢好,哈哈哈。。。

二、收集信息,很重要的一个环节,希望大家仔细认真看完。

所谓收集信息,就尽一切可能的对代码了解,包括对发布软件的操作熟悉
获得软件支持平台例如Windows版本,Linux版本,android,IOS等
获得软件开发集成环境:是VS(VB,VC,C#)编译?VS的版本;是minGW编译的么?Gcc(G++)版本,以及delphi,kotlin ,Swift等
获得软件开发语言:C,C++,Java,Python,php,go等

如何获得这些信息,最近的方式通过官网和官网论坛,其次是通过源码,最后是必应,谷歌,百度查找,本人今天抛砖引玉,就拿X64dbg做过示范。

1、看下官网怎么介绍软件的,一般可以找到一点蛛丝马迹,此处可确定是用基于C++的QT开发,了解QT的就知道,他主推跨平台(既然是跨平台,就不用我说了吧,一定是支持各个操作系统),如果你不知道,就搜索下吧。

我们再看下GitHub源码网站的信息,一般会介绍如何编译的,点击wiki。

打开后我们看到编译的必要条件,一定要注意,别说我没有告诉你。

做个查看信息的总结,Qt版本是MSVC2013编译的5.6.3,MSVC2013还要安装Update5的补丁,Qt编辑器是4.3.1。

往下拉我看到源码的编译步骤,由图可知我需要编译两次,一次用VS2013,一次用QT编辑器,并且生成的都是正式版(笑话,Qt调试版那么大,也没人用调试版啊,太占空间了)。

2、既然已经知道了编译环境和编译软件,也知道编译步骤,我们还要不要通过源码查编译信息了,对于此软件,确实不需要了,但不能保证其他源码也有这么详细的编译文档,还有就是很多源码介绍都是后边补上的,不一定准确,只有源码本身信息才是最准确哦,所以我还是继续抛砖引玉下。


现在我再次确定源码的编译软件是VS2013+update5的版本,和官网介绍一样。

src开头一般是源码文件,我们点进去,一个个文件夹查看,重点看方案(也可称为工程或者项目文件)文件,什么?你不知道哪个是方案文件,那就搜索下吧,这个只能靠经验了,哈哈哈,这里我可以告诉你QT的工程文件扩展名是pro,VC2013工程扩展名是vcxproj。

我们发现了gui这个文件夹里的工程文件是pro的扩展名,证明它需要Qt编辑器来编译,其实对Qt熟悉的人,一猜就知道gui要Qt编译(华丽的优美的界面一直Qt的强项,没道理不用啊,你说是不?)。

可见事情总是难以一帆风顺,其实根据2013这个信息我们也能大致推断出Qt版本和编辑器版本,只是要一个个下载查看,非常麻烦。所以我回到软件根目录,查看下几个批处理文件,发现setenv是设置环境变量的文件,出现了Qt版本和Qt编辑器版本。

这个软件作者真的很认真,所有信息没有一点错误,值得大家点赞。。。

到此软件源码编译的所有信息,全部查看完毕,也是新手入门避坑中最重要的一环,一个好的开始是成功的一半,哈哈。。。

三、测试编译环境

这个算是比较简单的,安装完VS2013+updater5后新建一个工程,编译一个HelloWorld,如果能成功执行,初步算是没有问题了。

Qt的测试也一样,下载Qt5.6.3+MSVC2013版。

64位:qt-opensource-windows-x86-msvc2013_64-5.6.3.exe
32位:qt-opensource-windows-x86-msvc2013-5.6.3.exe
https://download.qt.io/new_archive/qt/5.6/5.6.3

Qt编辑器qt-creator-opensource-windows-x86-4.3.1.exe下载
https://download.qt.io/archive/qtcreator/4.3/4.3.1

先装Qt5.6.3后再装Qt编辑器,一般可以自动配置好,如果没有配置好,可查询源码Wiki编译内容,上面有设置步骤,安装选项推荐设置。

Qt编辑器直接默认设置下一步就好。

如果换成其他源码介绍没有安装设置,搜索下安装配置就好,这些信息很容易找到。

然后写个HelloWorld程序,试成功就算环境正常了。

四、验证 代码完整性

我们可以点开文件夹查看,空文件大概率是缺少文件的,特别是在SRC的源码文件夹,Git或者其他方式下载的压缩包,很多时候不全。

当然了,这样查看不一定准确,作为一个码农,咱没必要查看,直接编辑源码就好,缺啥补啥即可,打开源码中的x64dbg.sln,重新生成解决方案。

可以看到错误提示缺少两个文件夹下的文件,我直接去src目录搜下这个两个文件夹,打开后发现确实都是空,问题找到,我们到对应的源码目录下载就好,下面给出源码的目录和对应的下载地址。

deps文件夹下载地址:https://github.com/x64dbg/deps/tree/3b911145d643a54475c8ec1bcdf292589b12f2be

src\zydis_wrapper\zydis文件夹下载地址:https://github.com/x64dbg/zydis/tree/7c4e7d7daf3a6fe3ed237fa487b4da3e429eabf2

src\dbg\btparser文件夹下载地址:https://github.com/x64dbg/btparser/tree/d5034cf6d647e98cb01e9e1fc4efa5086f8fc6a5)

src\gui\Translations文件夹下载地址:https://github.com/x64dbg/Translations/tree/7414d65c468803dbd548e2f12998624d66a12bc0

此处给出了两个文件夹zydis和btparser验证方式,其他文件夹共大家研究验证缺少方式。

五、编译代码

把缺少的文件下载后拷贝到对应位置,就可以正式编译了,此软件有32位和64位两个版本,所以要编译两次,按图操作源码后再编译代码。

第一步VS编译源码


VS2013+update5编译完成后再bin目录多出了几个文件。

第二步Qt编辑器编译代码。

QT编辑器设置确认,Qt版本5.6.3,编译器64位版本amd64。

编译版本设置,一般是调试版和正式版修改,如过你安装x86(32位)和x86_64(64位)的话,也可以在此修改。

编译完成,软件以可以打开运行了,建议从原软件中拷贝多语言文件夹Translations过来,我们编译只是英文版。

到此完成了整个x64dbg的源码编译,Qt编译gui有一些警告,后边需要优化,修改。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2021-11-13 11:43 被duanDbg编辑 ,原因:
收藏
免费 13
支持
分享
最新回复 (11)
雪    币: 5182
活跃值: (9697)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
2
感谢分享,实用!!!
2021-11-9 13:01
0
雪    币: 6977
活跃值: (1786)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
感谢分享,很详细
2021-11-9 14:24
0
雪    币: 8447
活跃值: (5041)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
4
收藏了
2021-11-9 15:23
0
雪    币: 35726
活跃值: (7155)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
这玩意折腾了四天,各种组合与测试,成功编译出了32位的版本
64位的编译到最后的1秒是提示zydis_wrapper.lib有问题。
测试过:https://blog.csdn.net/musilintan/article/details/115764443
这里说的组合,失败。
最后吾爱破解论坛四处求助番翻,集齐了全部文件;在win7x64中编译出了32位的版本。
64位已失败告终。这次总算知道奥秘了。
2021-11-10 14:12
0
雪    币: 35726
活跃值: (7155)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
上传1个,各位先玩着。
链接: https://pan.baidu.com/s/1XFSGQfrN_2db06gT3WzBpw 提取码: k368 复制这段内容后打开百度网盘手机App,操作更方便哦
2021-11-10 14:15
0
雪    币: 2235
活跃值: (2171)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢分享哦,,马上回家实践实践。
2021-11-10 15:22
0
雪    币: 8043
活跃值: (3744)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
找个bug:setenv 截图中的 QT 是 5.6.2 
2021-11-10 23:07
0
雪    币: 35726
活跃值: (7155)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
这次完美了
win7x64 嵌入版,一把成功,没错误。
也不像以前一样等半个小时了。
这次可以开心的睡觉了。折腾了四天,不明真相,被楼主拨云见日,茅塞顿开。
2021-11-10 23:16
0
雪    币: 35726
活跃值: (7155)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
arab 找个bug:setenv 截图中的 QT 是 5.6.2 [em_19]
"MS编译器:VS2013+vupdate5"
后边多打一个v
2021-11-10 23:36
0
雪    币: 4186
活跃值: (2709)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
ninebell "MS编译器:VS2013+vupdate5" 后边多打一个v
你们说的对,QT一般只要前两个数字一样,功能就是一样的,最后一个数字是修复BUG,一般都是选数字大的版本。至于多v的,文中有多处图片提示,这个不太影响,已经发的帖子,不影响阅读,就不改了。
2021-11-11 01:07
0
雪    币: 16418
活跃值: (1665)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
duanDbg 你们说的对,QT一般只要前两个数字一样,功能就是一样的,最后一个数字是修复BUG,一般都是选数字大的版本。至于多v的,文中有多处图片提示,这个不太影响,已经发的帖子,不影响阅读,就不改了。
有个翻译的文件夹不知如何用?求解答下?用git下载?生成qm?
2021-11-11 07:08
0
游客
登录 | 注册 方可回帖
返回
//