frida的问题请教下小肩膀老师
本帖最后由 奥数大师 于 2020-3-24 22:39 编辑看完frida的第11,12课,尝试写了下枚举所有类然后hook类的所有方法,结果发现报错
运行,前面的打印都没问题,后面无论点APP的哪个按钮都会报下面红色的错误
这是代码
function hookTmp() {
Java.perform(function () {
var classes = Java.enumerateLoadedClassesSync();
for (var i = 0; i < classes.length; i++) {
if (classes.indexOf("com.xiaojianbang.app") != -1) {
var tmpClass = Java.use(classes);
var methods = tmpClass.class.getDeclaredMethods();
for (var j = 0; j < methods.length; j++) {
var tmpMethodName = methods.getName();
console.log(classes, tmpMethodName);
//到这里打印都是没问题的
for (var k = 0; k < tmpClass.overloads.length; k++) {
tmpClass.overloads.implementation = function () {
for (var p = 0; p < arguments.length; p++) {
//console.log(p,arguments);
}
return this.apply(this, arguments);//应该是这句return报错了
}
}
}
}
}
});
}
请教下这是哪里有什么问题吗
function hookAll(tmpClass, tmpMethodName){
for (var k = 0; k < tmpClass.overloads.length; k++) {
tmpClass.overloads.implementation = function () {
for (var p = 0; p < arguments.length; p++) {}
console.log(tmpMethodName);
console.log(this);
return this.apply(this, arguments);
}
}
}
Java.perform(function () {
var classes = Java.enumerateLoadedClassesSync();
for (var i = 0; i < classes.length; i++) {
if (classes.indexOf("com.xiaojianbang.app") != -1) {
var tmpClass = Java.use(classes);
var methods = tmpClass.class.getDeclaredMethods();
for (var j = 0; j < methods.length; j++) {
var tmpMethodName = methods.getName();
hookAll(tmpClass, tmpMethodName);
}
}
}
}); 代码改了下 变量被覆盖了 所有undefined
页:
[1]