繁体   English   中英

从URLClassLoader将类保存到文件? 并反编译?

[英]Save class to file from URLClassLoader? and decompile it?

可以将类从URLClassLoader保存到普通的file.class吗? 然后反编译呢?

我尝试将它保存为对象使用

        Class<?> clazz = classLoader.loadClass("foo.Bar");
        FileOutputStream sf = new FileOutputStream(f);
        ObjectOutputStream s = new ObjectOutputStream(sf);
        s.writeObject(clazz);
        s.close();

不行不通。

那么...如何反编译呢? 我需要得到像jd-gui的结果,但是使用来自URLClassLoader的类。

您需要将类名(例如"foo.Bar" )映射到资源路径名(例如"/foo/Bar.class" ),然后使用classLoader.getResourceAsStream打开流以读取字节码文件。

理论上,这可以被提供给反编译器...假设您有一个可以从InputStream读取的反编译器。


您当前正在执行的操作失败,因为无法序列化Class对象。

执行简单的HTTP下载而不是URLClassLoader,以将类放入文件中。 然后反编译。

(将对象写入ObjectOutputStream只会将数据保存在对象的实例中,即使该对象已实现Serializable也是如此。不是您在这里寻找的。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM