android app 渗透测试,android app渗透测试方法大全.pdf

Android APP 渗透测试方法大全

by backlion

一、Android APP 渗透测试方法

1.测试环境

SDK : J a JDK , Android SDK。

工具: 7zip, dex2jar ,jd -gui, apktool, IDA pro (6.1), ApkAnalyser , Eclipse,

dexopt-wrapper ,

010 editor , SQLite Studio, ApkIDE。

apk 工具: android 组件安全测试工具, activity 劫持测试工具, android 击键记录

测试工具,

工具(proxydroid), MemSpector, Host Editor

2.客户端程序安全测试

2.1 数字签名检测

C:\ Program Files\J a\jdk1.8.0_111\ bin\jarsigner.exe -verify APK 文 件 路 径

-verbose –certs

当输出结果为“jar 已验证”时,表示签名正常

检测签名的 CN 及其他字段是否正确标识客户端程序的来源和发布者身份

如上图,说明测试结果为安全。

要说明的是,只有在使用直接客户的 签名时,才认为安全。 Debug 、第 (如

开发方) 等等均认为风险。

2.2.反编译检测

把 apk 当成 zip 并解压,得到 classes.dex 文件(有时可能不止一个 dex 文件,但文

件名大多类似)

使用 dex2jar 执行如下命令:

dex2jar.bat classes.dex 文件路径

得到 classes.dex.jar

然后使用 jd -gui 打开 jar 文件,即可得到 J A 代码。【注: 直接使用 smali2j a 或

者 APKAnalyser 打开 apk 文件,也可反编译回 J a 代码】

【注:有时用apktool 能够解包并查看 smali,但 dex2jar 却不行。如果 dex2jar 反编

译失败,可以试试看能 恢复 smali 代码。】逆向后发现是没混淆的情况,是不安全的。

如果代码经过混淆,或者有加壳措施, 完整恢复源代码的,都可以认为此项安全 ,混淆

后的代码样例,除了覆写和接口以外的字段都是无意义的名称。如下图已加密混淆 ,除了覆

写和接口以外的字段都是无意义的名称::

反编译为 smali 代码

使用 apktool 工具可以对 apk 进行解包。具体的解包命令格式为:apktool d[ecode]

[OPTS] [

1.如果只需要修改 smali 代码,不涉及资源文件的修改,可以在解包时加入 -r 选项(也

以直接使用 baksmali 将 dex 反编译为 smali 代码,见 5.3),不解码 apk 中的资源。

在打包时可以避免资源方面的问题(如 aapt 报的各种错误)。

2. 如果只需要反编译资源文件,可以在解包时加入-s 选项,不对 classes.dex 进行反编译。

3. 如果在 5.6.1 使用 apktool 打包 smali 代码中出现资源相关的错误,可能是需要较新

framework 文件。可 此处,添加 framework 文件。例如,添加 Android 4.4.2 SDK

中的 framework 文件,命令如下:

4. 解包时指定相应的 framework (上面命令中的tag0 是对添加的 framework 的标记,

用于标识不同的 framework),如图所示:

解包完成后,会将结果生成在指定的输出路径中,其中,smali 文件夹下就是最终生成的

Dalvik VM 汇编代码,AndroidManifest.xml 文件以及 res 目录下的资源文件也已被解

码。如图:

处 理 odex 文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值