【NB团队】安卓脱壳机的实现原理
前言脱取一二初代壳的时候,可以利用objection通过内存搜索Dex文件的关键特征来进行一个dump,也可以通过hook来进行一个脱取以及通过ida动态下断点的方法。网上经常有编译好的系统镜像,通过刷机可以打造出一个脱壳机,今天主要是针对这些网上的脱壳机子的原理进行一个分析。关键点就是找到最终操作dex文件的函数部分。
正文
这里是找到网上脱壳虚拟机的代码,这里是修改了Dalvik虚拟机的系统函数,进行了重编译,定位dexFileParse函数,可以看到传参是dex数据内容以及长度,因此脱壳机利用pid进程号进行一个命名文件,然后直接写入文件,直接修改了安卓虚拟机的源码,然后编译,就造成了当执行到这里的时候,会直接写入。(如列图2)
另一种脱壳机子的写法也是一样,主要是定位到最后的dex数据操作函数。(如列图3和4)
(列图5)还是一样
(列图6)一样
总结:基本上脱壳机的写法大同小异,所以不管用什么都是一样的,不用纠结于哪个好,能脱壳就行。
http://cdn.u1.huluxia.com/g4/M03/E0/F0/rBAAdmNqJYmAJ4QxAACSEf8kBEw423.pnghttp://cdn.u1.huluxia.com/g4/M03/E0/F0/rBAAdmNqJYmAE41QAACXk8tzypw311.pnghttp://cdn.u1.huluxia.com/g4/M03/E0/F0/rBAAdmNqJYmALMbvAABT7kZ2IbI127.pnghttp://cdn.u1.huluxia.com/g4/M03/E0/F0/rBAAdmNqJYqATC7KAADWcsZsxms659.pnghttp://cdn.u1.huluxia.com/g4/M03/E0/F0/rBAAdmNqJYqAHWZ6AABz05IKsyg509.pnghttp://cdn.u1.huluxia.com/g4/M03/E0/F0/rBAAdmNqJYuAP2PoAACXHSz7oQ8565.png
页:
[1]