我正在使用asm来对java函数进行字节码检测。 有没有办法对jre本机函数做同样的事情?也许是一种用java函数包装本机函数的方法?
我最终的目的是获取所有使用其参数运行的函数的列表。
答案 0 :(得分:3)
由于在类文件中声明了native
方法,因此您可以像任何其他方法一样替换它们。棘手的部分是如何调用原始方法。为此,您可以创建另一个native
方法,该方法将链接到原始native
代码。
这必须在加载时发生,因为大多数JVM之后不支持添加方法。有一项功能可以帮助您将新的帮助程序方法与原始代码本机方法前缀相关联。 documentation of Instrumentation.setNativeMethodPrefix
解释了详细信息。