【求助】某鱼app逆向过程中,在进行hook的时候,报错'mtopsdk' is not defined"
使用frida进行hook某鱼的mtopsdk.xstate.XState.getValue(String instanceId, String key) 方法,想获取到instanceId和key的值,但pycharm中运行后,报如下错误:{'type': 'error', 'description': "ReferenceError: 'mtopsdk' is not defined", 'stack': "ReferenceError: 'mtopsdk' is not defined\n at <anonymous> (/script1.js:7)\n at <anonymous> (frida/node_modules/frida-java-bridge/lib/vm.js:11)\n at _performPendingVmOps (frida/node_modules/frida-java-bridge/index.js:238)\n at <anonymous> (frida/node_modules/frida-java-bridge/index.js:213)\n at <anonymous> (frida/node_modules/frida-java-bridge/lib/vm.js:11)\n at _performPendingVmOpsWhenReady (frida/node_modules/frida-java-bridge/index.js:232)\n at perform (frida/node_modules/frida-java-bridge/index.js:192)\n at <eval> (/script1.js:28)", 'fileName': '/script1.js', 'lineNumber': 7, 'columnNumber': 1} None
某鱼app已经在手机上运行起来了,并且可以在pycharm中查到手机上运行的所有进程。hook其他方法没问题,就这个方法报错。有没有大佬遇到过,烦请指点指点。感谢~~ 提示'mtopsdk' is not defined"
这个mtopsdk没找到,你是启动挂起吗?可能还没走到这个方法,报错也正常 正己 发表于 2022-2-1 12:14
你代码怎么写的?发上来看看
代码如下,我hook其他方法的时候,也就是将JavaScript脚本里面的包、类、方法修改了一下,其他都没变。
=======================================================================
import frida
import sys
rdev = frida.get_remote_device()
session = rdev.attach("闲鱼")
# 目标:指定替换是那个包中的方法名
# - 包名称:mtopsdk.xstate
# - 类名称:XState
# - 方法名:getValue
# - 参数1:String instanceId,
# - 参数2:String key
# - 参数3:
# - 参数4:
# - 参数5:
# - 参数6:
scr = """
Java.perform(function () {
// 导入类
var XState = Java.use("mtopsdk.xstate.XState");
// 找到类中的方法进行hook
mtopsdk.xstate.XState.getValue.implementation = function(instanceId,key){
console.log("instanceId=>", instanceId)
console.log("key=>", key)
console.log("====================================")
var res = this.getValue(instanceId,key);
console.log(res);
return res;
}
});
"""
script = session.create_script(scr)
def on_message(message, data):
print(message, data)
script.on("message", on_message)
script.load()
sys.stdin.read()
======================================================================= @正己 大佬的教程说过,Python调用有时候会出各种各样乱七八糟的问题,
可以尝试直接使用命令行调用js 正己 发表于 2022-2-1 10:56
提示'mtopsdk' is not defined"
这个mtopsdk没找到,你是启动挂起吗?可能还没走到这个方法,报错也正常
见附件图片。在hook getMultiAccountSid()方法是可以打印出结果的,按道理说,应该会去调用XState.getValue()方法。 但是,单独hook XState.getValue()方法,就报'mtopsdk' is not defined" 错误。 creativet 发表于 2022-2-1 11:40
见附件图片。在hook getMultiAccountSid()方法是可以打印出结果的,按道理说,应该会去调用XState.getVal ...
你代码怎么写的?发上来看看 creativet 发表于 2022-2-1 12:41
代码如下,我hook其他方法的时候,也就是将JavaScript脚本里面的包、类、方法修改了一下,其他都没变。
...
你js代码写错了,这pycharm不会提醒你,如果是控制台运行js就会报错,并且告诉你原因
Java.perform(function () {
// 导入类
var XState = Java.use("mtopsdk.xstate.XState");
// 找到类中的方法进行hook,这里有传参要用overload传进去
XState.getValue.overload('java.lang.String','java.lang.String').implementation = function(instanceId,key){
console.log("instanceId=>", instanceId)
console.log("key=>", key)
console.log("====================================")
var res = this.getValue(instanceId,key);
console.log(res);
return res;
} 正己 发表于 2022-2-1 13:35
你js代码写错了,这pycharm不会提醒你,如果是控制台运行js就会报错,并且告诉你原因
谢谢大佬回复。 我增加了overload,还是会报错:wwqwq。 hookgetMultiAccountSid()方法 可以正常得到想要的值。见附件截图。
creativet 发表于 2022-2-1 18:00
谢谢大佬回复。 我增加了overload,还是会报错。 hookgetMultiAccountSid()方法 可以正常得到想 ...
你代码写的有问题,仔细看我发的 本帖最后由 creativet 于 2022-2-1 23:46 编辑
正己 发表于 2022-2-1 22:40
你代码写的有问题,仔细看我发的
嗯嗯。已经发现了。我改成把js那部分的代码,专门写在一个js文件里,这样有啥错误编辑器也能及时发现,用三引号引起来了不容易发现错误。现在可以hook出值了。谢谢~
页:
[1]
2