如果壳程序没有frida检测的话,其实对我们逆向HOOK的影响不算是特别的大。这里随便输入一个Hello frida脚本,判断存在frida检测,还得过一下frida的反调试….
function hook_open() {
var pth = Module.findExportByName("libc.so", "open");
Interceptor.attach(ptr(pth), {
onEnter: function (args) {
this.filename = args[0];
console.log("", this.filename.readCString());
}, onLeave: function (retval) {
return retval;
}
})
}
setImmediate(hook_open);
function redirect(src, dest) {
var openPtr = Module.getExportByName('libc.so', 'open');
var open = new NativeFunction(openPtr, 'int', ['pointer', 'int']);
Interceptor.replace(openPtr, new NativeCallback((pathPtr, flags) => {
var path = pathPtr.readUtf8String();
var originPath = Memory.allocUtf8String(src);
var currentPath = Memory.allocUtf8String(dest);
var fd = -1;
if (path.indexOf("task") > -1) {
var targetPath = Memory.allocUtf8String(dest);
fd = open(targetPath, flags);
}
else {
// console.log('open file "' + path + '"');
fd = open(pathPtr, flags);
}
return fd;
}, 'int', ['pointer', 'int']));
}
function main() {
//hook_open();
redirect("task", "/sdcard/status");
}
setImmediate(main);
function main() {
Java.perform(function () {
var CryptoHttpManager = Java.use('com.rytong.emp.net.CryptoHttpManager');
var StringClass = Java.use('java.lang.String');
CryptoHttpManager.handleRequestBody.implementation = function () {
console.log('\nURL ===> ', arguments[0]);
console.log('\nData ===> ', StringClass.$new(arguments[1]));
return this.handleRequestBody(arguments[0], arguments[1]);
}
})
}
setImmediate(main);
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论