批量提取出apk檔案中的classes.dex檔案,apkclasses.dex

來源:互聯網
上載者:User

批量提取出apk檔案中的classes.dex檔案,apkclasses.dex
應用情境

如果需要批量分析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 osimport zipfilepath="/home/chicho/test/test/"  # this is apk files' store pathdex_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 files        os.rename(APK,newname)    if APK.endswith(".zip"):        apkname = portion[0]        zip_apk_path = os.path.join(path,APK) # get the zip files        z = zipfile.ZipFile(zip_apk_path, 'r') # read zip files        for 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 dexfilepath                f.write(z.read(filename))print "all work done!"



利用這個方法還可以從apk檔案中批量的提取出其他檔案。比如說so檔案等。
















轉載註明出處:http://blog.csdn.net/chichoxian/article/details/42382695




















聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.