设备:雷电模拟器
frida 16.5.2

image-20241216213615163.png (56.91 KB, 下载次数: 0)
下载附件
2025-7-9 16:27 上传

image-20241216203438934.png (149.08 KB, 下载次数: 0)
下载附件
2025-7-9 16:27 上传

image-20241216203629429.png (60.41 KB, 下载次数: 0)
下载附件
2025-7-9 16:27 上传
起因就是纯菜,if判断的时候漏打了一个双引号
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.png (49.15 KB, 下载次数: 0)
下载附件
2025-7-9 16:27 上传

image-20241216213013621.png (328.08 KB, 下载次数: 0)
下载附件
2025-7-9 16:27 上传
隐藏的软件也是可以看到的,也可以正常操作

image-20241216213106621.png (324.12 KB, 下载次数: 0)
下载附件
2025-7-9 16:28 上传

image-20241216213121111.png (353.77 KB, 下载次数: 0)
下载附件
2025-7-9 16:28 上传
之后又测试了几次,最好在注入之前点一下解锁,否则会有很多equals判断。然后就是一旦进入要快速执行exit退出注入,否则会闪退。操作起来还是比较麻烦的,图一乐呵,记录一下偶然发现。
写都写了,把正常hook也写一下
hook equals方法,根据输出的对比值,初步可以判断是对比的哈希值,计算自己输入的密码的MD5,确认是正确的,那就判断查找堆栈
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-20241216214324734.png (58.46 KB, 下载次数: 0)
下载附件
2025-7-9 16:28 上传
HashUtil.calculateHash(this.etPassword.getText().toString()) 这一串是处理自己输出的内容的
amarokPassword 就跟密码有关了

image-20241217081612576.png (24.4 KB, 下载次数: 0)
下载附件
2025-7-9 16:28 上传
alculateHash 这个方法就是计算MD5的,将输入的字符串计算MD5和 amarokPassword 进行比较

image-20241217081808159.png (27.93 KB, 下载次数: 0)
下载附件
2025-7-9 16:28 上传
查看Java层代码发现密码的MD5是存放在文件中,找到试试cmd5爆破一下就差不多了。

image-20241217083143417.png (246.11 KB, 下载次数: 0)
下载附件
2025-7-9 16:28 上传
SharedPreferences 的数据存储位置一般位于 /data/data/包名/shared_prefs/

image-20241217082929826.png (109.77 KB, 下载次数: 0)
下载附件
2025-7-9 16:28 上传
Amarok的GitHub链接:https://github.com/deltazefiro/Amarok-Hider