我正在阅读这个Frida 发布页面,并注意到它做了以下参考:
除了用 C 编写整个代理之外,还可以继续构建一个本地库,并使用 Module.load() 加载它。这有效,但意味着必须为每个架构编译它,部署到目标等。
CModule 特性非常适合以 Frida 为中心的操作,但将通用共享对象加载到目标进程中会很好。CModule 似乎是为 Stalker 和相关代码中的性能优化而编写的。任何尝试做一些“额外”的事情都会导致编译时(在运行时,由嵌入式 TinyCC)错误,例如:
Compilation failed: In file included from module.c:3:\nmodule.c:3: error: include file 'dlfcn.h' not found"
^ 尝试编写一个 CModule 存根,从磁盘 dlopen'd 共享对象。
但是 Ole 在上面链接中的评论暗示这是可能的,尽管除了NodeJS C++ Addons功能之外,我找不到任何参考资料,这些功能当然是特定于 NodeJS 的。
tl;dr 如何加载一个通用对象,使其所有导出的函数都可以从 Javascript 调用?这可能吗?