小白,用了大概4天*每天3小时,终于把这个古老的远控木马给运行起来了!撒花!庆祝!
一、软件准备
Windows XP:别人那里拷的XP-SR3,虚拟机上装,主机是win 7。
gh0st3.6源码下载:http://www.okbase.net/file/item/24591,在线看源码:http://code1.okbase.net/codefile/resetssdt.h_2013100624591_173.htm。找了好久终于找到一个不需要任何一种X币也不需要注册网站的资源!而且已经有前辈给去掉硬盘锁了!还能在线看代码!感恩的心!【穷逼的呐喊
VC6.0:别人那里拷的完整绿色版。
1.1 Platform SDK安装:
psdk for xp下载:https://blog.****.net/is2120/article/details/11678373
这是目前网上唯一留存下来的最新版,只有XP-SR2和Windows 2003的版本的了。注意这都是不是64位的,强行在64位的win 7下运行可得bug:“此文件的版本与正在运行的windows版本不兼容。请检查计算机的系统信息以了解需要x86(32位)还是x64(64位)版本的程序......”或“xxx.exe无效,但它对另一种计算机类型有效”。
安装步骤:
1、将xp相关的所有.cab全下载下来,【亲测第一个链接已失效,没关系,把其他的下下来也就相当于下了这一个文件】放到同一个文件夹里。
2、打开cmd控制台,cd到刚下载的文件夹,输入:PSDK-FULL xxx。这里的xxx是文件夹名,表示将这些PSDK_FULL.x.cab解压到的文件夹。
3、到刚刚解压好的文件夹里寻找setup.exe,双击,然后按照提示走到头就完成了。默认安装路径是C:\Program Files\Microsoft Platform SDK for Windows XP SP2
1.2 WDK安装
好像有人说不用装WDK就可以编译gh0st,我还没有控制变量试过==(https://blog.****.net/wallyell/article/details/7270775)
WDK原名DDK,是DDK的升级版,现在都没有DDK了。下载地址:https://www.microsoft.com/en-us/download/confirmation.aspx?id=11800。或者到微软官网自己找对应的版本:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/other-wdk-downloads
安装:下载后将GRMWDK_EN_7600_1.ISO解压,解压后的文件夹里面有官方网页教程Install.htm,跟着Install the Windows Driver Kit一栏,全部用默认安装步骤,需要的东西全选,一步步走下去就能完事。默认安装目录:C:\WinDDK\7600.16385.1
好吧,即使有官方教程,还是出了error【warning就不管了】。
最后一步测试,教程里用的是win 7下的check程序,我们要用xp的:开始->所有程序->Windows Driver Kits -> WDK 7600.16385.1 -> Build Environment ->Windows XP ->x84 Checked Build EnEnvironment ->输入build -cZ。意思好像是编译一下自带的文件。 编译成功将生成对应的.dll文件,可以进入xp的驱动缓存路径(C:\WINDOWS\system32\spool\drivers\w32x86\3)查看驱动效果。
这都有问题的话要么是WDK本身的问题,要么自带的文件有问题。这时出现的bugs的解决方法有:
1、在系统盘(C:)下编译代码,开cmd窗口时,要右键选“run as administrator”(参考了https://bbs.****.net/topics/370221283)
2、error C2220: warning treated as error - no ‘object’ file generated:出现这个提示是因为默认情况下WDK编译代码时把所有警告都当成了错误,只须要在项目的makefile文件最后一行加入MSC_WARNING_LEVEL=/W3即可忽略这些警告信息。【或者在i386mk.inc文件里加,或许也可以加成MSC_WARNING_LEVEL=/W1或者MSC_WARNING_LEVEL=/W4】(参考了https://blog.****.net/leehq/article/details/3837715)
3、error RC2104 : undefined keyword or key name: Select 1394,出现在C:\WinDDK\7600.16385.1\src\1394\vdev_hybrid\exe\wdf1394.rc (124)
文件第119行的 CTEXT "Microsoft ?,IDC_STATIC,46,35,86,8
少了一个",导致下面都是字符串
"Microsoft ?,IDC_STATIC,46,35,86,8
改为
"Microsoft ?",IDC_STATIC,46,35,86,8
(参考了https://blog.****.net/kelsel/article/details/52758662)
4、其他问题可以参考:https://bbs.****.net/topics/370221283
配置VC6.0
1、用VC6.0打开gh0st.dsw
2、VC菜单栏 工具->选项->目录
3、把psdk安装目录下的include、lib、bin文件夹的路径分别加入到Include files、Library files、可执行文件目录中,把wdk安装目录下的lib、bin文件夹的路径分别加入到Library files、可执行文件目录中,然后,把新加的它们都移到最上面的位置,也就是C:\Program Files\XXX这样的目录的上面,类似这样:
编译
1、一定按照编译svchost工程->编译install工程->编译gh0st工程,的步骤来编译,在VC里选择,工程->设置活动工程,可以切换当前工程。否则,直接在VC里运行gh0st工程可get到error:gh0st.exe 不是一个有效的可执行文件,手动点开gh0st.exe可得“此文件的版本与正在运行的windows版本不兼容。请检查计算机的系统信息以了解需要x86(32位)还是x64(64位)版本的程序......”
2、编译时出现的error:找不到"..\\sys\\RESSDT.sys"文件。双击定位,直接删掉这一行代码即可。其实这个驱动本身就已经过时了,可以全部删掉的。见https://blog.****.net/zz63948992/article/details/52130517去除驱动文件一栏。【没测过不删掉的情况】
3、编译svchost工程时出现error:Loaded 'C:\Windows\SysWOW64\winmm.dll', no matching symbolic information found.这是因为,这是你的代码调用了系统的dll中的代码,而被调用的代码不是debug版本,所以没有包函调试信息在里面。调试器试图读取这些代码的调试信息时就只好报告没找到了。(参考https://blog.****.net/Geek___/article/details/44888147)这个error不用理。直接跳过即可。
4、编译install工程也将得到error:不是一个有效的可执行文件,手动点击生成的install.exe可得“16位MS-DOS子系统NTVDM CPU遇到无效指令”。不管,继续编译。
5、编译完啦,VC里运行还是打不开gh0st.exe咧???把整个工程从虚拟机的共享文件目录移动到本地目录(但不知道是不是必须是C盘下)再试试。【我试成功了hhhhhhh】
6、生成的gh0st.exe路径:C:\gh0st\Bin,生成的install.exe路径:C:\gh0st\gh0st\res
7、还是有问题,不要伤心,不要放弃,组件->批组建->清除->手动删掉各个工程下的debug目录和生成的.exe文件,从头再来,又是一条好汉!