学破解论坛-软件逆向分析工程师的摇篮-懂进攻知防守!

 ★找回密码★
 ★立即注册★

QQ登录

只需一步,快速开始

查看: 5823|回复: 191

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

  [复制链接] |关注本帖

  离线 

签到天数: 5

该用户今日未签到

马上注册,深入学习!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 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破解的旁门歪道吧,缺点就是要有源码新手才能分析。



评分

参与人数 46威望 +1 HB +119 THX +24 收起 理由
【谷峰】 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
akria00 + 1 [快捷评语] - 吃水不忘打井人,给个评分懂感恩!
asdfg + 1 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
VSsavitar + 1 [快捷评语] - 期待下一期
往子 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
小人 + 1 [快捷评语] - 2017,让我们17学破解!
tianexe + 1 [快捷评语] - 分享精神,是最值得尊敬的!
niunaimiu + 1 [快捷评语] - 分享精神,是最值得尊敬的!
1825052587 + 1 大学生活过得真有意义
未走完的路 + 1 吃水不忘打井人,给个评分懂感恩!

还有更多人参与评分,点击查看全部!

学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  在线 

签到天数: 176

今日第640个签到

必须赞一个啊,期待下一集。
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 64

该用户今日未签到

来看看大牛的作品
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 73

该用户今日未签到

感谢now刘大神 表示和你私不回复我a ~
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 22

该用户今日未签到

这么精品的教程  没人?
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 36

该用户今日未签到

不错,值得学习,写教程能提高自己也能帮助有心人!
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 166

今日第215个签到

不错的教程 收藏了
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 4

该用户今日未签到

来看看大牛的作品
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 144

该用户今日未签到

来看看大牛的作品
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

  离线 

签到天数: 4

该用户今日未签到

来看一下教程,多谢楼主分享
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识,所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者其他任何非法用途!否则,一切后果请用户自负!


联系QQ|联系Email|手机版|小黑屋|FAQ|Vip破解教程|学破解论坛 ( 京公网安备 11011502002737号 | 京ICP备14042738号 )  

GMT+8, 2017-7-27 22:51

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