吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8663|回复: 23
收起左侧

[原创] 网络验证的攻与防 攻篇(二)

  [复制链接]
xu2611 发表于 2016-10-19 13:02
本帖最后由 xu2611 于 2016-10-19 13:09 编辑

攻篇(一)地址:http://www.52pojie.cn/thread-544094-1-1.html
攻篇(一)所有的网络验证是某可9.5版,关键API没有带VMP标记,所以加壳的时候关键API并没有被VM,这次我把示例程序换成9.1版,关键API是带VMP标记的,这篇主讲VM后的程序怎么处理
先讲一讲VM后的程序如何定位API头部,易语言的VMP标记是在API头部以下的,所以一般的加壳并没有VM掉API的头部
打个比方,如果你现在正想破一个某可9.1版的程序,你先找一份某可9.1版的原程序,生成一个示例程序,然后对照程序用OD跟踪出未加壳的头部地址
我的示例程序ks_IdCheck函数的头部在408FF3处,如下图
10191.jpg
看箭头所指地方,是VMP的标记字符串,字符串上面是一个JMP,然后把头部到VMP标记以面的JMP之前的二进制代码复制一下
55 8B EC 81 EC 94 00 00 00 C7 45 FC 00 00 00 00 C7 45 F8 00 00 00 00 68 0C 00 00 00 E8 64 2D 01
00 83 C4 04 89 45 F4 8B D8 C7 03 00 00 00 00 C7 43 04 00 00 00 00 C7 43 08 00 00 00 00 C7 45 F0
00 00 00 00 C7 45 EC 00 00 00 00 C7 45 E8 00 00 00 00 C7 45 E4 00 00 00 00 C7 45 E0 00 00 00 00
C7 45 DC 00 00 00 00 C7 45 D8 00 00 00 00 C7 45 D4 00 00 00 00 C7 45 D0 00 00 00 00 C7 45 CC 00
00 00 00 68 10 00 00 00 E8 F8 2C 01 00 83 C4 04 89 45 C8 8B D8 C7 03 00 00 00 00 C7 43 04 00 00
00 00 C7 43 08 00 00 00 00 C7 43 0C 00 00 00 00 C7 45 C4 00 00 00 00 68 08 00 00 00 E8 C4 2C 01
00 83 C4 04 89 45 C0 8B F8 BE 78 51 4A 00 AD AB AD AB
由于每次用原程序重新生成程序的时候,图片中CALL的地址基本都会不一样,所以上面的二进制要改一下才能用在别的程序,怎么改呢?把CALL后面的地址用OD的通配符??代替,就变成了下面的二进制代码、
55 8B EC 81 EC 94 00 00 00 C7 45 FC 00 00 00 00 C7 45 F8 00 00 00 00 68 0C 00 00 00 E8 ?? ?? ??
?? 83 C4 04 89 45 F4 8B D8 C7 03 00 00 00 00 C7 43 04 00 00 00 00 C7 43 08 00 00 00 00 C7 45 F0
00 00 00 00 C7 45 EC 00 00 00 00 C7 45 E8 00 00 00 00 C7 45 E4 00 00 00 00 C7 45 E0 00 00 00 00
C7 45 DC 00 00 00 00 C7 45 D8 00 00 00 00 C7 45 D4 00 00 00 00 C7 45 D0 00 00 00 00 C7 45 CC 00
00 00 00 68 10 00 00 00 E8  ??  ?? ?? ?? 83 C4 04 89 45 C8 8B D8 C7 03 00 00 00 00 C7 43 04 00 00
00 00 C7 43 08 00 00 00 00 C7 43 0C 00 00 00 00 C7 45 C4 00 00 00 00 68 08 00 00 00 E8 ?? ?? ??
?? 83 C4 04 89 45 C0 8B F8 BE 78 51 4A 00 AD AB AD AB
然后在易语言的401000处开始,用上面的二进制代码查找,就可以找到VM后的ks_IdCheck函数头部,这种方法也就是所谓的特征码定位,用这种方法,只要你网络验证的同版本的原程序,基本就可以把API的头部查找出来
ks_IdCheck函数的HOOK在攻篇(一)中有兴趣的去看攻篇(一)
下面我们解决第二个关键函数ks_GetData
用OD跟踪,ks_GetData函数头部在41508A处,下面我们看一看这个函数的说明
10192.jpg
此函数根据不同的输入整数返回不同的信息,我的例子就写了一个输入整数为4,返回的是用户绑定信息,我们假设此信息是文本:123456
则我们的HOOK程序的写法如下图
10193.jpg
如果要返回别的信息,你们可以自己改写一下就行了,所有要用到程序和原代码都打包好了
下载地址为:链接: http://pan.baidu.com/s/1b8XA26 密码: xxsa
压缩包里的程序没有加VMP壳,你们可以自己加一下VMP壳比较一下未VM与VM后函数内部的变化,上面的特征码定位方法大家自己动手操作一下更容易懂
对照例子,只要你手上有某可同版本的原代码,解决ks_IdCheck与ks_GetData是没有问题的。压缩包里有HOOK原代码,也有注入程序源代码,怎么HOOK大家
可以参照一下我的写法,别光看帖子,要接合原代码

点评

这种方法很实用的。但是在401000不一定搜索到。建议在内存中搜索。而这种方法需要源码是个缺点。而且如果VM了段首,这样就干不掉了  发表于 2016-10-26 19:23

免费评分

参与人数 7热心值 +7 收起 理由
wangyiquanwm + 1 谢谢@Thanks!
KaQqi + 1 thanks
yeyulang + 1 用心讨论,共获提升!
hc696di + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
在路上的人 + 1 谢谢@Thanks!
JackDx + 1 我很赞同!
Sound + 1 已经处理,感谢您对吾爱破解论坛的支持!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hunkiss 发表于 2016-10-19 15:16
还有网络验证也是 放OD就调用了TApi.dll  dm.dll  login.dll  TLib.dll  这是什么网络验证在访问个183.131.212.50:443 IP.
有人说是注册宝。我怎么就觉得不像啊
mutou666 发表于 2017-6-5 16:19
viply 发表于 2016-10-19 13:45
现在破解可可没什么难度了,满大街被玩烂的一个验证系统
可可每次调用它的函数都会先调用一个CALL,直接找 ...

看见你说的话我仿佛已经瞬间学会了hh,
温柔你的兔子哥 发表于 2016-10-19 13:06
Sound 发表于 2016-10-19 13:30
段首VM的话  HOOK的地方就得换了。
影佑 发表于 2016-10-19 13:31
厉害了啊老哥
JackDx 发表于 2016-10-19 13:38
支持下。
viply 发表于 2016-10-19 13:45
现在破解可可没什么难度了,满大街被玩烂的一个验证系统
可可每次调用它的函数都会先调用一个CALL,直接找到并且HOOK掉这个CALL然后直接修改返回值就行了。
黑龍 发表于 2016-10-19 13:56
甭说了 我去找可可定制模块了...看见你们就害怕。
hc696di 发表于 2016-10-19 14:59
好多眼熟的大神
hunkiss 发表于 2016-10-19 15:13
有个软件VS2008编写的区段就只多加了一个vmp0.这是VMP壳吗?还是其他壳伪装的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-14 08:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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