我在逆向过程中找不到一个ccmd5执行之后的结果的调用记录,就好像这个ccmd5执行的结果没有使用一样。
所以我想知道md5后的内存地址是否在其他地方被调用过。首先我想的是用xcode来监控内存地址的读写调用,用的这个:watchpoint set expression -w read – 0x16b8e9b5f
这样搞会报错的,所以我又用了frida脚本测试,不过这样搞也不行。
const baseAddr = Module.findBaseAddress('DUApp'); // 找到基地址
Interceptor.attach(baseAddr.add(0x9954B10), {
onEnter: function (args) {
// 获取x0寄存器的值
var x0Value = this.context.x0;
console.log('x0 value: ' + x0Value);
console.log(hexdump(x0Value))
// if (x0Value.isNull() || !Memory.readable(x0Value)) {
// console.log("[-] Invalid or unreadable address: " + x0Value);
// return;
// }
// console.log(this.context.x0.toInt32() - baseAddr.toInt32())
// 监控x0地址的读写
MemoryAccessMonitor.enable({base: x0Value, size: 12}, {
onAccess: function (details) {
console.log("[*] Memory Access Detected!");
console.log(" Address: " + details.address);
console.log(" Operation: " + details.operation); // 'read' or 'write'
console.log(" From: " + details.from);
if (details.operation === 'write') {
console.log(" New Value: " + Memory.readS32(details.address));
}
}
});
}
});
报错信息
求教frida怎么监控内存地址的读写记录