!"!"#$$#!!%下午$"&$'()*+,-*逆向之.+-*(脚本中,/0+1,(*带的参数
码:$#2344567##859:0-;-)9<<9=,8#6>??@-ABCADEFGH"FAI2CJBBK8-*B!!'L'MN'O.E00OL0!"0"M.."0@!'*=2@P("$OK4,Q0)B$O$$EM$POK1()JBA3?RFS+*
androidfridaove rl oa d
该篇文章主要介绍frida脚本hook android app的对象方法以及当方法重载时如何使
用。
一、hook android app的对象方法
1. 创建一个类对象(以文中提供的测试app为例,具体测试app代码即frida脚本,可在公
众号回复“overload测试代码”进行下载)
2. 调用对象方法
3. 如果我们调用的对象方法有其他重载方法时,则需要通过overload指定具体参数类
型,否则会报如下错误。当然错误中也提供了具体的参数类型,可通过错误信息提取我
们需要的参数类型进行hook即可
1
2
//
hook
var parametersTestClass = Java.use("com.example.parameterstest.ParametersTest"
//
parametersTestClass.multiply.implementation = function(val1,val2){
//
hook
var result = this.multiply(val1,val2);
//
hook
return result;
}
{'type': 'error', 'description': "Error: multiply(): has more than one overload, use .overload(<signature>) to choose from: .overload('long', 'long') .overload('short', 'short') .overload('int', 'int') .overload('byte', 'byte') .overload('float', 'float') .overload('double', 'double')"
-factory.js:549) at ve (frida/node_modules/frida-java-bridge/lib/class-factory.js:538) at frida/node_modules/frida-java-bridge/lib/class-factory.js:911 at /script1.js:11 at frida/node_modules/frida-java-bridge/lib/vm.js:11 at frida/node_modules/frida-java-bridge/index.js:392 at frida/node_modules/frida-java-bridge/index.js:377 at we (frida/node_modules/frida-java-bridge/lib/class-factory.js:598) at frida/node_modules/frida-java-bridge/lib/class-factory.js:581"
评论0