前言
看了四五qq大佬的白加黑文章,发现自己还是挺菜的,一直想学习下白加黑,但也一直没进展,大佬写的挺详细,于是就跟着大佬的文章走了遍,但真正做起来发现,并没有那么简单,各种问题,比如找dll、环境等问题,那一个细节没有整好,都可能无法达到指定预期,跟着走完,也是有两个比较疑惑的点
合适的dll
软件正常使用
最终在大佬的文章和百度下,解决了问题,于是准备写文章,但是微信的编辑器,自己用的不太习惯,于是找大佬给推荐了一个编辑软件,但是要付费,网上不太好找,就上拼夕夕买了一个,但是打开店家发的包,发现店家的技术人员使用了dll劫持,找了一个NAME NOT FOUND的dll,绕过了激活,从而达到了破解,看完我都不想发这篇文章了,害
本文在四五qq大佬的白加黑文章(https://mp.weixin.qq.com/s/0qrRrPHnrva6FdSEWkgr0Q)下,进而有点想法,于是就写了这篇文章
注:本文所用到的工具可在文末下载
环境
还是用的四五qq大佬的那个测试程序,只是稍微改动了一点,加了获取dll函数地址的判断和自动输入要求和的数字,其余都和大佬的一样
合适的dll
选择一个幸运程序网易云,打开Dependencies文件,选择左上角file-open,到网易云安装目录下,按文件大小排序
在打开进程监视器,过滤进程名字和属于路径,最后启动网易云音乐
启动后,进程监视器也是过滤出网易云音乐加载的东西,看Result那列,发现有些值是NAME NOT FOUND,这些可以利用,其次就是SUCCESS的dll了,这时看Dependencies打开的文件夹,由于刚才排过序了,从上往下看dll文件,找一个相对文件小的,且可以劫持的,这样影响软件的作用可能相对较小
软件正常使用
回到大佬的测试程序,当程序加载的dll不存在或者替换时,都会影响程序正常运行
在百度上找到一种使用def文件解决的方法,于是了解def文件作用,发现他可以提供相关链接程序的导出、属性及其他方面的信息,这不有了,需要把dllmain.cpp文件复制出来
下来就是def文件,LIBRARY填写转发的dll,EXPOERTS导出函数
#pragma comment(linker,"/EXPORT:sum=_AL_sum,@1")
两个文件都准备好后,使用该命令gcc -shared -o test.dll evil.cpp fun.def,运行成功会生成test.dll文件,再把生成的文件放到程序目录里,原dll更名为test1.dll,运行后可以看到程序正常运行
实战
通过上面的方法,找到了网易云底下的libcef.dll,没这个文件,网易云启动不起来
由于def文件只是改写下,一两行还行,多了就有点烦躁,于是自己写了个小脚本,生成了def文件
把生成的dll放到原程序目录,原dll更改为libcef1.dll
最后可以看到程序正常运行,也运行了我们的代码,弹窗了
AheadLib修改版本 Happy 牛 Year工具
yonsm大佬写的这个工具包含的方法挺多的,转发、调用还有hook,也可以试试这个工具
总结
6.99让我知道了dll劫持还能破解,但是做权限维持更不赖