吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 69972|回复: 400

[原创逆向图文] 可可山寨VM教程之分析篇(一)

  [复制链接]
now刘 发表于 2016-10-2 20:20 | 显示全部楼层 |阅读模式

本帖最后由 now刘 于 2016-10-3 01:01 编辑

大家好,我是Now You See Me ,今天为大家带来可可VM后山寨的思路,我写这个东西原因来自几个月前,有人用易语言写了可可的山寨软件。他说他这个能卖8000RMB这样。然后我对这个生起了兴趣,由于刚刚步入大学生活,感觉时间非常充裕,加上又学C语言,所以我就缓慢地研究,终于今天弄好。 2016\10\02。我录制的视频估计有点长,因为自己为了提高C++的基础,用C++首次尝试DLL劫持打补丁(有C++apihook基础),并且还是成功了,注意:这种分析方法挺适合新手利用编程逆向VM方法之一。先说说我的开发环境:
系统:Windows 8.1专业版
开发平台:VS2015
分析逆向的源码:可可9.5易语言例子  可可9.5模块源码
自己的DLL补丁开发环境:MFC DLL
系统DLL劫持开发环境:WIN32 DLL
需要用到的技术 API HOOK(我使用微软detours开发框架的HOOK源码,虽然detours有局限性,并且有我目前还没解决的问题)  系统DLL劫持 version.dll”(可以用AXXXXB.EXE生成源码,但是估计系统不兼容的原因
,生成的源码报错,之后我使用飘零阁校长发过的代码能使用)  裸函数的小小应用(进入OD后会讲到)
在此由衷感谢裸函数的小小使用 ID:大老爷 的指点,劫持源码感谢飘零阁校长的系统劫持DLL源码提供。后面都是自己一顿瞎搞。
我先粗略的讲解一下可可网络验证每次加载的话都会加载“version.dll”这个系统的DLL文件(也许会跟系统的原因,DLL可能不一样)系统DLL劫持技术就在于系统先扫描当前目录系统DLL(如“version.dll”),当前目录没找到然后在扫描C盘里面的系统DLL,我们先建立一个文件名一模一样的“version.dll”,注意微软的DLL貌似不开源。因此我们并不知道“version.dll”这个文件怎么仿照弄,所以每当程序调用我们自己的“version.dll”上的应用时,我们在源码上建立一个接口,让程序跳到系统目录执行原系统DLL函数的功能,因为程序是先执行我们自写系统DLL的,之后我们就可以在自写系统DLL上自由的读写了。我这选择LoadLibary这个API函数加载我的补丁DLL。因为他有他的好处。(以上废话到此结束) 回复获取VS2015劫持源码:
游客,如果您要查看本帖隐藏内容请回复

用OD来逆向
我们先来看看可可登录验证的源码,启动窗口时就调用ks_setLicense来链接服务器接口(需要API来下断,跑过了就失败了,我获取到的是GetModuleHandleA这个API函数进行劫持,当然这是打补丁的事情)。

这个函数在模块使用得,我在某论坛看了一下模块源码,发现一个套路秘密,他这个模块是里边加载DLL并且使用DLL里边的函数的进行验证的。然而这个DLLVM过的。这是坏事,也是好事,坏事就是不能分析DLL原理,能分析话他就不用玩了。好事就是几乎所有软件作者都没动过DLL,也就是说,这些DLL可以说结构一成不变的。然而你在看看模块有一句获取函数地址- -* ,我直接把模块添加信息框,进行地址获取,当然写法估计有点变,特征码需要自己定位,在用C++补丁写法我会讲到有关地址的问题。
也就是说,模块为了加载DLL不得不获取函数头地址进行传参,然而我们获取能随意获取DLL传参函数头地址,在那个地方进行HOOK


我先给大家介绍函数参数与堆栈的小小意示图
先分析ks_setLicense只有一个参数并且没有返回值,这样只有HOOK了,我测试过如果是仿照模块函数的话程序直接结束运行,我已经测试过了。我们看堆栈应用图片知道ebp+8是函数参数1存放的地方,存放着是一个4字节的指针地址,我们HOOK ,先在空白地址写上补码数据,记上函数的头地址(当它是一个指针吧),我们就添加这一句:
mov dword ptr ss:[ebp+8],0x地址
之后补上剩余的字节 jmp回去

过程展示全图



F9后窗口启动完成,修改ks_setLicense已经完成,到这里已经达到了一半成功=-=



下一步就是看登录按钮事件,这个事件调用模块的ks_setSoftVal函数,不出意料的模块调用的也是DLL的函数,同样的方法,在函数头下方HOOK ebp+8是软件编号,ebp+c是软件秘钥按照上面的方法进行,HOOK完成也就完成了,看看登录效果,登录进去就是HOOK山寨成功了(数据签名貌似并不重要,不清楚原因,不过数据签名与验证算法有关,数据签名改也是非常容易,易语言有个取中间文本,定位特征码就能改,而且伦发的可可山寨软件也有取中间文本的地址,数据签名在ebp+24吧好像,我比较懒,不去弄了)



file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png

最后卖个关子,大白补丁能做到这一切,但并不是非常完美,第一有logo加载,第二,hex补丁有RSA加密字节限制ks_setLicense数据根本不能补全,第三补丁不能动态申请内存空间,容易出错。

下次用视频讲解一下C++补丁写法和自身一些疑问问题。注:本次图文教程非常不适合实验,因为会出挺多差错,适合写补丁提供一下思路。下一期进行介绍我的C++补丁,我会发源码给大家参考的。
这篇文章是我利用学习之余发表个人研究与个人观点,老手飘过,同时这算是VMP逆向的旁门歪道吧,缺点就是要有源码新手才能分析。



评分

参与人数 108威望 +1 HB +173 THX +53 收起 理由
NOP + 1
一起学 + 1
willgoon + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
xiaoxixpj + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
attackmyth + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
我来汇编 + 1
呼延雨薇 + 1
sjtkxy + 1 + 1
花盗睡鼠 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
24567 + 1
我是小天 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
迈克零零 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
郭咩咩 + 1
Jawon + 1
自律回路 + 1
禽大师 + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
消逝的过去 + 2
行行行行行行 + 1
娄胖胖 + 1
银河星光 + 1
124713549 + 1
zyyujq + 1
temp + 1 + 1
by0827 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
凌夏随缘 + 1
xgbnapsua + 1
kway + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
秋名山放牛娃 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
a522413238 + 1 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
fjgh + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
不想用中文 + 1
就是那么个菜鸡 + 1
DeeDarrick + 1 [吾爱汇编论坛 52HB.COM]- 软件反汇编逆向分析,软件安全必不可少!
sherry5566 + 1 + 1 <span class="text2Link">[吾爱汇编论坛<a target="_blank">52HB.COM</a>]-吃水不忘打井人,给个评分懂感恩!</span>.
thunderiser + 1
baobeitom + 2
4957465 + 1
叶落花开 + 1
jaunic + 1
liugu0hai + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
h112233h456 + 1
kll545012 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
mengzhisuoliu + 1
Tian_52HB + 1
mengzhisuoliu1 + 1
红尘往事三杯酒 + 1 [快捷评语]--吃水不忘打井人,给个评分懂感恩!
红尘路客 + 1

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2016-10-2 22:14 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
坏坏LLLLLL 发表于 2016-10-2 22:23 | 显示全部楼层

来看看大牛的作品
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
叶良辰和赵总 发表于 2016-10-2 22:33 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
命运 发表于 2016-10-2 22:33 | 显示全部楼层

这么精品的教程  没人?
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
soncy88 发表于 2016-10-2 22:39 | 显示全部楼层

不错,值得学习,写教程能提高自己也能帮助有心人!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
a9886907 发表于 2016-10-2 23:03 | 显示全部楼层

不错的教程 收藏了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
一片苹果 发表于 2016-10-2 23:08 | 显示全部楼层

来看看大牛的作品
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
仲夏成霜 发表于 2016-10-3 05:45 | 显示全部楼层

来看看大牛的作品
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
液絡朦涳 发表于 2016-10-3 08:51 | 显示全部楼层

来看一下教程,多谢楼主分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表