某APP开启调试模式进行解密
0、简介
新的一年,新气象,打算开启一个新的篇章:app+小程序+js逆向篇。
如果有不会app抓包的,可以在评论留言,我有空就会出一期app抓包。
在这里提前祝各位师傅新年快乐!!!
一、数据包分析
直接开启小黄鸟进行代理转发即可抓取到数据包,可以发现数据包和返回包均进行了加密

根据请求包和返回包的特征来标记一下需要进行搜索的关键字
postDatresult/api.json
二、反编译分析加密
进行反编译,根据关键字来搜索
postData"postData"result"result"/api.json
进行反编译,关键字搜索:”postData”,发现只有一个,那就直接来分析

查看KEY_POST的调用

发现还是有许多地方用到的,所以这里需要结合请求包来判断
-
postData的值被加密,那么就代表是需要对postData来进行赋值的 -
进行赋值优先选择put,这是map的添加 -
并且是加密,所以选择和加密相关的方法:getEncryptPostDataString,encryptPostDataString -
并且可以发现有多个方法中都使用了getEncryptPostDataString,encryptPostDataString -
这里附件一下小知识,在进行查看调用链时优先查看当前类的调用 

加密代码在:getEncryptPostDataString()方法中,查看代码的过程中发现,有一个if()判断,如果条件为真就直接不进行加密

查看ThingSmartNetWork.mPacketCaptureEnabled的值

三、hook编写
根据前面的分析可以得知只要将ThingSmartNetWork.mPacketCaptureEnabled的值修改为true,即可绕过加密。
那就根据源码来进行hook的编写将mPacketCaptureEnabled的值修改为true
Java.perform(function () {var ThingSmartNetWork = Java.use("com.thingclips.smart.android.network.ThingSmartNetWork");ThingSmartNetWork.mPacketCaptureEnabled.value=true;});

夜雨聆风
