找回密码
 立即注册

QQ登录

只需一步,快速开始

1401软件论坛总版规【新人必看】如何正确发布收费帖子加入vip系统学习仅需498元免费获得1401软件安全论坛vip开通本站VIP会员请联系QQ 564853771
论坛纪念优盘Beyond EXE超强加密器V1.61401论坛破解工具包 2017-9-12[破解班vip]入门篇[破解班vip]基础篇
[破解班vip]脱壳篇[破解班vip]实战篇[破解班vip]网络验证篇[破解班vip]零基础HOOK教程[破解班vip]零基础易语言入门
[破解班vip]零基础c语言入门[破解班vip]零基础Delphi编程入门[破解班vip]寒假培训课程共7课[破解班vip]破解提高篇[破解班vip]易语言培训课程
[破解班vip]核心技术培训篇[破解班vip]pe格式与pe操作[破解班vip]2022全新封包-山寨-爆破全系列[原创课程]c++单文档框架课程[逆向班vip]汇编语句与反汇编基础
[逆向班vip]全自动扫雷辅助[逆向班vip]手机模拟按键[逆向班vip]植物大战僵尸辅助广告位招租...付费破解软件 +Q 564853771
查看: 7187|回复: 2

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

[复制链接]
  • TA的每日心情
    奋斗
    2019-1-20 01:35
  • 签到天数: 79 天

    [LV.6]常住居民II

    6

    主题

    153

    回帖

    241

    积分

    终身vip会员

    UID
    7624
    元宝
    179
    威望
    98
    贡献
    10
    信誉值
    0
    精华
    0
    在线时间
    27 小时
    注册时间
    2016-5-3
    最后登录
    2019-1-20
    违规
    0
    积分
    241

    破解班vip

    发表于 2016-10-4 22:06:57 | 显示全部楼层 |阅读模式
    Ȧ
    本帖最后由 now刘 于 2016-10-4 22:27 编辑

    大家好,我是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。因为他有他的好处。(以上废话到此结束)
    OD来破解
    我们先来看看可可登录验证的源码,启动窗口时就调用ks_setLicense来链接服务器接口(需要API来下断,跑过了就失败了,我获取到的是GetModuleHandleA这个API函数进行劫持,当然这是打补丁的事情)。
    666.png
    这个函数在模块使用得,我在某论坛看了一下模块源码,发现一个套路秘密,他这个模块是里边加载DLL并且使用DLL里边的函数的进行验证的。然而这个DLLVM过的。这是坏事,也是好事,坏事就是不能分析DLL原理,能分析话他就不用玩了。好事就是几乎所有软件作者都没动过DLL,也就是说,这些DLL可以说结构一成不变的。然而你在看看模块有一句获取函数地址- -* ,我直接把模块添加信息框,进行地址获取,当然写法估计有点变,特征码需要自己定位,在用C++补丁写法我会讲到有关地址的问题。
    777.png
    也就是说,模块为了加载DLL不得不获取函数头地址进行传参,然而我们获取能随意获取DLL传参函数头地址,在那个地方进行HOOK

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

    过程展示全图
    1.png

    999.png

    2.png

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

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

    5.png

    6.png

    7.png
    最后卖个关子,大白补丁能做到这一切,但并不是非常完美,第一有logo加载,第二,hex补丁有RSA加密字节限制ks_setLicense数据根本不能补全,第三补丁不能动态申请内存空间,容易出错。
    下次用视频讲解一下C++补丁写法和自身一些疑问问题。注:本次图文教程非常不适合实验,因为会出挺多差错,适合写补丁提供一下思路。下一期进行介绍我的C++补丁,我会发源码给大家参考的。

    这篇文章是我利用学习之余发表个人研究与个人观点,老手飘过,同时这算是VMP破解的旁门歪道吧,缺点就是要有源码新手才能分析。下面是我用VS2015C++写的补丁源码(源码很重要),这个源码其实动动脑子也能劫持其他的网络验证的软件打补丁,对新手扩展了打补丁自由性,并不一定需要补丁工具。




    vs2015可可DLL劫持源码.txt

    81 Bytes, 下载次数: 24, 下载积分: 元宝 -2

    评分

    参与人数 1威望 +10 贡献 +10 元宝 +10 收起 理由
    admin + 10 + 10 + 10 感谢发布原创教程

    查看全部评分

  • TA的每日心情
    郁闷
    2017-8-15 11:15
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    0

    主题

    39

    回帖

    47

    积分

    人在旅途

    UID
    8119
    元宝
    24
    威望
    21
    贡献
    0
    信誉值
    0
    精华
    0
    在线时间
    6 小时
    注册时间
    2016-6-27
    最后登录
    2017-8-15
    违规
    0
    积分
    47
    发表于 2016-10-19 21:08:49 | 显示全部楼层
    顶!!凑字数啦!!!
  • TA的每日心情
    郁闷
    2017-7-10 21:24
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    1

    主题

    31

    回帖

    43

    积分

    人在旅途

    UID
    8445
    元宝
    56
    威望
    13
    贡献
    0
    信誉值
    0
    精华
    0
    在线时间
    5 小时
    注册时间
    2017-1-12
    最后登录
    2017-7-10
    违规
    0
    积分
    43
    发表于 2017-1-13 17:10:00 | 显示全部楼层
    路过 ,,,,,,,,,
    回复

    使用道具 举报

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

    本版积分规则

    QQ|Archiver|手机版|小黑屋|1401软件安全 ( ICP备16034480号 )

    GMT+8, 2024-4-26 06:29 , Processed in 0.195321 second(s), 32 queries , Gzip On.

    Powered by Discuz! X3.5

    Copyright © 2001-2020, Tencent Cloud.

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