gpt4 book ai didi

bytecode-manipulation - 字节码检测 - 实现 native 或 Java 代理?

转载 作者:行者123 更新时间:2023-12-04 08:38:56 28 4
gpt4 key购买 nike

如果我想使用 实现分析器字节码检测 , 我应该写一个 本地代理使用 JVMTI 或者我应该写一个 java代理使用 java.lang.instrument包裹?

如果我想使用像 ASM 这样的库- 如果你想创建一个严肃的分析器,这似乎是强制性的 - 我必须使用一个 java 代理。这让我很困惑,因为我认为本地代理可以做 Java 代理可以做的所有事情,甚至更多。但对我来说,编写 Java 代理似乎更容易。

有替代品吗?无论如何应该结合使用Java代理和 native 代理吗?

最佳答案

几乎每个人都编写了一个 Java 代理(使用 ASM 或 BCEL),因为他们不想从头开始编写 C/C++ 字节码检测器,因为没有公开可用的。

您将无法做的是检测和分析/监控原始 JVM,并且访问 native 函数需要 JNI 调用。还有几个 JVMTI 调用可能对您不可用(如果没有记错的话)。

几年前我用 C 编写了自己的仪器,我正在编写一个新的工具,我希望开源(取决于我的邪恶霸主:-))

半路怎么样,一个单独的预启动 JVM,你的本地代理将字节码发送到它。在那个 JVM 中,您轻松编写基于 ASM 的检测器完成了艰苦的工作,并将生成的字节码通过网络发送回 native 代理。是的,它似乎有点过于复杂,但编写自己的 BCI 库更容易。

关于bytecode-manipulation - 字节码检测 - 实现 native 或 Java 代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7321894/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com