Android应用程序逆向入门详解

前期准备

安装jdk
安装一个Android模拟器,不推荐使用个人手机进行测试

什么是APK

Android应用程序打包为APK(Android Package)文件,该文件实质上是一个ZIP文件,其中包含编译代码,资源,签名,清单(manifest)以及软件运行所需的所有其他文件。

##基本文件目录介绍

  1. AndroidManifest.xml 应用程序描述文件
  2. /assets/* 应用程序文件
  3. /res/* 应用程序资源文件
  4. /classes.dex java源代码编译后的文件
  5. /lib/* so文件存储目录
  6. /META-INF/ Android证书存放目录,MANIFEST.MF文件列出了apk的所有文件,以及这些文件对应的SHA-1或SHA-256哈希值,CERT.SF文件非常像MANIFEST.MF,但是用RSA密钥签名,CERT.RSA文件包含用来给CERT.SF文件签名的公钥和摘要

静态分析

  1. apktool
  2. jadx https://github.com/skylot/jadx
  3. Dex2Jar and JD-Gui
  4. apkstudio

自动化扫描

  1. Cuckoo-Droid https://github.com/idanr1986/cuckoo-droid 开源扫描框架
  2. Joe Sandbox https://www.joesecurity.org/joe-sandbox-mobile 在线扫描平台
  3. 爱加密,邦邦,360,腾讯 均有自动化扫描。

整理自:http://www.freebuf.com/articles/terminal/169110.html