我们在之前一篇一篇介绍了如何解析Android中编译之后的所有文件格式,所有的工作都完成了,这里我们就来做个总结,我们为什么要做这些工作:
第一篇:解析so文件格式
这里我们解析so文件,主要是为了修改so中内容,在so文件中添加字符串内容,同时我们可以做到对so的加密工作,从而达到apk的底层加固策略。同时我们了解了so文件的格式之后,对反编译底层的代码也是很有帮助的。
第二篇:解析AndroidManifest.xml文件格式
这里我们解析AndroidManifest.xml文件,主要是为了修复我们在使用apktool进行反编译的时候出现的一些错误信息,同时也了解到apktool反编译的工作原理,当然这里还可以解析Android中的其他资源文件xml。这里我们还可以对apk进行加固,就是通过修改AndroidManifest.xml文件内容,防止apktool这样的工具进行反编译。
注意:这里我们可以使用aapt命令更为方便,具体看文章内容的总结部分。这里就不在赘述了。
第三篇:解析resource.arsc文件格式
这里我们解析resource.arsc文件,主要是为了修复我们在使用apktool进行反编译的时候出现的一些错误信息,同时也了解到apktool反编译的工作原理,同时我们可以减小apk包的大小,主要是通过对resource.arsc中资源文件名进行混淆,减小命名的大小。因为本身Android中是不对资源文件进行混淆工作的。同时我们可以修改resource.arsc文件内容,防止apktool这样的工具进行反编译。
注意:这里我们可以使用aapt命令更为方便,具体看文章内容的总结部分。这里就不在赘述了。
第四篇:解析dex文件格式
这里我们解析dex文件,主要是为了更好的了解Android中的代码结构,同时我们解析完dex之后,就知道代码的结构,调用哪些api,从而判断执行了某些功能,比如判断apk是否调用了系统的api,是否包含广告sdk的api等信息,同时我们知道dex的结构之后,我们就可以对dex进行加密工作,从而做到上层对apk进行加固的工作。
注意:这里可以使用dexdump命令更为方便,具体看文章内容的总结部分,这里就不在赘述了。
总结
所以关于Android中的编译之后的文件解析工作就算告一段落,这些知识也是我们后面的逆向基础,特别是在遇到逆向失败的时候,我们能够通过具体的错误信息来定位问题,当然这些文件格式的了解也对让我们对Android中apk包生成的流程有个大体的了解。
关注微信公众号,最新Android技术实时推送