app逆向分析案例-95分

先把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点

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
某flutter-app逆向分析是指对于一个使用flutter框架开发的应用进行逆向工程析。逆向工程是通过析应用的代码、二进制文件等来了解其内部实现细节。 首先,我们需要获取该应用的安装包文件(APK或IPA文件),然后进行解包操作,将其转换为可读取的文件目录结构。 接下来,我们可以使用一些工具来提取应用的资源文件、代码文件等。对于flutter-app来说,可以提取出dart文件,这是flutter的主要代码文件,其中包含了应用的逻辑实现。 通过阅读dart文件,我们可以了解应用的代码结构、数据模型、界面设计等。可以析应用的逻辑实现方法,包括各种函数、类、方法的调用关系。 同时,还可以通过析相关配置文件、资源文件等来了解应用的各种设置、资源加载方式等。 在逆向过程中,还可以使用一些调试工具来进一步了解应用的运行机制。例如,hook工具可以拦截应用的函数调用,并捕获输入输出数据,用于进一步析。 逆向分析的目的可以有很多,比如了解应用的工作原理、发现潜在的漏洞或安全问题、提供参考用于自己的开发等。 需要注意的是,逆向分析需要遵守法律规定。未经授权的逆向分析可能侵犯他人的知识产权,涉及到隐私等方面的问题。因此,在进行逆向分析之前,应该了解并遵守当地相关法律法规,避免产生法律纠纷。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值