什么是壳?
自然界中的壳,保护内部组织
1. 计算机软件中的壳是什么?
在一些计算机软件里,有一段专门负责保护软件不被非法修改或者反编译的程序,一般会先于程序运行,拿到控制权,保护软件。
原始代码在加壳的过程中,可能被压缩、加密、隐藏等等,根据加壳的过程,一般有加密壳、压缩壳、伪装壳、多层壳。所有的意图都是隐藏程序正在的代码和执行入口。
在程序中,给一些软件加上这种壳,被称为 加固。
例如:
Android studio本身将源代码打包成apk就已经是一种压缩了,而我们用的一些普通的 d2xjar , dx.bat 都是在对我们的程序进行互相转化。
-
java 执行的 jar
-
android 执行 dex
其实可以转换的:
-
jar -> dx.bat -> dex
-
dex -> d2jar -> jar
2. 那么加固又是什么,可以做哪些事?
以腾讯云加固为例子,网址:https://cloud.tencent.com/product/ms(加固文档:https://cloud.tencent.com/document/product/283/13769)
加固可以干这么多事情:
所以:对APP进行加固,可以有效防止App被破解、盗版、篡改等。
2.脱壳干什么?
简单的说就是将各种加密形式进行破解以及还原我们的源码,方便去逆向分析。
不同的加固形式对应的 脱壳 方法不同。
如一个简单的流程,可以看一下这个博客:https://blog.csdn.net/hgfujffg/article/details/84000882