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

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

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

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

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

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

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

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

步骤3:创建并签署密钥

Keytool和Jarsigner包装在Java Development Kit包中,需要完成此步骤。使用此命令生成密钥:
keytool -genkey -v -keystore mykey.keystore -alias <任何别名> -keyalg RSA-keysize 2048 -validity 10000

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

完成所有步骤后,重新包装的APK可以成功安装在设备上。

如果篡改后的APP能够正常运行,那么该APP存在被盗版的风险。安卓应用APK加密工具集成多项加密服务,包括Dex文件加密、SO文件加密、DLL文件加密、内存保护、反调试、防二次打包等功能。避免核心代码被破解,请求协议被伪造,被病毒感染,被植入恶意代码后重打包等诸多安全风险!

更多相关文章

  1. Android(安卓)Q Beta 发布
  2. android效率为什么这么的高呢
  3. Android(安卓)数字签名学习笔记
  4. 一个使用FFmpeg库读取3gp视频的例子-Android中使用FFmpeg媒体库(
  5. Android(安卓)Log分析
  6. 【转】 Mac环境下Android(安卓)APK包反编译详解
  7. android jni 的编写一(JNI的静态注册)
  8. NPM 和webpack 的基础使用
  9. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程

随机推荐

  1. Android中Activity的4种加载模式
  2. 【Android(安卓)进阶】Android(安卓)Home
  3. Android(安卓)编译系统分析
  4. Android(安卓)Camera 模块分析
  5. Android(安卓)Instrumentation
  6. Android与JavaScript方法相互调用
  7. Android(安卓)SDK中tools详解
  8. Android(安卓)Intent Service Usage
  9. Android(安卓)tp的虚拟按键(virtual key)
  10. Android(安卓)Debug Bridge命令介绍