第一步配置XServer
在已经ROOT的安卓手机安卓Xposed和XServer(https://github.com/monkeylord/XServer)
然后监听应用SELECT APP–>APPLY
这里有个坑:第一步从Xposed模块打开XServer后需要这时候打开那个监听的APP然后XServer才工作(提供WEB界面)
第二步端口转发到电脑:
adb forward tcp:8000 tcp:8000
第三步在电脑8000端口转接到手机8000端口能看到如下服务:
并在该服务工作。
第四步搜寻加解密函数:
可疑的尝试:aes 、 rsa 、 decode 、encode 、 crypt 、 des 等。
依次搜寻–>Hook–>产生数据–>查看数据–>直到抓到明文数据:
抓包阶段完成
拿到关键hook函数
过滤参数修改为:tongcheng.lib.core.encode.b.a
Request–> [5400] Lcom.tongcheng.lib.core.encode.json.b;->a(Ljava.lang.Object;)Ljava.lang.String;
Response–>[5400] Lcom.tongcheng.lib.core.encode.json.b;->a(Ljava.lang.String;Ljava.lang.reflect.Type;)Ljava.lang.Object;
这里这个包比较复杂,还涉及包的签名
我们不知道签名函数传入形式,因此二次Hook签名函数
跟进 Lcom.tongcheng.netframe.wrapper.gateway.entity.RequestJson;#com.tongcheng.netframe.wrapper.gateway.entity.RequestJson@fe64332
因此这个参数传入到 Lcom.tongcheng.lib.core.encode.json.b;->a(Ljava.lang.Object;)Ljava.lang.String; 然后就生成了sigin.因此我们需要利用两个函数来生成修改的Sign
通过参数两次加密传递即可做到修改包。
这里建议右键新建便签页,因为invoke时还需要用到tracer