【发布时间】:2021-07-05 23:14:28
【问题描述】:
我有一个带有一些 rpc.exports 的 js 文件
rpc.exports = {
callfunctionsecret: callSecretFun,
callfunctionsomethingelse: callSomethingElse,
}
我想在 python 中列出所有这些函数,但我找不到方法
device = frida.get_usb_device()
pid = device.spawn([package_name])
device.resume(pid)
time.sleep(1)
session = device.attach(pid)
with open(sys.argv[1]) as jsfile:
script = session.create_script(jsfile.read())
print(dir(script.exports))
# output
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_script']
# output doesn't contain "callfunctionsecret" and "callfunctionsomethingelse"
有没有办法在某种列表中获取函数名称?
# e.g.
['callfunctionsecret','callfunctionsomethingelse']
到目前为止,我只到了可以访问函数对象的地步
print(script.exports.__getattrs__(callfunctionsecret))
但这要求我们首先知道函数名,这违背了列出所有函数名的目的
【问题讨论】:
标签: javascript python python-3.x rpc frida