前言
看了这么久的书,总算是看完了,总归是要写点东西,记录下。这里基本过程还是参考大黄书上的内容,主要是自己动手。
测试
首先我们拿到一个apk程序,肯定要先查看一些基本的信息。包名,主活动名
所以将apk拖入AndroidKiller,提示爱加密加壳。只有两个类
可以通过反编译源代码进行查看,但都看出什么有用的信息。这种apk不脱壳是完全无法下手的。
壳的几种方式
加壳之后的源apk通常可以存放在三个位置。
一、assets目录下,由于该目录不参与编译,仅仅是打包,因此很多apk加壳会选择将原apk放在这里。
二、lib目录下,将源apk放在so文件中,在运行时进行解密
三、放在dex文件的结尾,这种apk往往是反编译不出来的,因为dex的格式已经被破坏,文件头的某些字段别修改(如长度,标志位,校验位)
脱壳
在libdvm.so
的_Z21dvmDexFileOpenPartialPKviPP6DvmDex
函数下断点,这是加载dex的函数。
但是我在刚开始调试的时候,发现程序还未运行到这里