0%

Amarok“极简日历”密码绕过

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

image-20241216213615163image-20241216203438934image-20241216203629429

设备:雷电九模拟器

工具: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()
)
);
}

// hook equals 方法
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);
}
});
image-20241216212903362

密码错误的状态,注入代码

1
frida -UF -l .\1.js -o log.txt

成功之后,点击解锁

image-20241216213013621

东西也是可以正常看到的

image-20241216213106621

image-20241216213121111

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