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编辑
,原因: