ZIP伪加密

经过伪加密的apk,改成zip格式打开会发现里面的文件都经过了加密。

APK实际上是Zip压缩文件,但是Android系统在解析APK文件时,和传统的解压压缩软件在解析Zip文件时存在差异,利用这种差异可以实现给APK伪加密的功能。在Zip结构中,Central Directory部分的File Header头文件中,有一个2字节长的名为 General purpose bit flags的字符按,其中如果第0位置1,则表示Zip文件的该Central Directory是加密的,若果使用传统的解压缩软件打开这个Zip文件,在解压该部分Central Directory 文件时,需要输入密码。当然,用APKTOOL也无法解压。

 
对apk伪加密实现,可以使用Python的zipFile模块来做,在Python的zipfile模块中,ZipInfo类中记录了Zip文件中相应的Central Driectory 的相关信息,包括General purpose bit flags, 在ZipInfo类中属性为flag_bits, 因此将需要加密的APK文件的每个ZipInfo的flag_bits和1做或操作,实现在General purpose bit flags的第0位置1.
 
用这段代码(已经是2013年的了):http://bbs.pediy.com/showthread.php?t=174825
C:\Users\Larry\Desktop>java -jar ZipCenOp.jar
tastypear@gmail.com
coolapk.com
no source here, but u can reverse as u like usage:
ZipCenOp.jar <option> <file>
option:
r : recover a PKZip
e : do a fake encryption

进行伪加密:

C:\Users\Larry\Desktop>java -jar ZipCenOp.jar e .apk

然后安装,提示:Failure [INSTALL_FAILED_INVALID_APK]

然后解密,安装,提示:Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

又听闻新版本系统已经不接受为加密过的APK了。此种方法已经没意义了。不过源码还是可以学学的。不得不感叹技术变化得太快,尤其安全方面,需要不停学习啊。

REFERENCE:http://1.honebl.sinaapp.com/?p=43

ZIP伪加密(deprecated)的更多相关文章

  1. Zip伪加密 破解ZIP密码

    ZIP是一种相当简单的分别压缩每个文件的存档格式.分别压缩文件允许不必读取另外的数据而检索独立的文件:理论上,这种格式允许对不同的文件使用不同的算法.不管用何种方法,对这种格式的一个告诫是对于包含很多 ...

  2. 破解压缩包的几种方式(zip伪加密 爆破 CRC32碰撞 已知明文攻击)

    zip伪加密 zip文件是由3部分组成,详见文末 压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志 在压缩源文件数据区有个2字节的 全局方式位标记 ,在压缩源文件目录区也有个2字节的 全局方 ...

  3. Bugku-CTF加密篇之zip伪加密(flag.zip)

    zip伪加密

  4. zip伪加密文件分析(进阶版)

    作者近日偶然获得一misc题,本来以为手到擒来,毕竟这是个大家都讨论烂了的题,详情访问链接http://blog.csdn.net/ETF6996/article/details/51946250.既 ...

  5. zip伪加密

    简单的话来阐述 zip伪协议的意思是说本来不需要密码的zip文件然后通过修改标志位,然后就可以达到有密码的效果对吗?但是他实际是没有密码. 一个 ZIP 文件由三个部分组成: 压缩源文件数据区+压缩源 ...

  6. .zip格式和zip伪加密

    ZIP文件的组成: 压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志 压缩源文件数据区 50 4B 03 04:这是头文件标记(0x04034b50) 14 00:解压文件所需 pkware ...

  7. buuctf zip伪加密

    平时伪加密总是依赖osx,这道题无法直接解压,所以研究一下伪加密先放两张图(图是偷的)一般在压缩源文件数据区全局方式位标记处,真加密为 09 00,伪加密为00 00,而后面将压缩源文件目录区全局方式 ...

  8. 关于zip伪加密

    创建一个zip文件 然后用winhex打开 可以看到第二个PK头的地方对应hex区域有一场串0000000000 在这里的第四个0这里末尾修改成奇数 奇数为加密 偶数为不加密 再去打开就可以看到加密了

  9. ZIP文件伪加密

    题目给出图片,那当然是从图片下手啦! 首先下载图片,在Linux系统下用binwalk工具打开,果然不出所料,里面藏有文件! 用dd把它分解出来! 'txt' 格式的文件提取出来!会看到一个Zip压缩 ...

随机推荐

  1. GO语言_用redis作为url队列的爬虫

    // Copyright 2016 laosj Author @songtianyi. All Rights Reserved. // // Licensed under the Apache Lic ...

  2. python中 urllib, urllib2, httplib, httplib2 几个库的区别

    转载 摘要: 只用 python3, 只用 urllib 若只使用python3.X, 下面可以不看了, 记住有个urllib的库就行了 python2.X 有这些库名可用: urllib, urll ...

  3. 【转载】React入门实例教程-读书笔记

    参考了这篇文章: http://www.ruanyifeng.com/blog/2015/03/react.html 其中github 安装配置见上一篇文章(link) 一.HTML 模板 使用 Re ...

  4. mac git安装及github配置

    准备下载一个react的demo程序包,需要本地用到git.早就向配置了,那就安装配置一下吧. 首先,原来mac已经安装了git,版本 2.7 ,我用 brew又安装了一份git 版本 2.10.2. ...

  5. mysql: Data source rejected establishment of connection, message from server: "Too many connections"

    http://www.oschina.net/question/558677_66703 com.mysql.jdbc.exceptions.MySQLNonTransientConnectionEx ...

  6. 储存技术(SLC、MLC、TLC和QLC的NAND闪存技术)和Optane Memory

    1.转载:Optane Memory 2.构成SSD的主要IC有主控芯片和NAND闪存,SLC.MLC和TLC三者都是闪存的类型 需要说明的闪存的寿命指的是写入(擦写)的次数,不是读出的次数,因为读取 ...

  7. make mrproper及mrproper的含义

    Linux下面去编译项目之前,一般常会用make mrproper去先删除之前编译所生成的文件和配置文件,备份文件等,其中,mrproper和distclean,clean之间的区别,Linux内核源 ...

  8. Java的泛型约束和限制

    不能用基本类型实例化类型参数 不能用类型参数代替基本类型:例如,没有Pair<double>,只有Pair<Double>,其原因是类型擦除.擦除之后,Pair类含有Objec ...

  9. 调试LD_PRELOAD注入的代码

    LD_PRELOAD提供了平民化的注入方式固然方便,同一时候也有不便:注入库出错后调试比較困难. 我琢磨了几天找到了可行的调试方法,当然未必是最有效的办法.抛出陋文,希望引来美玉~ 首先.写一段代码作 ...

  10. Html调用 QQ接口

    <A href="tencent://message/?uin=1805843351&Site=有事Q我&Menu=yes"> <img styl ...