美文网首页
Android apk加固

Android apk加固

作者: thomasyoungs | 来源:发表于2020-06-10 11:37 被阅读0次

背景

很多公司版本功能趋于稳定后,产品开始提出对apk的安全性提出一些要求,进行安全检测,混淆已经不能满足这些安全需求,下图是我们公司apk安全检测报告。

准备工作:

1.安装apktool

参考文档:Apktool - How to Install

以Mac os 为例,首先下载 https://bitbucket.org/iBotPeaches/apktool/downloads,选择一个版本下载,讲下载的文件修改名字为apktool.jar。

然后下载https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/osx/apktool,存储并命名为apktool(不能是文本)。

把apktool和apktool.jar文件移动到"/usr/local/bin"目录下,并使用终端命令为两个文件增加执行权限,命令如下:

cp apktool.jar apktool /usr/local/bin  

chmod +x /usr/local/bin apktool.jar apktool

最后终端执行验证命令:apktool,得到版本号即为成功。

2. IDAProv6.8

链接:https://pan.baidu.com/s/1j_qh4Kv9CBcJEDXEd9QPHw 密码:bxqn

3.重签名工具

重签名工具有很多,以mac为例,使用的是jarsigner

链接:https://pan.baidu.com/s/1DAK_qccmAs_HrtwQIpMNDg 密码:w3k1

使用方法:jarsigner -verbose -keystore [您的私钥存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称]

jarsigner-verbose-keystore /Downloads/mykeystore -signedjar /signed.apk /unsigned.apk keyAlias     

解决步骤

1.添加花指令:在Android项目添加一个永不能执行到class;如下。也可以通过proguard-android.txt配置文件配置需要保留的class。参考https://developer.android.com/studio/build/shrink-code.html

测试示例:

package com.example.oscar.oscarapp;

/** * Created by oscar on 2017-11-06. */

import android.support.annotation.Keep;

@Keep //混淆代码时保留完整class代码

public class BadCode {

public void sCode(){

    System.out.println("111111");

    System.out.println("111111");

    System.out.println("222222");

    System.out.println("222222");

} }

2、通过Android Studio 进行编译打包apk。生成包是经过代码混淆的。

3、通过IDAProv6.8。反编译apk里的classes.dex文件,找到BadCode class函数执行入口地址。

4、通过C32Asm 使用十六进制打开 classes.dex文件,按快捷键“Ctrl + G”,定位到BadCode class函数执行入口地址 改为“12 01 38 01 03 00 FF FF 00 00 00 00 00 00” 并保存

5、把修改后的dex文件拖入DexFixer进行修复

6、把修复后的dex文件覆盖apk原有的dex文件,删除META-INF签名文件,使用签名工具对apk重新签名

7、至此,混淆与加壳都已完成,并可以使用Android手机进行安装。用dex2jar-0.0.9.15反编译会报错。

相关文章

  • Android加壳脱壳

    Android 加固与脱壳 加固与脱壳常用加固 so 文件特征分析 apk 加固动态调试分析 apk 加固-环境搭...

  • Android 数据安全

    代码混淆 & apk的加固 常用加固平台:爱加密、360加固、腾讯加固、梆梆加固 Android应用加固原理 网络...

  • android apk 加壳原理与实现

    请参考Android中的Apk的加固(加壳)原理解析和实现Android中的Apk加固原理解析和实现第2篇也是参考...

  • Android 打包加固签名那点事儿

    android apk发布应用市场前,像360市场需要对apk进行加固再重新签名,可以使用官方下载的360加固助手...

  • Android apk加固

    背景 很多公司版本功能趋于稳定后,产品开始提出对apk的安全性提出一些要求,进行安全检测,混淆已经不能满足这些安全...

  • Android 发版的小工具

    Android加固包签名 我们知道自己的apk在上传市场的时候, 为了更好的包含我们的代码需要加固服务, 加固后的...

  • Android最初的加固

    前言 这次我们对Android的一些基本加固做一个探讨。本文将设计加固和Android的apk动态加载,我们重点放...

  • Android安全文章汇总

    https://testerhome.com/topics/4480--android安全专项apk的加固 htt...

  • 基于御安全APK加固的游戏反外挂方案

    APK加固,Android开发,APP保护,游戏反外挂,应用安全加固 摘要:兴起的手游市场背后隐藏着严峻外挂问题,...

  • Python 脚本构建Android APK 自动加固、打渠道包

    Python 脚本构建Android APK 自动加固、打渠道包并上传服务器 常规流程 打出原始apk 使用乐固工...

网友评论

      本文标题:Android apk加固

      本文链接:https://www.haomeiwen.com/subject/fduetktx.html