飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3279|回复: 2

[Android] 【干货】测试Android应用安全性

[复制链接]
  • TA的每日心情
    开心
    2017-7-11 14:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2017-7-17 17:58:43 | 显示全部楼层 |阅读模式
    本帖最后由 几许嫣然 于 2017-7-17 17:59 编辑

    想要开发一款安全的Android应用程序,最佳方法之一是进行渗透测试,其实际情况就是模拟攻击者对你的应用程序进行破解分析!首先、我们设置测试环境;其次、我们讨论一些工具和代理技术--DrozerApktool和“中间人”代理 - 在安全评估Android应用程序时派上用场;最后、我们研究了Android的清单文件。

    Android应用程序的渗透测试期间,通常需要修改应用程序的源代码以绕过SSL pinning  SSL绑定,检查篡改保护,绕过应用程序逻辑等步骤。在本文中,我们将介绍成功修改源代码的过程。

    所需工具:
    1、下载并设置Apktool
    2jarsigner
    3JD-GUI

    步骤1:将代码转换为Smali格式
    设置Apktool并使用以下命令拆卸APK。我们使用了测试应用程序Sieve
    apktool d <你的apk路径这里> -o<输出路径>

    1.png

    反汇编的APK文件夹包含Smali文件。可以使用任何文本编辑器修改这些文件,如以下屏幕所示:

    2.png

    您还可以使用JD-GUI(将classes.dex文件转换为.jar格式)来标识要修改的类或方法,然后修补相应的Smali文件。

    步骤2:重新打包APK
    修改Smali代码后,您必须重新打包APK。使用以下命令:
    apktool b <deassembled apk path> -o<output apk path>

    3.png

    Android要求每个APK都要签名。任何未经签名的二进制文件都会导致传递错误。因此,下一步是创建一个密钥对,并使用该签名进行签名。

    步骤3:创建并签署密钥
    KeytoolJarsigner包装在JavaDevelopment Kit包中,需要完成此步骤。使用此命令生成密钥:
    keytool -genkey -v -keystore mykey.keystore-alias <任何别名> -keyalg RSA-keysize 2048 -validity 10000

    4.png

    在回答以下一系列问题后,将在C\ Users \ <username>目录中创建一个密钥文件(mykey.keystore)。
    创建密钥后,可以使用以下命令对APK进行签名:
    jarsigner -verbose -sigalg SHA1withRSA-digestalg SHA1 -keystore mykey.keystore <apk path> alias_name

    5.png

    完成所有步骤后,重新包装的APK可以成功安装在设备上。
    如果篡改后的APP能够正常运行,那么该APP存在被盗版的风险。安卓应用APK加密工具http://www.kiwisec.com/product/apkEncrypt.shtml)集成多项加密服务,包括Dex文件加密、SO文件加密、DLL文件加密、内存保护、反调试、防二次打包等功能。避免核心代码被破解,请求协议被伪造,被病毒感染,被植入恶意代码后重打包等诸多安全风险!

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    7 天前
  • 签到天数: 174 天

    [LV.7]常住居民III

    发表于 2019-2-28 17:18:50 | 显示全部楼层
    感谢分享,学习了~
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-4 08:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-6-8 10:17:37 | 显示全部楼层
    学习了  学习了  学习了  
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表