当前位置:首页>开发>正文

vue压缩后的js可以反编译出来吗 Unity打包好的游戏可以反编译得到源码和资源吗

2023-04-23 18:17:57 互联网 未知 开发

 vue压缩后的js可以反编译出来吗 Unity打包好的游戏可以反编译得到源码和资源吗

vue压缩后的js可以反编译出来吗

jsp是比较偏html的,不怎么关心你的js文件。而vue webpack的组合,出来之后html会很小,里面基本上只是共有css/js和div挂载点。关键在于js文件。所以其实两者的配合是可以比较解耦的。

Unity打包好的游戏可以反编译得到源码和资源吗

在Unity3D中,代码会编译到Assembly-CSharp.dll。基于以上两点,代码的保护有以下两种:
第一种是对代码进行混淆,诸如混淆软件CodeGuard、CryptoObfuscator、de4dot
第二种是对Assembly-CSharp.dll进行加密后,重新对mono进行编译。
Virbox Protector直接进行加壳后,无需手动编译mono,能防止反编译。

如何反编译apk文件

注意:反编译的前提是:开发者没有使用proguard(java代码混淆的工具)。

1.下载反编译工具
需要下载四个工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
dex2jar:将apk中的classes.dex转化成Jar文件。
JD-GUI:反编译工具,可以直接查看Jar包的源代码。
apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:辅助windows批处理工具。
下载地址:
dex2jar:http://code.google.com/p/dex2jar/downloads/list
JD-GUI:http://code.google.com/p/innlab/downloads/lis
apktool:http://code.google.com/p/android-apktool/downloads/list
工具截图:

2.解压缩APK包
apk文件也是一种常见的zip,常用的压缩软件就可轻松地解压apk文件。用压缩软件将apk文件中的文件解压到一个文件夹中,得到APK中的资源包括XML文件和classes.dex文件,classes.dex就是java文件编译再通过dx工具打包而成的。
解压截图:

3.反编译dex文件
解压apk文件后,你会发现res目录的图片没有加密,但java源码编译成了一个classes.dex文件,无法用普通的反编译class文件的方法来处理,dex2jar可以将dex文件转换成普通的jar包。
解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。
DOS行命令如下:dex2jar.bat xxclasses.dex(xx是classes.dex文件所在的路径)。
将在同目录得到普通jar包:classes_dex2jar.jar,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。
编译截图:

生成jar文件的截图如下:

4.反编译jar包
得到jar包后,下载自已喜欢的反编译工具,推荐使用JD-GUI,有比较简单的图形界面,可以反编译单个class文件,也可以反编译jar包,比较方便。
打开压缩文件JD-GUI,运行jd-gui.exe,打开上面生成的jar包,即可看到源代码了。
截图如下:

5.反编译xml文件
打开解压的reslayout目录,有很多xml文件,如果你想看下作者是如何设计界面的,你会很失望,因为你看到的是一大堆乱码!这个时候我们需要用到的是apktool。
具体操作方法:将下载的apktool和apktool-install-windows-r05-ibot两个包解压到同一个文件夹下,这个文件夹有三个文件:aapt.exe,apktool.bat,apktool.jar。把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。以HelloWord.apk为例:
在DOS命令行中输入:apktool d xxHelloWord.apk HelloWord得到HelloWord文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。
截图如下:

生成的文件:

这样就得到了可以得到编译的源码和XML资源。
注意:文件的路径中最好不要出现中文!

vue打包之后的vendor文件会有两个版本的vue

a.执行打包命令:npm run build 
b.打包之后生成的文件夹为根目录下的dist文件:


c.进入dist中


在运行这个index.html之前先说说一些打包配置问题:
在config文件夹下可以看到一个index.js文件,打开其中可以看到有几个属性分别是:
assetsRoot: path.resolve(__dirname, ../dist)//其实这个就是刚才打包后的根目录文件夹dist,所有的文件都会输出到这里

assetsSubDirectory: static  //默认是把css,fonts,images,js输出到这个文件夹下,但是我的改成了 assetsSubDirectory:  所以上图就直接输出到dist下了,即这个参数配置的是静态文件的输出目录

assetsPublicPath: /  这个就是静态文件的引用前缀

在index.html文件中可以看到每个js,css文件的引用路径,在服务器上运行时如果发生找不到文件如下图


大多数情况下都是参数配置问题,可以根据index.html文件下的路径进行测试进行解决,如果不行可以留言一起交流。