编译后的代码可以恢复成源代码吗
㈠ 是不是所有的程序都可以反编译得到原代码
Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度。
第一种情况:无混淆无加密无加壳。
直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下。
第二种情况:混淆。
通常是利用Proguard做的防护。因为是对jar做的不可逆混淆(除非有mapping),因此不能还原成原来的代码。但是代码结构,代码逻辑一致,只要花长时间对代码进行梳理一样可找准核心代码,解密方法跟第一种一致。
第三种情况:加密。
这里以DexGuard为例。对于这种代码加密的方法,在程序运行中必定会进行解密,只要抽出它解密的逻辑便可。PS:我自己做过DexGuard的解密,如果用Dex2jar反编译看的话逻辑是不对的,一定要从Smali代码看。后来发现网上已经有人做了。
解密的脚本:A look inside Dexguard
第四种情况:加壳。
这种情况跟第三种类似。无论你怎么加壳,运行的时候必定是Dalvik可识别的Odex代码,建议直接在内存里mp出来。这里推荐Xpose的ZjDroid。
㈡ complie之后的文件怎么恢复成原来的源代码的样子
不行的吧
㈢ 请问被编译后的易语言程序还能重新搞回未编译的样子吗
一般情况下是不可能完全和原先一样的,只能用反编译器看原先的源码
㈣ 用C++编出的exe文件能否被还原成cpp代码
可以但是相当不现实。与汇编的精简不同,C语言的编译链接会把相当多冗余的算法带到Obj和Exe里去(一来为了兼容不同硬件环境把各种算法都考虑到,二来因为其效率确实远不如汇编)。一个几十KB的Exe可能反编译出一本字典那么多的源程序。如果你不嫌费事可以上网找C语言的decompile软件试试。
㈤ 已知一个程序是C++编写的,有没有办法把她恢复成C++源代码
C/C++程序(.c/.cpp),首先会进行预编译,编译后还是C/C++程序(.i)。这个结果会再进行编译,结果会是汇编代码文件(.s)。汇编代码文件再进行汇编,结果会是可重定位的目标文件(.obj)。可重定位的目标文件再进行链接。结果就会产生可执行的目标文件,也就是通常win32平台上的.exe文件。
对于.exe或者.obj文件,我们可以通过反编译工具(如Unix下的objmp)把它们还原成汇编代码文件。但是再要往上一步,从编译原理的角度来说,就很困难了。目前这样的工具我还没听说过。
㈥ exe反编译后的获得的源码能复原为exe吗
看中间语言。然后用C#写个出来呗
㈦ 已打包的C#项目如何还原成代码
如果你说的项目是sln的话,那么他就是源代码,可以更改
如果是别人编译后的exe或dll,去下一个reflector吧,把源代码复制出来,再自己改吧。
㈧ 怎么把编译后的文件改成源码
对不同的编译器有各种反编译软件,但是不能完全还原,很多地方还读不通,所以想知道源码是不可能滴!
㈨ 有可以将exe文件还原成C++文件或VF等源代码的软件吗
这叫反编译。用vc写的程序编译后的执行文件为.exe,反编译后还原出vc源码,用vf写的程序编译后的执行文件为.exe,反编译后还原出vf源码,不存在“从exe文件里还原出VC或VF的源代码”的“或”的情况。
反编译vf的软件叫unfox,网上有down,现在的版本是3.几