`
damengjiejie
  • 浏览: 9852 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

如何保护自己android app代码不被盗用

 
阅读更多

经过了忙碌的一周终于有时间静下来写点东西了,我们继续介绍android apk防止反编译技术的另一种方法。前两篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blog/393372)和运行时修改字节码(http://my.oschina.net/u/2323218/blog/396203),如果有不明白的可以查看我的博客的前两篇中关于这两种技术的介绍。接下来我们将介绍另一种简单适用的防止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即可关注,在线帮您解决技术难点,给大牛直接出难题。

 

摘自:http://my.oschina.net/u/2323218/blog/399326

分享到:
评论

相关推荐

    android 代码混淆_v2.0

    1. **保护知识产权**:通过混淆处理后的代码很难被逆向工程,这有助于保护开发者的核心算法和逻辑不被盗用。 2. **减小APK大小**:混淆过程中会移除未使用的类、方法等,从而有效减小最终APK的体积。 3. **提升性能*...

    Android一二三代壳加固原理分析,代码实现ART下抽取壳。

    Android应用加固技术主要目的是保护应用程序不被逆向工程破解,防止恶意篡改或盗用代码。本文将深入探讨Android一二三代壳加固原理,包括抽取壳、VMP加固以及DEX2C技术,分析其实现源码。 1. **抽取壳原理**: ...

    16 王润 WEB APP跨站脚本漏洞的检测与分析1

    在Web APP场景下,此方法用于检测恶意代码的入口点(如短信、二维码、NFC等)和不安全的显示API,通过建立控制流图(Control Flow Graph, CFG),分析它们之间的路径,以找出可能的XSS漏洞。 本文的主要贡献如下: ...

    安卓应用保护技术分析.pptx

    安卓应用保护技术是移动安全领域中的重要议题,尤其是在Android平台上,由于其开源特性和广泛的用户基数,成为了恶意软件开发者的主要目标。本分析主要探讨了应用打包服务的流行、重打包的危害以及各种保护与反保护...

    AppKeystore1.0

    在IT行业中,安全是至关重要的,尤其是在开发移动应用时。标题“AppKeystore1.0”和描述中提及的关键技术涉及到了两个...这些工具对于开发和保护Android应用的源代码和用户数据至关重要,确保了应用的安全性和可靠性。

    Business-AndroidWrapper:致力于成为业界移动应用安全专家,为移动开发者的数据安全保驾护航

    另一方面,APP被篡改、盗用,直接伤害了开发者的知识和劳动权益,移动开发者有必要保护自己的利益不受损失。 本文介绍成熟的安全加固方案,均已实现和使用,解决了众多企业和个人的安全问题。 安全加固项介绍 安全项...

    APK加固之类抽取分析与修复

    在Android应用开发中,APK加固是保护应用程序不被逆向工程、篡改或盗用的重要手段。本文将深入探讨APK加固的概念、类抽取分析以及相关的修复策略,旨在提高APP的安全性。 首先,我们需要理解APK加固的基本原理。APK...

    Android APK反编译技巧深入讲解

    这篇教程深入讲解了如何反编译Android APK,使开发者能够更好地理解软件保护策略,并防止核心技术被盗用。 首先,反编译的基本工具有三个:APKTool、dex2jar和jd-gui。APKTool用于解析APK的资源文件(res)和...

    支付宝移动快捷支付应用集成接入包支付接口接入与使用规则

    同时,必须保护好账号信息的隐私性,防止被他人盗用导致资金受损。 - **安全**:商户必须以DNS解析的方式访问支付宝接口,不应设置DNS cache或绑定支付宝IP,以免因支付宝IP变更导致服务中断。 - **签名**:待签名...

    浅析基于互联网技术分销系统的支撑实现.docx

    使用Maven/Gradle进行自动化构建,Git进行代码管理,GitLab作为代码仓库,Grafana进行实时系统监控。此外,系统还支持全渠道分销功能,注册过程包括短信验证码认证,以及合作伙伴申请的审核机制,确保了业务流程的...

    朋友圈转发截图生成工具源码

    8. **版权问题**:在创建和分享模拟截图时,用户应尊重原创,避免侵犯他人的知识产权,如不传播虚假信息或盗用他人图片。 总的来说,这款“朋友圈转发截图生成工具源码”是一个结合了前端开发、后端开发、移动应用...

Global site tag (gtag.js) - Google Analytics