记一次某银行app的逆向分析,过frida检测脱壳,登录加密参数分析
作者声明:文章仅供学习交流与参考!严禁用于任何商业与非法用途!否则由此产生的一切后果均与作者无关!如有侵权,请联系作者本人进行删除!
前言:本人也是android逆向新手,本文主要记录和回顾整理一些分析过程,因此并不能做到每处细节详解,主要为同样入门学习的朋友提供些思路和案例,高手大佬也还请多指教。
过frida反调试#
首先写个测试脚本然后frida spwan方式注入看看是否存在注入检测
可以看到app启动后弹出弹窗但是进程并没有杀死,应该是存在frida检测。
之前学习frida检测的案例时候,大多都是杀掉进程,这里有些不一样。
也尝试过通过pthread_create、clone等寻找检测点,但是没有成功待以后技术有所提升或有相关思路在进行分析吧。目前还是换个思路找弹窗的触发时机并hook拦截,经验证该方法可行,因为不杀掉进程不影响后续分析。
可以看到成功拦截弹窗了,hook_dialog.js脚本如下:
抓包#
接下来就是抓包,有抓包检测。如图
这里需要绕过SSL pinning,成功后抓到包了。
脱壳#
然后打开jadx静态分析下,搜索PostData,因为加固的原因应该是搜索不到有用的信息的。
需要脱壳处理,首先整体脱下,我是通过hook ClassLinker:DefineClass。hook_define_class.js脚本
一共20多个dex文件,然后mt修复下dex
再次jadx打开,基本就能看到包结构了,再搜索下参数PostData。
但是经过测试登录时候并没有走这里,而是makeRequestParam,这里函数应该是被抽取了。
后来又通过主动调用尝试脱下壳得到如下结果
最终可以自己据此动态分析或利用jadx-ai-mcp分析,找到加密逻辑。我这里最终复现看是标准SM4-CBC然后标准base64,并且是在java层的。
结尾:总的来说有很多待提升的地方,要学会波浪式前进多实战和复盘,此次分析也参考了看雪的大佬文章https://bbs.kanxue.com/thread-290187-5.htm
