`

android的一款整合jad,apktool,dex2jar的脚本

 
阅读更多
#! /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

    标题 "dex2jar_2.0" 涉及到的是Android应用开发中的一个重要工具,它主要用于将Android应用的Dalvik Executable (DEX) 文件转换为Java类库的Java Archive (JAR) 文件。这个过程被称为反编译,因为DEX文件是Android...

    dex2jar 最新版本

    dex2jar是一款在Android开发领域常用的工具,主要用于将Android应用的.dex(Dalvik Executable)文件转换成Java字节码的.jar文件。这样做的目的是为了便于开发者对APK进行逆向工程,分析代码逻辑,或者进行二次开发...

    dex2jar反编译工具

    【dex2jar反编译工具】是Android应用逆向工程中常用的一款工具,它主要用于将APK中的.dex(Dalvik Executable)文件转换为.jar格式的Java字节码文件,以便于开发者或安全研究人员能够阅读和理解APK的源代码结构。...

    反编译批处理

    `dex.bat` 可能包含了调用dex2jar命令行工具,将DEX文件转换为JAR的步骤,而`apk.bat`则可能包含了使用apktool解包APK,然后反编译DEX文件的命令。 批处理脚本的使用简化了手动执行这些复杂操作的流程,提高了工作...

    android反编译工具

    本篇文章将详细介绍三个常用的Android反编译工具:Apktool、JD-GUI和Dex2Jar。 **Apktool** 是一个强大的Android反编译工具,主要用于解析APK文件,提取出资源文件、XML布局、图片等,并可以重新打包、签名,使我们...

    反编译整合工具包

    这个工具包整合了多个强大的工具,包括apktool、apktool-install以及Dex2jar,它们各自在反编译过程中扮演着关键角色。 首先,我们来看一下apktool。这是一个由Izzy On Droid开发的开源工具,主要用于反编译APK文件...

    apktool.zip

    然后,它使用 Dex2jar 将DEX转换为JAR文件,再通过JD-GUI或JAD进行Java源代码级别的反编译。对于资源文件,Apktool能够保留其原始的XML结构,便于理解和修改。 2. **使用步骤** 使用Apktool通常涉及以下几个步骤...

    apktool2.3.0

    Apktool 2.3.0 是一个广泛使用的开源工具,专门用于Android应用程序(APK)的反编译和重新打包。这个版本的Apktool提供了对APK文件的深入洞察,让开发者、安全研究人员或者爱好者能够查看和修改APK的源代码、资源...

    apk反编译套装 使用教程

    本教程将详细介绍如何使用一系列工具,包括apktool、dex2jar、JD-GUI、jad和PFN,来完成这一过程。 首先,我们来看`apktool-install-windows-r04-brut1.tar.bz2`,这是Apktool的Windows版本安装包。Apktool是一个...

    Android反编译工具.rar

    通过`d2j-dex2jar.sh`脚本,我们可以将APK中的.dex文件转换为.jar文件,然后再使用JD-GUI或JAD进行反编译。 反编译的过程中,我们需要注意版权问题,因为未经许可的反编译可能涉及侵犯他人的知识产权。同时,反编译...

    android反编译工具集合

    Dex2jar工具将Dalvik Executable (DEX) 文件转换为Java类的jar包,使得开发者可以用Java反编译器(如JD-GUI或JAD)来查看和分析Java源代码。DEX文件是Android应用运行时的字节码格式,而dex2jar使得我们可以更方便...

    Android反编译

    2. ** JD-GUI ** 或 ** JAD **:这两款工具是Java反编译器,用于将转换后的JAR文件反编译成可读的Java源代码。JD-GUI提供了一个图形用户界面,方便查看和搜索代码;而JAD则支持命令行操作,更适合自动化脚本。 3. *...

    反编译软件jad.bat

    在IT行业中,反编译是一种技术,用于将已编译的代码转换回源代码的形式,以便于理解、分析或修改。...在实际应用中,结合其他工具如dex2jar、Apktool等,可以构建更完整的安卓应用分析和调试环境。

    Android apk反编译

    总之,Android APK反编译是一个涉及多种工具和技术的过程,包括dex2jar、apk2java、Apktool等。了解这些工具的使用和反编译的原理,可以帮助开发者更好地理解和调试APK,同时也要注意尊重知识产权,合理合法地进行...

    Android反编译工具类.zip

    6. **dex2jad**:另一种DEX到Java字节码的转换工具,虽然不如dex2jar常用,但在某些情况下可能提供不同的视图。 7. **FRIDA**:这是一个动态代码插桩工具,可以在运行时对应用程序进行调试和分析。它可以注入...

    android渗透测试指导及其工具

    在Android环境中,这可能涉及获取目标应用的APK文件,使用静态分析工具(如Apktool、dex2jar)反编译代码,查找敏感信息暴露、权限滥用等问题,然后通过动态分析(如 Frida、Xposed)验证漏洞。 1. **信息收集**:...

    android反编译工具(全)

    JAD则是一款命令行工具,适合自动化脚本处理。 4. **Apktool**:Apktool是Android应用反编译的重要工具,它不仅能解包APK,提取资源文件如XML布局、图片等,还能重新打包并签名,使得我们可以在保持原有资源结构的...

    Android源代码反编译工具包

    4. **反编译DEX文件**:使用dex2jar将.dex文件转换为.jar,然后利用JD-GUI或JAD进行Java源码级别的反编译。 5. **阅读和分析源码**:结合Apktool解包后的资源文件和反编译出的源码,进行深入分析。 6. **使用Frida...

Global site tag (gtag.js) - Google Analytics