如何从类

时间:2015-10-01 19:54:32

标签: java class

我正在使用这个非常棒的小代码,我需要一些帮助来解决它。

基本上它有一个大字节数组,用于加载一个新类:

    Class class = class1.loadClass(name, byteArray);
    class.getMethod("run", new Class[0]).invoke(null, new Object[0]);

这是loadClass:

    public Class<?> loadClass(String paramString, byte[] paramArrayOfByte) throws ClassNotFoundException
        return defineClass(paramString, paramArrayOfByte, 0, paramArrayOfByte.length);

然后它会调用&#39;运行&#39;在这堂课上。现在,除了这是隐藏课程的绝佳方式之外,我该如何看待这门课程呢?我在&#39; class&#39;中有实际的课程,但我没有比属性及其值和函数名称更进一步。我想知道&#39;运行&#39;实际上。有什么方法可以以某种方式打印此方法的内容或其他什么?或者我可以在可读的东西中转换包含类的字节数组?

谢谢!

2 个答案:

答案 0 :(得分:2)

你问的是如何将类文件读成一个有意义的东西。所以基本上你要求它像JD-Decompiler一样被反编译。同样,.class文件由类加载器加载到内存中。 我建议您转储.class文件并使用ByteArrayOutputStream和ObjectOutputStream将其写入文件。然后使用任何反编译软件对其进行反编译。

请注意,此过程不保证反编译源文件的准确性。

答案 1 :(得分:2)

如果您在byteArray文件中编写此.class并使用Java Decompiler工具(如jd-gui)打开它会怎样?