获取内存中class对象指定方法实现代码。
加密过的文件,加载到内存中,通过classloader 获取class对象(class<?>)。然后通过反射调用。现在需要 获取此类中某方法实现。请问有什么可行方法吗?
使用apache 的 commons-bcel库,Repository.instanceOf方法。没能获取到javaclass类型对象。能解决这个问题,得到javaclass后可以获取指定方法的code.但是返回null.
更新:现在能获取到javaclass对象了。但是getCode是乱码。
麻烦各位有类似经验的解决一下。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
感觉你这个需求不只是一个反射库
bcel
能解决的了,可能需要涉及反编译的知识,网上找的项目Decompiler,希望给你帮助感觉有点多余了。最终方案是 混淆后的class二进制文件读取后,内存中解密,获取byte[] 然后写到文件里,就是解密后的class,再拖到idea里就能看到源码了。