app逆向分析案例-95分

发布于:2023-05-22 ⋅ 阅读:(364) ⋅ 点赞:(0)

先把justtrusmeplus打开设置好95分,开始抓包,得到结果为:

https://www.95fenapp.com/api_goods/list/v3.0?is_all=1&keywords=%E7%A7%91%E6%AF%94&

page=1&page_size=20

&publish_timestamp=0

&scene=2&scene_type=95fen_android_search_personal&sn=SearchList&

spm=L93782f7a5fd50e7a

&timestamp=1615455175519

&token=5a3b08f18dd751bd6321e669962460dc

可知加密参数为token,然后进行jadx搜索,不管是token= “token 都没有搜索到,换个方式搜索api_goods/list/v3.0  发现在一个地方进行调用了,但是用了一天时间,不管是进行这个地方的HOOK还是上下文看项目,一直没有发现真实的token生成的地方,即使这个地方确实是调用了,也经过了(反思:在这里的调用函数分析中,观察到是在服务中直接发送了请求,请求的参数中已经包含了token,在这里无法再分析到细节)

然后再换一下思路,既然能抓包抓得到,那就开始objection来看看okhttp  随后进行okhttp的hook

发现确实也走了这个,于是再进一步,进行okhttp3.Request.url方法的hook,发现搜索token出现以下结果

说明这个命名,起码是跟token有关,继续进行这个类的hook

这里有几个方法,也确实被调用了,所以打开项目进行f.v.a.g.g.a的搜索

在这里先进行intercept方法的hook是不成功的,这个是拦截器,于是再换成对其他方法的hook:

        RposedBridge.hookAllMethods(

                RposedHelpers.findClass("f.v.a.g.g.a", lpparam.classLoader),

                "d", new RC_MethodHook() {

                    @Override

                    protected void afterHookedMethod(MethodHookParam param) throws Throwable {

                        Log.i(tag,"参数1===>"+JSONObject.toJSONString(ForceFiledViewer.toView(param.args)));

//                        Log.i(tag,"参数2===>"+JSONObject.toJSONString(ForceFiledViewer.toView(param.args[1])));

                        Log.i(tag, "结果====> " + JSONObject.toJSONString(ForceFiledViewer.toView(param.getResult())), new Throwable());

                    }

                }

        );

换成hook这个HTTPURL 观察入参出参就发现了疑似地点:

还有a方法的hook:

可以确定token 就是a方法生成的,然后需要确定的就是入参,直接使用当前的URL  是错的

所以需要 HOOKa方法,同时抓包,通过Charles的抓包参数进行搜索,发现以下打印结果:

["xgcpyh666",{"is_all":"1","keywords":"耳机","page":"1","page_size":"20","publish_timestamp":"0","scene":"2","scene_type":"95fen_android_search_personal","sn":"SearchList","spm":"L2c5037dd43542aa8","timestamp":"1615882480695”}]

结果====> “048f430296442f4d92eac06ad91f1139"

在postman中进行验证,确实有效可以获取参数,这时,我们只需要搞清楚spm的生成就行了,是可以重复使用还是关联传参生成的

直接用js_frIda的加密Hook,可以定位到关键位置,但是不是每一个APP都是这样

比如贝壳找房,直接用加密的HOOK找不到,是通过关键字搜索定位到相关位置,找到关键点进行rpc

所以通用套路是搜索+加密定位  如果都不好使才使用调用栈分析

小红书就是搜不到shiled,因为加密和请求全部放在so里面,导致没有合适的RPC点

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到