`
lonely_online
  • 浏览: 11340 次
社区版块
存档分类
最新评论

android apk 防止反编译技术第三篇-加密apk

阅读更多

经过了忙碌的一周终于有时间静下来写点东西了,我们继续介绍android apk防止反编译技术的另一种方法。前两篇我们讲了加壳技术和运行时修改字节码,如果有不明白的可以查看我的博客的前两篇中关于这两种技术的介绍。接下来我们将介绍另一种简单适用的防止apk反编译的技术-伪加密。

 

一、伪加密技术原理

我们知道android apk本质上是zip格式的压缩包,我们将android应用程序的后缀.apk改为.zip就可以用解压软件轻松的将android应用程序解压缩。在日常生活或者工作中,我们通常为了保护我们自己的文件在进行压缩式都会进行加密处理。这样的方法对于android apk同样适用。原理很简单,在zip的文件格式中有一个位用来标示该zip压缩文件中的文件是否被加密,我们只要找到该标志位将其置1就可以实现我们的目的。而android的包安装服务(PackageManagerService)在进行apk安装时并不关心这个加密位(暂时我们就这么叫它吧)可以进行正常的安装并且也不会影响apk的运行。

 

二、zip文件格式

zip的文件格式通常有三个部分组成:压缩文件源数据、压缩目录源数据、目录结束标识。这三个部分中和我们说的加密位有关的是压缩目录源数据部分,我们接下来详细介绍这一部分。

压缩目录源数据部分记录着所有的压缩目录源数据。其结构如下:

Central directory file header

 

Offset

Bytes

Description[18]

0

4

Central directory file header signature =0x02014b50

核心目录文件header标识=0x02014b50

4

2

Version made by

压缩所用的pkware版本

6

2

Version needed to extract (minimum)

解压所需pkware的最低版本

8

2

General purpose bit flag

通用位标记

10

2

Compression method

压缩方法

12

2

File last modification time

文件最后修改时间

14

2

File last modification date

文件最后修改日期

16

4

CRC-32

CRC-32算法

20

4

Compressed size

压缩后大小

24

4

Uncompressed size

未压缩的大小

28

2

File name length (n)

文件名长度

30

2

Extra field length (m)

扩展域长度

32

2

File comment length (k)

文件注释长度

34

2

Disk number where file starts

文件开始位置的磁盘编号

36

2

Internal file attributes

内部文件属性

38

4

External file attributes

外部文件属性

42

4

Relative offset of local file header. This is the number of bytes between the start of the first disk on which the file occurs, and the start of the local file header. This allows software reading the central directory to locate the position of the file inside the ZIP file.

本地文件header的相对位移。

46

n

File name

目录文件名

46+n

m

Extra field

扩展域

46+n+m

k

File comment

文件注释内容

 

该结构中的General purpose bit flag部分的第0位如果置1,标识该压缩包被加密;置为0标识该压缩包没有被加密。

 

三、具体实施

我们可以利用ZipCenOp.jar这个jar包对apk进行加密和解密操作(也有用python实现这个操作的这里我们不做介绍)。

(1)    apk进行加密

加密后,我们用解压缩软件进行解密会看如下的提示信息:

 

apktool进行反编译会提示如下的错误信息:

 

 

加密后apk是可以正常的安装和运行的。

 

(2)    apk进行解密

解密对我们来说没有多大的用途,只是了解一下。

 

根据上面的讲述相信大家对apk的伪加密技术有了一定的了解,不过这种方法对于android 4.2.x版本及以后系统已经不适用了它会拒绝这种加密apk的安装。下一篇我们将讲解另一种android apk防止反编译技术,期待大家的捧场。

感谢您的阅读,期待下次与您见面:

如果对这篇讲的技术有任何疑问及想要获得这篇文章讲的技术的工具,第一时间获得文章更新,每天发布一篇技术大牛的原创文章,更多技术信息分享

欢迎关注个人微信公众平台:程序员互动联盟,扫一扫下方二维码或搜索微信号coder_online即可关注,在线帮您解决技术难点,给大牛直接出难题。

 

 

分享到:
评论

相关推荐

    Androidapk反编译之androidAPK有效加密方法.pdf

    Android APK 反编译之有效防止破解和反编译加密方法 Android APK 反编译是一种常见的安全威胁,许多 Android 开发者都存在这个问题。那麼有什么办法能防止 Android APK 反编译和破解呢?本文将对 Android APK 反...

    Android APK 反编译软件

    本文将深入探讨Android APK反编译的原理、工具和相关知识点。 首先,我们需要理解APK文件的结构。APK包含资源文件(如图片、布局XML)、Java字节码(Dalvik Executable, .dex文件)、AndroidManifest.xml(应用配置...

    Android APK反编译文件

    总的来说,Android APK反编译是一个涉及多种工具和技术的过程,旨在揭示APK内部的工作机制。在进行反编译时,既要掌握相关工具的使用,也要关注版权、安全和合法性问题,确保操作合规且有意义。

    安卓android apk 反编译步骤

    安卓Android APK反编译是开发者或逆向工程师为了查看、分析或修改APK内部代码和资源的一种技术。以下是一个详细的步骤,帮助你理解如何进行这个过程: 1. **准备工作**:首先,你需要下载两个关键工具,分别是`dex2...

    linux平台上的android apk软件反编译工具

    在Android应用开发领域,了解如何对APK进行反编译是非常重要的技能,这有助于学习、调试和分析其他应用的工作原理。在Linux平台上,有几种工具可以帮助我们实现这一目标,其中包括apktool、jd-gui和dex2jar。这些...

    android_apk反编译工具

    总的来说,"android_apk反编译工具"如dex2jar和JD-GUI为开发者提供了一种途径,能够探索APK内部的工作机制,这对于软件调试、安全评估以及学习第三方应用的实现方法非常有帮助。但同时,这也强调了保护自己的代码免...

    Android apk反编译

    总之,Android APK反编译是一个涉及多种工具和技术的过程,包括dex2jar、apk2java、Apktool等。了解这些工具的使用和反编译的原理,可以帮助开发者更好地理解和调试APK,同时也要注意尊重知识产权,合理合法地进行...

    Android如何防止apk程序被反编译

    在Android应用开发中,保护APK...总之,防止APK反编译是一个综合性的过程,涉及到代码混淆、资源加密、安全编码实践等多个方面。持续关注安全更新,及时调整和增强防护措施,是保护Android应用免受逆向工程攻击的关键。

    Android Apk一键反编译工具(Gapktool.bat)

    一、Apk反编译原理 Android应用的APK文件是经过Java字节码(Dalvik Executable,DEX)编译和混淆后的结果。反编译过程主要包括以下步骤: 1. 解密:APK文件通常会被对齐和加密,反编译工具首先需要对其进行解密。 2....

    android-apk反编译工具包

    在Android开发领域,APK反编译是一种常见的技术手段,用于理解APK文件的内部结构、查看源代码、分析应用程序的工作原理或者进行安全审计。"android-apk反编译工具包"是一个集合了多种工具的资源包,专门针对Android ...

    Android 安卓 apk app 反编译 可视化 GUIAPKToolBoxGUI-0.0.5.zip

    《Android APK反编译工具APKToolBoxGUI详解》 在Android应用开发的世界里,APK文件是应用程序的载体,通常以二进制格式存在,对于开发者和安全研究人员来说,理解其内部工作原理至关重要。APKToolBoxGUI是这样一个...

    Android-DecompileApk-一键反编译APK

    "Android-DecompileApk-一键反编译APK"项目提供了一种便捷的方式,帮助开发者或者安全研究人员快速地对APK文件进行反编译,以查看其源代码和资源。下面我们将详细探讨这个过程及相关知识点。 1. **APK 文件结构**:...

    android apk反编译

    总之,Android APK反编译是一个涉及多个步骤和技术领域的过程,包括DEX反编译、资源解析、签名与打包等。通过这一过程,我们可以深入理解APK的内部结构和工作逻辑,但同时也应尊重知识产权,合法合规地使用这些技术...

    Android APK 反编译 工具.rar

    以下是关于Android APK反编译的详细知识: 1. **什么是APK反编译**: APK反编译是将已编译的Android应用包(.apk文件)转换回源代码和资源文件的过程。这通常用于查看应用的内部结构,了解其工作原理,查找潜在的...

    Android_apk反编译

    总的来说,Android_apk反编译是一个复杂但实用的技术,它涵盖了多个工具的使用和理解,同时提醒我们关注应用的安全性和版权问题。通过熟练掌握这一技能,开发者不仅可以提升自身的编程能力,还能更好地保障应用的...

    apk如何防止反编译

    爱加密技术以爱加密检测平台为依据,写出的一份详细的apk如何防止反编译的步骤,仅供大家参考

    android安卓app反编译apk反编译教程.zip_android反编译smali

    总的来说,APK反编译是一个复杂的过程,涉及到多个工具和技术,对于理解Android应用的工作原理和保护应用安全都具有重要意义。不过,应该意识到,反编译可能会侵犯知识产权,合法使用这些技术应遵循相关法律法规。

    android apk 反编译工具

    本篇文章将详细介绍三种常用的Android APK反编译工具:Apktool、dex2jar和JD-GUI。 首先,我们来了解一下什么是APK文件。APK是Android应用的安装包,包含了应用的所有资源、代码、库和清单文件。由于APK文件是经过...

Global site tag (gtag.js) - Google Analytics