|  |      1ETiV      2018-09-13 00:02:13 +08:00 via iPhone  1 Oracle JVM Specification 4.x 章有讲~ | 
|  |      2innoink      2018-09-13 00:08:27 +08:00 via Android  1 请学习编译原理 | 
|  |      3misaka19000      2018-09-13 00:10:16 +08:00  1 javap | 
|  |      4pythonee OP | 
|  |      5specita      2018-09-13 09:29:56 +08:00 是这样的啊,之前看高手解决问题都是是直接反汇编.... | 
|  |      6hx1997      2018-09-13 10:01:50 +08:00 via Android 反汇编只能看到具体实现的原理,不代表这是语言本身的规定吧… | 
|      7Raymon111111      2018-09-13 10:24:22 +08:00 不是, 这么看东西太慢了.. | 
|  |      8szq8014      2018-09-13 11:01:51 +08:00 我捡我学到皮毛的讲一下: 1. 看指令知道了基于栈和基于寄存器的区别,基于栈的理解起来简单很多。 2. JVM 里面操作数最少是 32 位的,byte (bipush), short (sipush)都需要转一下再操作 3. class 文件里面变量名都是单独存储的,所以可以写一个程序单独用来替换编译后 class 中变量达到代码混淆的目的。(甚至是在执行代码里面添加一些 goto 跳转等指令来让反编译工具懵掉导致反编译失败,如果你非要跟这段代码杠的话用 javap 处理一下再自己人脑运行是可以的,就是费时间和精力) 4. 顺便能了解一下 Class 里面的那些 static{} 以及 constructor 和 {} 里面的代码运行的先后顺序啥的 5. 好像没有了 | 
|      9luozic      2018-09-29 20:37:32 +08:00 via iPhone jvm,LLVM,GCC 搞定了你就是大神。 |