javascript - Frida +Python+Javascript 找不到类时“java.use(“XXX”)”怎么办?
问题描述
我在 python 中(在 android + frida 环境中)使用以下 javascrip 来挂钩一个方法。
jscode ="""
Java.perform(function () {
console.log("start hook...");
var d =java.use("myapp.okhttp3.internal.f.a");
d.verify.implementation =function(p1, p2){
console.log("ssl unpinning for");
return true;
}
});
"""
这是python文件:
import sys
import os
import threading
import subprocess
import frida
import time
jscode ="""
Java.perform(function () {
console.log("start hook...");
var d =java.use("myapp.okhttp3.internal.f.a");
d.verify.implementation =function(p1, p2){
console.log("ssl unpinning for");
return true;
}
});
"""
os.system('adb forward tcp:27042 tcp:27042')
os.system('adb forward tcp:27043 tcp:27043')
APP_NAME = 'myapp'
device = frida.get_usb_device(1)
pid = device.spawn([APP_NAME])
device.resume(pid)
time.sleep(1)
process = device.attach(pid)
print('success')
script = process.create_script(jscode)
print(pid)
script.load()
print('script loaded')
input()
我的问题是:var d =java.use("myapp.okhttp3.internal.f.a")
找不到类时是否抛出“类未找到异常”,如何查看此异常?我可以使用console.log(java.use("myapp.okhttp3.internal.fa")之类的代码来记录“类未找到异常”吗?
解决方案
您可以在 js 中使用环绕 try-catch 并在 python 中捕获@句柄
try {
var d =...
} catch (e) {
send(JSON.stringify(e));
}
在 python 端
def on_message(msg, _data):
# check if msg has error and handle
script.on('message', on_message)
推荐阅读
- python - 在 django admin 的保存模型中构造条件
- python - 如何在火花数据帧中进行采样
- maven - JAR 名称没有版本时如何定义依赖关系?
- python - setUpNet DNN 模块未使用 CUDA 后端构建;切换到 CPU
- r - 识别 R 数据表中的缺失值
- valgrind - 在后台运行 Valgrind
- c# - 服务器如何识别从客户端获得的类型?.net c#
- javascript - IOREDIS - 尝试从 Redis 迁移到 KeyDB 时出错
- java - Maven Artifactory 跳过 ssl 认证
- python - 镜像 Seaborn 热图的色标,包括颜色和标签