首页
论坛
课程
招聘
0x1.统筹看逆向

0x1.统筹看逆向


本文内容主要统筹的介绍一下多数游戏破解及增加验证的流程,也就是多数外挂制作及售卖者的制作思路。
                                                                                                                 ---------------------------------------------(本文不涉及具体方法,只做简单介绍)
为了方便理解,我给大家画了一张图,如下:

根据图片,我们将这个逆向到最终的加验证打包分为四大部分,分别为 反编译解密加密验证

1.反编译
这里的反编译主要是指的对apk的逆向和修改,而逆向过程中的解密过程,由于比较多样和复杂,则单独拿了出来。
apk的修改在这里主要介绍三种层次,JAVA层修改SO层修改U3D游戏dll脚本修改

1.1  JAVA层修改
apk的逆向目前普遍采用的工具是Android Killer,反编译完成后,对于java层的修改主要依赖smali语法,即Dalvik虚拟机语言。
1.2 SO层修改
SO层的分析和修改主要依赖的工具是IDA以及16进制编辑器,会用到汇编语法。
1.3 dll修改
U3D的dll为.NET框架,均为C#语言编写,分析和修改主要依赖Reflector等.NET工具,会用到C#语言及其中间语言il。

2.解密
解密过程其实同样也分为上述三种,不过这里我们暂不把so的解密或者修复放进来,只介绍另外两点。

2.1 JAVA层解密
这个就是我们最经常听到和见到的脱壳,主要辅以静态分析和动态调试来解决。
2.2 dll解密
dll的解密主要是分析libmono.so文件,如果加密很简单还可以直接在编辑器中分析dll文件,如果需处理文件较多,有时需要自己编写解密工具。
同时dll文件除了解密,有时还会涉及到文件结构的修复,比如DOS头,PE头,NT头,Metadata Dictionary等等。

3.加密
加密部分主要针对dll,因为如果带加密函数的libmono.so我们不做修改或者变更的话,一般情况下,解密修改完后的dll我们需要加密回去才能让apk正常运行。
这个加密过程我们可以根据解密函数对应的写出加密工具,或者针对简单的加密直接在编辑器中完成。

4.验证
在修改或者有时候必需的加密完成之后,apk可以正常运行了,这时外挂制作者通常会对apk进行加密以及增加验证来保证自己的利益。
这种验证分为本地验证和网络验证。

4.1 本地验证
无论是哪种验证,都会取apk运行设备的信息或其他可作为唯一识别码的信息,然后加以运算,得到一个对应的码,
这个对应的码就是我们熟知的激活码,一方面可以保证被恶意传播,另一方面可以保证自己的某些利益,这里就不具体解释了。
4.2 网络验证
本地验证固然方便,但是也有弊端,就是不可控,所以很多人转为进行网络验证来控制使用,可以实时控制apk的使用情况。

====>>>>
不管是哪一个过程,修改基本都在java,so,dll中进行,分析方式也都是静态分析和动态调试,本文主要是让新手对于逆向有个统筹的了解。

上一节 :
下一节 :
章节评论 (10)
张Nero 2018-1-20
 举报
老师,so是啥?
茅山小僧 2018-1-26
 举报
不错啊,可以出个教学视频
yanjunmin 2018-2-7
 举报
so,linux下文件的一种;全称share  object;安卓从其发展而来,所以会有.so文件;类似于windows平台的动态链接库...如有错误之处,敬请指正。
KillSars 2018-2-26
 举报
小小的了解一下
shelly宣 2018-3-10
 举报
看不太懂。
aihacker 2018-5-21
 举报
把这一些列出个小册子吧?或者整成pdf或chm
【讲师回复】 很好的建议^_^
2018-5-21
轩。 2018-5-22
 举报
老师。是不是报名学习有视频看?还是报名学什么?
【讲师回复】 貌似跟你说过了
2018-5-24
龙半仙不算命 2018-9-5
 举报
楼主有视频提供购买吗??
zr小张 2018-11-18
 举报
很不多
mb_udcjdwum 2021-2-19
 举报
很不错的的~希望看雪越做越好!支持
域名:加速乐 | SSL证书:亚洲诚信 | 安全网易易盾| 同盾反欺诈| 服务器:绿盟科技
©2000 - 2021 看雪学院 / 沪ICP备16048531号-1 / 沪公网安备 31011502006611号