一个小玩意的逆向

僤鯓⒐⒋嵵緔 提交于 2020-11-19 10:57:10

前言:

        “吹气球,吹个气球玩球球”......逆了一个小玩意,叫【纸飞机大乱斗】,需攻破的主要有三个地方:请求body中message加密(req_sign)、ss-sign、返回数据message解密。俗话说:工欲善其事必先利其器,准备好jadx(jeb)、ida pro。

过程:

(一)、请求body中message加密(req_sign)

        message里面有很多信息,大部分字段均可通过hook方式拿到,其中req_sign是通过算法计算出来的。

        (1)打开jadx,将apk拖入并查找关键词:req_sign,定位到具体代码位置:

        (2)查找到之后,应该就容易明白了,主要就是将三个字符串拼接在一起然后进行一次MD5,三个字符串分别是:当前时间戳、code_id的值、UUID随机字符串。

(二)、ss-sign

        (1)同样,先查找字符:ss-sign,定位到实现代码处:

        (2)一步一步跟踪进去,你会发现调用了native方法,调用的so库是:libnms.so,用ida打开此so库,里面有具体的实现过程。但是...我的天让我吐一会,混淆太严重,做了控制流平坦化,你需要做的是什么呢,是去控制流平坦化,我需要做的是什么呢,是直接上andserver,嘿嘿嘿(三连~)......andserver直接google教程就好了,很简单。

(三)、返回数据message解密

        (1)当你hook了很多数据,你会发现message解密是通过“AES/ECB/PKCS5Padding”去解密的,都知道,解密需要key,key从何而来,key从黄土高坡来...从message前17位字符串来。

        (2)现在来个反向定位,我们先定位“AES/ECB/PKCS5Padding”解密方法,然后查找方法调用位置,一步步向前搜索,即可找到key计算位置:

后记

        具体代码不放了,免得被迫搞成只能VIP可见...思路就是以上思路,成不成就靠大家了...研究可以,不要乱搞...

        我的vx:YY_yhzf

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!