(⊙o⊙)…
好几个月没写东西了,这个文章是3个月前想搞的,直到现在才发出来..........
o(╥﹏╥)o
言归正传
一.APK的简单破译并且破译相关的算法和获取相关资源
1.工具准备
准备个apk反编译工具包,一个你想破解的三流apk(咋们有多大能量就搞多大的事情)
这里,我找了个逆向破解的工具效果还可以,有兴趣的可以自行百度
jadx-0.6.1
如上图所示,为了避免出现不必要的意外,我选择的apk是灰色apk,就是博彩,非法视频的这种软件,我想应该不会犯法吧。
2.开始解析
启动后进入界面选择apk后等待解析完成。
3.开始解分析代码,获取资源
获取apk资源文件
三流软件的通病(或者说是新手吧,我也这样搞过),把公私钥暴露出来了,如果算法不稳,绝对嗝屁。
既然看到公钥,那我们就看下他的算法。
部分混淆?
如何入手?
这边提供个思路,重清单配置文件入手,只能一步一步的进去了
·······································以下省略n多探索步奏·······································
这边找到了apk后台的url和视频列表的请求题部分,以及vip支付部分。
公私私钥算法
到这部 核心破解工作就结束了,剩下就是自己写代码验证了。
二.如何加大被破解的难度
世上没有不能破解的软件,之所以不能破解是因为大多数人和我一样都是菜鸡。
防守策略 菜鸡互啄
这是指针对同一水平的防守策略。
1.公私钥对的存放位置防守
正常情况下很多人都放在assets下面,显然上面的破解例子告诉了大家不是很安全的。
明文写入代码?显然似乎看到了某种严重的后果。
直接暴露出来了。
存放在so库当中?
诚然,这种方法是有效的,至少菜鸡的心会痛,但是还是防止不了有经验的老鸟。
总结:
公私钥对的存放位置没有相对的安全性,存放so库当中只会加大逆向破解的难度,并不是绝对的安全。
2.算法的位置
从上面可以破解可以看出,算法还是很容易的被找到,明显代码中放算法也不是很安全。
同样可以把算法放到so库当中,或者多准备一些算法,根据服务器下发的算法序号进行不同算法计算,这也是加大逆向破解的难度,大大的保证信息的安全。
3.apk加固
阿里聚安全,乐固加固等第三方的加固工具,可以有效的加强apk的安全。
这个可能就是最省力的一种方式了。
结束语
没有百分百的破解,没有百分百的防守,作为纯正的it 砖头工 我们唯一能做的是加大破解的难度。
额,写到最后都不知道改说啥了?