首页
论坛
课程
招聘
[原创]X64dbg源码编译避坑指南之玩转Github源码
2021-11-9 12:48 12999

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

2021-11-9 12:48
12999

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有一些警告,后边需要优化,修改。


看雪招聘平台创建简历并且简历完整度达到90%及以上可获得500看雪币~

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