这个软件Amarok经常取证的大佬故意已经了如指掌了,一个可以伪装成极简日历的隐藏文件夹和软件的软件,密码绕过可能用处不大,因为他的equals比较简单,就是将你输入的东西计算MD5然后和设定好的密码的MD5进行比较,hook一下equals方法就差不多了,但是这个方法比较邪门,就写个博客记录一下。



设备:雷电九模拟器
工具:frida
我设置了一个三位数的密码,使用四位数的密码来测试。
起因就是hook equals准备筛选MD5的结果进行定位堆栈的时候,菜,漏打了一个双引号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Java.perform(function() { function showStacks() { console.log( Java.use("android.util.Log") .getStackTraceString( Java.use("java.lang.Throwable").$new() ) ); }
var equalsMethod = Java.use("java.lang.String") equalsMethod.equals.overload("java.lang.Object").implementation = function(obj) { console.log("equals called with " + this + " and obj " + obj); if (this == b59c67bf196a4758191e42f76670ceba) { showStacks(); } return this.equals(obj); } });
|
密码错误的状态,注入代码
1
| frida -UF -l .\1.js -o log.txt
|
成功之后,点击解锁

东西也是可以正常看到的


PS:注入之前点一次解锁,否则会一开始就弹出很多报错,我的流程在二次点击解锁之前是没有任何飘红的。然后就是进入之后尽快 exit 退出脚本,否则可能导致软件闪退。东西就图一乐呵,弄起来还挺麻烦的