java反编译能拿到源码吗,用反编译程序能得到程序的原代码吗

1,用反编译程序能得到程序的原代码吗基本上像JAVA反编译是可以得到一部份源码 , 但是不全的,没有什么程序是可以直接把软件反编译到源码的 。如果存在的话,那么有时候破解软件就不会只有旧版,新版很多时候都要很久才有破解 , 有时候根本没得破解 。。【java反编译能拿到源码吗,用反编译程序能得到程序的原代码吗】
2,是不是所有的程序都可以反编译得到原代码Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度 。第一种情况:无混淆无加密无加壳 。直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下 。第二种情况:混淆 。通常是利用Proguard做的防护 。因为是对jar做的不可逆混淆(除非有mapping),因此不能还原成原来的代码 。但是代码结构 , 代码逻辑一致,只要花长时间对代码进行梳理一样可找准核心代码,解密方法跟第一种一致 。第三种情况:加密 。这里以DexGuard为例 。对于这种代码加密的方法,在程序运行中必定会进行解密 , 只要抽出它解密的逻辑便可 。PS:我自己做过DexGuard的解密,如果用Dex2jar反编译看的话逻辑是不对的 , 一定要从Smali代码看 。后来发现网上已经有人做了 。解密的脚本:A look inside Dexguard第四种情况:加壳 。这种情况跟第三种类似 。无论你怎么加壳,运行的时候必定是Dalvik可识别的Odex代码,建议直接在内存里dump出来 。这里推荐Xpose的ZjDroid 。基本上像java反编译是可以得到一部份源码,但是不全的,没有什么程序是可以直接把软件反编译到源码的 。如果存在的话,那么有时候破解软件就不会只有旧版,新版很多时候都要很久才有破解,有时候根本没得破解 。。

    推荐阅读