应用场景

如果需要批量分析apk以及每个apk文件中的classes.dex 文件。怎么提取出它们?将apk改后缀名变为.zip文件,之后在解压,提取出每个apk文件中的classes.dex文件,这是一个可行的方案。但是中间解压大量的apk文件会占据我们的大量磁盘存储空间,怎么在不解压文件的情况下提取出dex文件?在这里使用python自带的zipfile类,可以轻松的解决这个问题。

代码实现:

#!/usr/bin/env python
# coding=utf-8'''
@author   : Chicho
@version  : 1.0
@ date    : Jan 4, 2015 01:54
@function : extract dexs file from apk files* create a new directory to store all dex files@running  : python dex_extract.py
'''import os
import zipfilepath="/home/chicho/test/test/"  # this is apk files' store path
dex_path="/home/chicho/test/test/dex/" # a directory  store dex files apklist = os.listdir(path) # get all the names of appsif not os.path.exists(dex_path):os.makedirs(dex_path)for APK in apklist:portion = os.path.splitext(APK)if portion[1] == ".apk":newname = portion[0] + ".zip" # change them into zip file to extract dex filesos.rename(APK,newname)if APK.endswith(".zip"):apkname = portion[0]zip_apk_path = os.path.join(path,APK) # get the zip filesz = zipfile.ZipFile(zip_apk_path, 'r') # read zip filesfor filename in z.namelist():if filename.endswith(".dex"):dexfilename = apkname + ".dex"dexfilepath = os.path.join(dex_path, dexfilename)f = open(dexfilepath, 'w+') # eq: cp classes.dex dexfilepathf.write(z.read(filename))print "all work done!"

利用这个方法还可以从apk文件中批量的提取出其他文件。比如说so文件等。

转载注明出处:http://blog.csdn.net/chichoxian/article/details/42382695

批量提取出apk文件中的classes.dex文件相关推荐

  1. vs android 压缩,Android Studio是否压缩classes.dex文件?

    看起来输出文件夹中apk文件的classes.dex与已安装的应用程序不同. 我正在使用classes.dex文件来解决一些安全问题,所以通常我解压缩最终的apk文件并从classes.dex文件中获 ...

  2. Excel如何从记录信息里批量提取出QQ号码

    今天我和大家分享的是:Excel如何从记录信息里批量提取出QQ号码,详见下面的动图演示. 从某个群里面,我们获得了QQ号和昵称的字段,那现在我们只想要QQ号,以便于我们添加好友,怎么提取出来呢 (方方 ...

  3. 在SCSS文件中导入常规CSS文件?

    本文翻译自:Import regular CSS file in SCSS file? Is there anyway to import a regular CSS file with Sass's ...

  4. 如何在另一个JavaScript文件中包含一个JavaScript文件?

    JavaScript中是否有类似于CSS中@import的内容,可让您在另一个JavaScript文件中包含一个JavaScript文件? #1楼 而不是在运行时添加,而是使用脚本在上传之前进行串联. ...

  5. java jar metainf_java – 从生成的jar文件中排除META-INF / maven文件夹

    我正在尝试创建一个jar文件,其中包含jar中提取的所有必需类.但对于像 log4j这样的少量依赖jar,它会在META-INF / maven / *中创建一些文件夹.我有一个限制,我将放置生成的j ...

  6. SQL导入文本错误:大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)。

    服务器: 消息 4832,级别 16,状态 1,行 1 大容量插入: 在数据文件中遇到意外的文件结尾 (EOF). 服务器: 消息 7399,级别 16,状态 1,行 1 OLE DB 提供程序 'S ...

  7. gulp 批量添加类名 在一个任务中使用多个文件来源

    1.首先安装环境 1.安装gulp: npm install gulp 2.安装gulp-clean-css npm install gulp-clean-css 3.安装gulp-css-wrap ...

  8. linux 查看文件中数据类型,Linux下使用file命令确定文件中数据的类型-文件类型...

    青年是学习智慧的时期,中年是付诸实践的时期.--卢梭 在Linux系统中查看一个文件之前,要先确定该文件中数据的类型,之后再使用适当的命令或方法打开该文件. 与windows系统不同,在Linux系统 ...

  9. 编写图形界面程序,接受用户输入的5个浮点数据和一个文件目录名,将这五个数据保存在该文件中,再从文件中读取出来并且进行从大到小排序,然后再一次追加保存在该文件中。

    File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的 ...

最新文章

  1. Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
  2. 在C#里怎样获得当前Windows操作系统的语言种类?以及如何知道当前Windows版本?...
  3. 计算机专业哪家强,计算机专业哪家强?这4所大学水平一流,网友:都是“大佬”级别...
  4. HDU - 7072 Boring data structure problem 双端队列 + 思维
  5. 一直认为in,exists 不走索引,被同事鄙视了……
  6. Java 8 Optional类深度解析(转)
  7. 惠普打印机136w硒鼓芯片怎么清零_HP惠普打印机清零技巧
  8. 2022年除了深度学习,人工智能算法有可能突破的10个方向
  9. C10K问题及解决方案
  10. 分辨率,像素,像素密度易懂
  11. linux sed替换行,shell - 使用Sed替换包含字符串的整行
  12. 树莓派装专用服务器系统,Raspberry Pi 树莓派安装64位系统打造全功能NAS [全网最正确操作记录]...
  13. 如何修改apk文件,反编译(转)
  14. Python pypinyin库,实现文字转拼音
  15. Greenplum初始化数据库时出现gpadmin-[ERROR]:-gpstart error: Do not have enough valid segments to start the arr
  16. mpVue的基本介绍
  17. HTTP请求中POST与GET的区别
  18. ELISPOT酶联免疫斑点技术说明书
  19. 如何创建小程序商店?
  20. 利用Div CSS(嵌套 盒模型)布局页面完整实例流程

热门文章

  1. 那位五十多岁的创业者给我的启示!
  2. 后端架构设计,如何扛住100亿次请求?
  3. Java处理高并发、高负载类网站的优化方法
  4. 记一次有惊无险的 JVM 优化经历!
  5. 如何解决组织协同?用智办事更简单!
  6. 私藏的7个实用工具,干货多到爆炸!
  7. 打工人必备的8款冷门软件,每一款都让人相见恨晚!
  8. [置顶] ros的navigation之———gmapping应用详解(in ros)
  9. 归并排序是稳定的排序
  10. JavaScript的主要功能