#! /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文件,资源文件等等
分享到:
相关推荐
标题 "dex2jar_2.0" 涉及到的是Android应用开发中的一个重要工具,它主要用于将Android应用的Dalvik Executable (DEX) 文件转换为Java类库的Java Archive (JAR) 文件。这个过程被称为反编译,因为DEX文件是Android...
dex2jar是一款在Android开发领域常用的工具,主要用于将Android应用的.dex(Dalvik Executable)文件转换成Java字节码的.jar文件。这样做的目的是为了便于开发者对APK进行逆向工程,分析代码逻辑,或者进行二次开发...
【dex2jar反编译工具】是Android应用逆向工程中常用的一款工具,它主要用于将APK中的.dex(Dalvik Executable)文件转换为.jar格式的Java字节码文件,以便于开发者或安全研究人员能够阅读和理解APK的源代码结构。...
`dex.bat` 可能包含了调用dex2jar命令行工具,将DEX文件转换为JAR的步骤,而`apk.bat`则可能包含了使用apktool解包APK,然后反编译DEX文件的命令。 批处理脚本的使用简化了手动执行这些复杂操作的流程,提高了工作...
本篇文章将详细介绍三个常用的Android反编译工具:Apktool、JD-GUI和Dex2Jar。 **Apktool** 是一个强大的Android反编译工具,主要用于解析APK文件,提取出资源文件、XML布局、图片等,并可以重新打包、签名,使我们...
这个工具包整合了多个强大的工具,包括apktool、apktool-install以及Dex2jar,它们各自在反编译过程中扮演着关键角色。 首先,我们来看一下apktool。这是一个由Izzy On Droid开发的开源工具,主要用于反编译APK文件...
然后,它使用 Dex2jar 将DEX转换为JAR文件,再通过JD-GUI或JAD进行Java源代码级别的反编译。对于资源文件,Apktool能够保留其原始的XML结构,便于理解和修改。 2. **使用步骤** 使用Apktool通常涉及以下几个步骤...
Apktool 2.3.0 是一个广泛使用的开源工具,专门用于Android应用程序(APK)的反编译和重新打包。这个版本的Apktool提供了对APK文件的深入洞察,让开发者、安全研究人员或者爱好者能够查看和修改APK的源代码、资源...
本教程将详细介绍如何使用一系列工具,包括apktool、dex2jar、JD-GUI、jad和PFN,来完成这一过程。 首先,我们来看`apktool-install-windows-r04-brut1.tar.bz2`,这是Apktool的Windows版本安装包。Apktool是一个...
通过`d2j-dex2jar.sh`脚本,我们可以将APK中的.dex文件转换为.jar文件,然后再使用JD-GUI或JAD进行反编译。 反编译的过程中,我们需要注意版权问题,因为未经许可的反编译可能涉及侵犯他人的知识产权。同时,反编译...
Dex2jar工具将Dalvik Executable (DEX) 文件转换为Java类的jar包,使得开发者可以用Java反编译器(如JD-GUI或JAD)来查看和分析Java源代码。DEX文件是Android应用运行时的字节码格式,而dex2jar使得我们可以更方便...
2. ** JD-GUI ** 或 ** JAD **:这两款工具是Java反编译器,用于将转换后的JAR文件反编译成可读的Java源代码。JD-GUI提供了一个图形用户界面,方便查看和搜索代码;而JAD则支持命令行操作,更适合自动化脚本。 3. *...
在IT行业中,反编译是一种技术,用于将已编译的代码转换回源代码的形式,以便于理解、分析或修改。...在实际应用中,结合其他工具如dex2jar、Apktool等,可以构建更完整的安卓应用分析和调试环境。
总之,Android APK反编译是一个涉及多种工具和技术的过程,包括dex2jar、apk2java、Apktool等。了解这些工具的使用和反编译的原理,可以帮助开发者更好地理解和调试APK,同时也要注意尊重知识产权,合理合法地进行...
6. **dex2jad**:另一种DEX到Java字节码的转换工具,虽然不如dex2jar常用,但在某些情况下可能提供不同的视图。 7. **FRIDA**:这是一个动态代码插桩工具,可以在运行时对应用程序进行调试和分析。它可以注入...
在Android环境中,这可能涉及获取目标应用的APK文件,使用静态分析工具(如Apktool、dex2jar)反编译代码,查找敏感信息暴露、权限滥用等问题,然后通过动态分析(如 Frida、Xposed)验证漏洞。 1. **信息收集**:...
JAD则是一款命令行工具,适合自动化脚本处理。 4. **Apktool**:Apktool是Android应用反编译的重要工具,它不仅能解包APK,提取资源文件如XML布局、图片等,还能重新打包并签名,使得我们可以在保持原有资源结构的...
4. **反编译DEX文件**:使用dex2jar将.dex文件转换为.jar,然后利用JD-GUI或JAD进行Java源码级别的反编译。 5. **阅读和分析源码**:结合Apktool解包后的资源文件和反编译出的源码,进行深入分析。 6. **使用Frida...