乐于分享
好东西不私藏

某APP开启调试模式进行解密

某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和encryptPostDataString都是通用的,所以随便选择一个进行分析即可。
查看encryptPostDataString可以发现有加密相关的,但是今天的内容点不在这里所以就不进行深度分析。
在当前类中选择查看getEncryptPostDataString相关的源码。

加密代码在: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;});
运行hook脚本之后,重新进行抓包,可以发现请求包和返回包均没有进行加密了
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 某APP开启调试模式进行解密

评论 抢沙发

6 + 4 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮