JEB下载:
- https://forum.reverse4you.org/t/leaked-jeb-3-19-1-pro-p/11439
激活JEB:
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
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:
python3 -m pip install frida
这样可以安装frida的python库,以及可执行文件。
将目标手机/模拟器架构的可执行文件复制进去。
adb shell
su
cd /data/local/tmp
ls -al frida-server #查看一下
chmod 777 frida-server #改变权限
./frida-server
记得要进行端口转发:
adb forward tcp:27042 tcp:27042
确认frida安装成功,手机端的agent执行成功:
.\frida-ps -U
若成功,会显示手机端的进程名:
然后执行一段frida的python脚本:
# 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()
然后执行即可。
参考: