美文网首页
Android-APK加固

Android-APK加固

作者: 森屿暖茶 | 来源:发表于2021-02-19 16:42 被阅读0次

学习APK加固,首先我们需要了解APK的构造。才能了解我们需要加固什么,怎么保护我们文件信息。

将APK解压

APK解压后的文件目录

目录结构

assets:存放资源文件的目录

lib:存放ndk生成的so文件

META-INF:签名信息存放的目录

res:资源文件的存放目录

AndroidMannifest:清单文件,存储描述了应用的名字、版本、权限、注册的服务等信息

classes.dex:java源码编译经过编译后生成的dalvik字节码文件,主要在Dalvik虚拟机上运行的主要代码部分。这类文件可能会有多个。

resources.arsc:编译后的二进制资源索引文件(通过resources.arsc能过准确的找到对应的资源文件)。

对文件的加固一般分为.dex文件加固保护java源码和so文件加固保护so不被泄露。

.dex文件加固:

加固基本思想:

①原apk文件,解压过后有若干文件和若干.dex文件。

②我们需要一个壳dex文件,壳dex文件的application方法具有解密和恢复功能代码。

③我们有2种方式加壳:

(1)通过对dex文件有深入的了解,我们把所有的原dex加密并拼接写入壳dex文件中,并记录位置,以方便我们知道从哪里开始使我们源dex文件内容。仅能破译壳dex文件的有效内容。(最终只有一个dex文件  内容=壳dex文件+加密后的dex文件内容)。

(2)我们把所有原dex文件加密重新写入一个dex文件中,命名不要和壳dex文件冲突即可,如我们重命名为class_jiami1.dex类似这种方式。仅能破译壳dex文件,所有的加密过后的dex文件将无法被识别和破译。(最终只有一个可识别的dex文件,和若干不可识别的特殊命名的dex文件。)

④不管用哪种方式加壳,我们把新dex文件们和apk的其他文件,进行重新打包生成新的apk。

⑤新的apk重新签名生成可安装的apk.

运行解壳思想:

①运行apk,会加载apk中dex文件的application方法。application有2个关键方法attachBaseContext和onCreate方法,先运行attachBaseContext然后运行onCreate。

②attachBaseContext 我们dex解密重新加载回程序就在这个方法内执行。由于加壳方式不同,解壳方式也不同。

(1) 通过dex文件记录的文件大小值,我们可以读取len(.dex文件) – len(记录的文件大小值),即这个大小之后的数据就是我们拼接进去的原dex文件加密过后的内容,我们对这些数据内容进行解密,保存到资源目录(一般是apk的data私有目录下自己指定的目录),然后参考热修复的方式,我们反射或者自定ClassLoader加载这些dex文件。

(2)直接通过解密算法解密其他特殊命名的dex文件,然后参考热修复的方式,我们反射或者自定ClassLoader加载这些dex文件。

③onCreate中,反射修改AndroidThread类,将Application指向原dex文件中的Application,然后创建原Application对象,调用Applicaiton中的OnCreate等方法启动原程序。 

相关文章

  • Android-APK加固

    学习APK加固,首先我们需要了解APK的构造。才能了解我们需要加固什么,怎么保护我们文件信息。 将APK解压 目录...

  • Android 数据安全

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

  • Android加壳脱壳

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

  • 自定义Android Studio插件 Gradle+360加固

    现在安卓APP为了代码安全,都要求在发布前先加固,可以自己写加固程序加固,我选择用第三方加固软件:360加固保加固...

  • iOS APP安全加固方案(一、代码混淆CodeObfuscat

    目录 一、为什么要加固 二、加固的几种方法 三、基于念茜如何加固 四、其他人的加固方法 前言 APP加固之代码混淆...

  • 贵州建筑工程:墙体加固的方法有哪些

    墙体加固的方法有: 1、砂浆面层加固:适用于承载能力相差不多的静力加固和抗震加固。 2、钢筋网砂浆面层加固:适用于...

  • 建筑综合改造加固

    什么是建筑综合改造加固,建筑综合改造加固结构的加固分为直接加固与间接加固两类,设计时,可根据实际条件和使用要...

  • 加固博士:详解碳纤维布加固施工过程中不容小觑的4个细节

    说到建筑物的加固施工,大家现在对其的了解都比较多,目前我们常用的加固方法有碳纤维加固法、混凝土加固法、粘钢加固法等...

  • 安卓一些操作

    1. 安卓指令加签加固流程 加固360加固 适用于大部分腾讯相关市场如果在提交360加固后的包提示加固不完整,则再...

  • APK的加固

    1.国内主流加固方式 梆梆加固 :https://www.bangcle.com/ 360加固保 :http://...

网友评论

      本文标题:Android-APK加固

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