JEB下载:
- https://forum.reverse4you.org/t/leaked-jeb-3-19-1-pro-p/11439
激活JEB:
1 2 3 4 | jeb_wincon.bat/jeb_macos.sh/jeb_linux.sh Enter decryption key: ilbtcdnwiuypbzeo java -jar C:\Users\Administrator\Downloads\JEB\jeb3_keygen_0.2.0b\jeb3_keygen_0.2.0b.jar 61641164873316763 |
JEB的python脚本,将光标停在某方法处,然后JEB执行脚本,即可对该方法进行hook
文件-》脚本-》执行脚本

代码需要稍微修改一下:
https://github.com/LeadroyaL/JebScript/blob/master/FastFrida.py
1 2 3 4 5 6 7 8 9 10 11 | FMT = """Java.use("{class_name}") .{method_name} .overload({param_list}) .implementation = function (args) {{ // for javascript, 参数数根据情况进行调整 console.log("before hooked {method_sig}"); var ret = this.{method_name}(args); console.log(args); console.log(ret); console.log("after hooked {method_sig}"); return ret; }}""" |
然后将代码复制出来,放到一个hook-frida.py文件中待执行。
安装frida:
1 | python3 -m pip install frida |
这样可以安装frida的python库,以及可执行文件。
将目标手机/模拟器架构的可执行文件复制进去。
1 2 3 4 5 6 7 8 9 10 11 | adb shell su cd /data/local/tmp ls -al frida-server #查看一下 chmod 777 frida-server #改变权限 ./frida-server |
记得要进行端口转发:
1 | adb forward tcp:27042 tcp:27042 |
确认frida安装成功,手机端的agent执行成功:
1 | .\frida-ps -U |
若成功,会显示手机端的进程名:

然后执行一段frida的python脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # hook-frida.py import frida, sys def on_message(message, data): if message['type'] == 'send': print("[*] {0}".format(message['payload'])) else: print(message) jscode = """Java.perform(function(args1, args2){ var vHttpUriBuilder = Java.use("com.cqq.example.HttpTask$HttpUriBuilder") .getSign .overload() .implementation = function () { // for javascript var ret = this.getSign(); console.log(ret) console.log(args1) console.log(args2) return ret; } }); # get_remote_devicen拿到session对象,然后attach包名 process = frida.get_remote_device().attach('com.example.cqq') script = process.create_script(jscode) script.on('message', on_message) print('[*] Running script') script.load() sys.stdin.read() |
然后执行即可。
参考:
- Android逆向之旅—Hook神器家族的Frida工具使用详解
- frida复杂类型参数打印、参数转换、调用栈打印
- window上搭建frida环境