• Apktool(2)——使用前必须知道的apk知识


    这里拿testapp.apk为例,如下图所示,左图为直接解压apk得到的文件,右图为apktool反编译得到的文件(反编译的使用在下一篇重点介绍)

    imageimage

    图1 解压apk和反编译apk得到的文件目录对比

    一.直接解压apk

    将apk文件当做zip文件,可用winrar或好压之类工具直接打开。

    AndroidManifest.xml是每一个应用必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等信息。

    META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。同样在Android平台安装apk时,应用管理器会对按照同样的算法对包里的文件做校验,如果校验结果与META-INF下的内容不一致,系统就不会安装这个apk。这就保证了apk包里的文件不能被随意替换。

    classes.dex是java源码编译生成的java字节码文件。

    res目录存放资源文件。

    resource.arsc是编译后的二进制资源文件。

    二.反编译apk

    smali目录下存放了程序所有反汇编代码。

    res目录则是程序中所有的资源文件,这些目录的子目录和文件与开发时的源码目录结构是一致的。跟直接解压apk得到的文件并不完全相同,该目录还包含了加密的resource.arsc被反编译出来的内容。

    参考文献:

    1.Android篡改apk文件的可行性分析:http://blog.csdn.net/zengyangtech/article/details/5735071

    2.《Android软件安全与逆向分析》,作者:丰生强

  • 相关阅读:
    Jmeter中的变量(三)
    Jmeter组件和属性(二)
    Jmeter配置元件执行顺序
    Fiddler Web Session 列表(1)
    selenium webdriver操作各浏览器
    java1.8环境配置+win10系统
    python函数库及函数标准库
    MySql 数据库基础命令
    Linux 常用命令
    normalize.css
  • 原文地址:https://www.cnblogs.com/mliangchen/p/5084894.html
Copyright © 2020-2023  润新知