获取内存中class对象指定方法实现代码。

发布于 2022-09-07 22:52:40 字数 276 浏览 23 评论 0

加密过的文件,加载到内存中,通过classloader 获取class对象(class<?>)。然后通过反射调用。现在需要 获取此类中某方法实现。请问有什么可行方法吗?
使用apache 的 commons-bcel库,Repository.instanceOf方法。没能获取到javaclass类型对象。能解决这个问题,得到javaclass后可以获取指定方法的code.但是返回null.

更新:现在能获取到javaclass对象了。但是getCode是乱码。
麻烦各位有类似经验的解决一下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

罪歌 2022-09-14 22:52:40

感觉你这个需求不只是一个反射库 bcel能解决的了,可能需要涉及反编译的知识,网上找的项目Decompiler,希望给你帮助

猫腻 2022-09-14 22:52:40

感觉有点多余了。最终方案是 混淆后的class二进制文件读取后,内存中解密,获取byte[] 然后写到文件里,就是解密后的class,再拖到idea里就能看到源码了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文