我看到了一些具有如下代码的Java应用程序:
public class Test {
public Test();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."":()V
4: return
public static void main(java.lang.String[]);
Code:
0: invokestatic #2 // Method printOne:()V
3: invokestatic #2 // Method printOne:()V
6: invokestatic #3 // Method printTwo:()V
9: return
public static void printOne();
Code:
0: getstatic #4 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #5 // String Hello World
5: invokevirtual #6 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
public static void printTwo();
Code:
0: invokestatic #2 // Method printOne:()V
3: invokestatic #2 // Method printOne:()V
6: return
}我想知道这是什么样的混淆,以及哪些工具可以混淆这样的JAR文件。
发布于 2018-09-26 12:55:51
在编译后的java类上运行javap -c,您将得到java字节代码。那不是混淆,而是去编译。IBM的一个很好的资源是Java字节码:理解字节码使您成为更好的程序员。。
发布于 2018-09-26 13:07:34
这就是javac生成的-- java代码的编译器。实际上,很容易将其转换为代码:
public class Test {
// an implicit constructor:
public Test(){
}
public static void testOne(){
System.out.println("Hello World");
}
public static String testTwo(){
testOne();
testOne();
}
}https://stackoverflow.com/questions/52518192
复制相似问题