android的一款整合jad,apktool,dex2jar的脚本
来源:互联网 发布:设计协作软件 编辑:程序博客网 时间:2024/04/29 18:40
http://wcf1987.iteye.com/blog/1487540
- #! /usr/bin/env python
- #coding=utf-8
- import os
- import subprocess
- import time
- import shutil,sys
- import zipfile
- apksrc="C:\\test\\test.apk"
- apkdest=""
- copyzip=""
- dex2dir=""
- jadsrc=""
- projectcodepath=""
- apktoolpath=r"F:\\bishe\android\apktool\apktool.bat"
- dex2jarpath=r"F:\\bishe\android\dex2jar-0.0.9.8\dex2jar-0.0.9.8\dex2jar.bat"
- jadexepath=r"F:\\bishe\android\jad158g\jad.exe"
- def apktools(src,dest):
- cmd_list=apktoolpath+r" d -f "+src+" "+dest
- print cmd_list
- process = subprocess.Popen(cmd_list)
- while 1:
- ret1 = subprocess.Popen.poll(process)
- if ret1 == 0:
- print process.pid,'end'
- break
- elif ret1 is None:
- time.sleep(1)
- else:
- print sub2.pid,'term'
- break
- print "apk tools end"
- def jad(src,dest):
- codesrc=dest+"src\\"
- if((os.path.exists(codesrc))==False):
- os.makedirs(codesrc)
- cmd_list=jadexepath+" -o -r -d "+codesrc+" -s java "+src+"**\\*.class"
- print cmd_list
- process = subprocess.Popen(cmd_list)
- while 1:
- ret1 = subprocess.Popen.poll(process)
- if ret1 == 0:
- print process.pid,'end'
- break
- elif ret1 is None:
- time.sleep(1)
- else:
- print sub2.pid,'term'
- break
- print "apk jad code successfully"
- def dex2jar(src,dest):
- cmd_list=dex2jarpath+" "+src+"classes.dex"
- print cmd_list
- process = subprocess.Popen(cmd_list)
- while 1:
- ret1 = subprocess.Popen.poll(process)
- if ret1 == 0:
- print process.pid,'end'
- break
- elif ret1 is None:
- time.sleep(1)
- else:
- print sub2.pid,'term'
- break
- print "apk dex2jar.bat successfully"
- def unzip(src,dest):
- print src
- f = zipfile.ZipFile(src)
- f.extractall(dest)
- f.close()
- print "apk unzip successfully"
- def GenerateProCode(dest):
- print jadsrc+"src"
- print dest
- shutil.copytree(jadsrc+"src\\",dest)
- shutil.copytree(apkdest,dest)
- def adbinstall(src):
- cmd_list="adb install "+src
- print cmd_list
- process = subprocess.Popen(cmd_list)
- while 1:
- ret1 = subprocess.Popen.poll(process)
- if ret1 == 0:
- print process.pid,'end'
- break
- elif ret1 is None:
- time.sleep(1)
- else:
- print sub2.pid,'term'
- break
- print "apk install successfully"
- def init(src,dest):
- global apkdest
- global dex2dir
- global copyzip
- global jadsrc
- global projectcodepath
- copyzip=os.path.dirname(src)+"\\"+"dex2jar.zip"
- if dest=="":
- apkdest=os.path.dirname(src)+"\\ProjectCode\\"
- shutil.copy2(src,copyzip)
- dex2dir=os.path.dirname(src)+"\\dex\\"
- jadsrc=os.path.dirname(src)+"\\jad\\"
- init(apksrc,apkdest)
- apktools(apksrc,apkdest)
- unzip(copyzip,dex2dir)
- dex2jar(dex2dir,apkdest)
- unzip(dex2dir+"classes_dex2jar.jar",jadsrc)
- jad(jadsrc,apkdest)
- adbinstall(apksrc)
代码如上,就是对一个apk文件自动解压缩,生成最终代码在projectcode中,包括了解压缩后的AndroidManifest.xml,反编译的java文件,资源文件等等
- android的一款整合jad,apktool,dex2jar的脚本
- android 反编译 apktool 的使用 dex2jar
- dex2jar apktool 工具的使用
- dex2jar和apktool的使用
- android apk反编译 apktool、dex2jar、jd-gui工具的使用
- ubuntu下Android反编译详细教程-apktool,dex2jar,jd-gui的使用
- android一款软件的反编译实现(APKtool)
- APK的反编译工具,Apktool,Dex2jar,JD-GUI等
- APK的反编译工具,Apktool,Dex2jar,JD-GUI等
- APK的反编译工具,Apktool,Dex2jar,JD-GUI等使用
- apktool、dex2jar、jd-gui的区别及详解
- 反编译:apktool、dex2jar、jd-gui的区别及详解
- apktool+dex2jar+xjad反编译android程序
- apk编译/反编译工具baksmali和smali用法及apktool+dex2jar+jd_gui的用法
- MAC系统下apktool和dex2jar和jd-Gui的安装
- Linux下APK反编译(Apktool dex2jar jd-gui的下载和使用)
- apktool,smali,dex2jar
- android反编译小结:apktool/AXMLPrinter2.jar/dex2jar.bat/jd-gui/
- Android编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)
- sql server中的用户临时表和全局临时表的区别
- 织梦5.6升级到5.7,发文章时无法“把数据保存到数据库主表 `dede_archives` 解决办法
- java常用排序
- 微软解释开发者如何从Windows Store赚到钱
- android的一款整合jad,apktool,dex2jar的脚本
- ubuntu 11.10下成功配置环境变量后adb无效
- QT中的SOCKET编程
- 使用JFreeChart在网页上绘制平滑曲线
- 总结列表
- 桌面应用框架 OneRing
- Spring定时任务配置方法
- flex与javascript互相通信:使用ExternalInterface
- ZOJ 3627 Treasure Hunt II