`
seavers
  • 浏览: 173334 次
  • 来自: ...
社区版块
存档分类
最新评论

利用bat反编译jar包生成源码jar包

    博客分类:
  • java
阅读更多

(这篇文章是从blog.csdn.net/seavers导入的, 最新版本见: http://seavers.iteye.com/blog/1416013,  )

反编译所使用的工具是jad.exe,笔者的测试版本是1.5.8e,压缩与解压缩使用的是WinRAR

jad.exe 可反编译一个class文件为java文件,笔者的BAT可通过此工具将一个jar包反编译成一个完整的源码jar包,同时生成的目录也可以在eclipse中使用

jad.exe 官方网站 : http://www.kpdus.com/jad.html (英文的)

BAT脚本见后

安装方法如下:

复制粘贴后面的文本为一个BAT,然后与jad.exe放在同一个目录即可(WinRAR需正确安装)

使用方法如下: (有3种使用方法, 使用其中任意一种均可,结果是相同的)

1. 双击BAT,提示输入需反编译的jar包,请输入完整的jar路径

2. 直接将 jar 包拖放在bat上

3.右键点击jar包,选择打开方式,然后选择使用该BAT来执行

运行后的结果如下:

在jar包的同一目录下, 将会生成一个目录,一个jar,目录下有两个子目录,一个目录存放解压缩后的所有class,一个目录存放反编译后的java文件,jar包是用源码压缩生成的

几点说明:

1. 工具中使用的WinRAR是自动识别安装路径的,请正确安装WinRAR

2. 工具使用的jad.exe,须与BAT放在同一目录,或者放在PATH可搜索到的位置

3. jar包中非class文件,也会完整拷贝在源码目录下,方便生成源码工程

4. 生成的目录名与原 jar 包同名, 生成的源码 jar 包的文件名是在原名称中加入-src而生成, 如原 jar 包为 jdbc.jar, 则生成的目录名为 jdbc, 而生成的源码jar 包名则为 jdbc-src.jar

5. eclipse使用方法1, 将BAT生成的目录放在workspace中,然后创建同名工程

6. eclipse使用方法2,在 eclipse 中创建同名工程,使用src为源文件目录,bin为class文件目录,然后将BAT生成的目录拷贝在eclipse的workspace中

 

该BAT为 blog.csdn.net/seavers 原创, BAT源码仅供个人学习,使用,研究,未经本人同意,不可用于商业用途

 

 

BAT源码如下: (请直接拷贝在BAT文件中)

 

::作者:seavers
::
blog:blog.csdn.net/seavers(在此blog上首次发布该bat)
::
功能:反编译jar包,生成对应的源码jar包,详细说明方档请登陆我的blog


::打开/关闭命令行显示
@echoOFF

::::::::::::::::::::::::::::解析并设置变量::::::::::::::::::


::查找jad文件的路径,这里取的jad.exe,表示从PATH中查找,如果想手工指定,需在这里修改
setJAD_PATH=jad.exe

::设置解压出的class文件存放的位置(相对路径)
setCLASS_PATH=bin

::设置反编译后的java文件存放的位置(相对路径)
setJAVA_PATH=src

::检查JAD文件是否存在bat所在目录下,
ifexist"%~dp0jad.exe"setJAD_PATH=%~dp0jad.exe

::判断参数个数,如果没有文件参数,则报错,这里也可以使用%~f1,也可以用%1,没有关系,之后要去掉引号
if""%1""==""""(set/PJAR_PATH=请输入要反编译的JAR包的路径...)else(setJAR_PATH=%~f1)
if'%JAR_PATH:~0,1%%JAR_PATH:~0,1%'=='""'setJAR_PATH=%JAR_PATH:~1,-1%

::获取源代码存放的路径,这里取JAR包所在路径,然后去掉".jar"作为文件夹路径,这里的LOCATION不能带引号,因为下面还要追加字符)
if""%2""==""""(setLOCATION=%JAR_PATH:~0,-4%)else(setLOCATION=%~f2)

::::::::::::::::::::开始执行程序:::::::::::::::::::::::::::::::

::获取WinRAR.exe的路径,设置在临时变量rarpath中
for/f"usebackqdelims="%%iin(`ftypeWinRAR`)dosetRARPATH=%%i

::对rarpath进行解析,去掉前面7个节符,去掉后面5个字符,得到WinRAR执行路径
::
路径大致是这样的形式Winrar="C:/ProgramFiles/WinRAR/WinRAR.exe""%1"
setRAREXE=%RARPATH:~7,-5%

::调用WinRAR命令,解压文件到指定目录的bin目录下
%RAREXE%x"%JAR_PATH%""%LOCATION%/%CLASS_PATH%/"

::遍历整个bin目录,取所有class文件,调用jad.exe反编译出源码,非class的拷贝到src目录下
::
打开变量延迟功能
setlocalEnableDelayedExpansion
for/r"%LOCATION%/bin"%%iin(*.*)doif'%%~xi'=='.class'("%JAD_PATH%"-o-r-sjava-ff-b-nonlb-space-t-8-d"%LOCATION%/%JAVA_PATH%""%%~si")else(setTEMP_PATH=%%i&echof|xcopy"%%i""!TEMP_PATH:%LOCATION%/bin=%LOCATION%/src!")
endlocalEnableDelayedExpansion

::将产生的java文件压缩成源码文件
%RAREXE%a-ep1-r"%LOCATION%-src.zip""%LOCATION%/%JAVA_PATH%/*.*"


::::::::::::::::::程序结束,显示运行结果::::::::::::::::::::::
echo*********************************************
echo程序运行结束
echo解析的JAR包的路径为%JAR_PATH%
echo解压缩工具WinRAR.exe的路径为%RAREXE%
echo反编译工具JAD.exe的路径为%JAD_PATH%
echo解析后的文件的根路径为%LOCATION%
echo解析后的class文件存放在%LOCATION%/%CLASS_PATH%
echo解析后的java文件存放在%LOCATION%/%JAVA_PATH%
echo压缩后的java文件存放在%LOCATION%-src.zip
echo*********************************************
pause


 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Android反编译apk到java源码的方法[收集].pdf

    Android反编译apk到java源码的方法 ...Android反编译apk到java源码的方法可以使用apktool、dex2jar和JD-GUI工具实现。这些工具可以帮助开发者快速地反编译apk文件,获取java源代码和其他资源文件。

    反编译工具包

    本压缩包提供的是一套完整的反编译工具,包括"apktool.jar"、"apktool.bat"、"jd_gui.exe"和"dex2jar"文件夹,这些工具对于Android开发者、安全研究人员以及想要深入理解APK结构的人来说是必不可少的。 1. **...

    反编译jar文件,导出java源码 jd-gui 0.3.5 and dex2jar 0.0.9.15 and jar2dex.zip

    标题提到的"反编译jar文件,导出java源码 jd-gui 0.3.5 and dex2jar 0.0.9.15 and jar2dex.zip"就是一个这样的场景,它涉及到两个主要的反编译工具:JD-GUI和dex2jar。 **JD-GUI** 是一个直观的图形用户界面工具,...

    Android APK反编译工具包(全)

    下载反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。 dex2jar:apk反编译工具 ,是将apk中的classes.dex转化成jar文件 jdgui:源码查看工具,是一个反...

    Android反编译工具包(升级)

    下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。 apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件 源码查看工具jdgui,是一个反...

    Android 最新反编译工具(2013-06)

    下载反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。 dex2jar:apk反编译工具 ,是将apk中的classes.dex转化成jar文件 jdgui:源码查看工具,是一个反...

    反编译:app查看源码

    总的来说,Android反编译是一个复杂且有一定挑战性的过程,涉及到工具如dex2jar和JD-GUI的使用。虽然可以让我们洞察APK应用的工作方式,但也要意识到可能遇到的困难和潜在的法律风险。在学习和研究的过程中,我们...

    反编译apk(一键反编译)

    1. 下载成功后解压 2. 将apk文件放到onekey-decompile-apk目录下 3. 将apk文件拖拽到_onekey-decompile-apk.bat上 ... 会在onekey-decompile-apk目录下生成和apk同名的jar文件(dex2jar反编译出来的class)

    apk反编译工具包apktool集合

    这个"apk反编译工具包apktool集合"就是为了满足这样的需求而提供的。该压缩包包含了三个核心工具,分别是apktool.bat、apktool.jar以及dex2jar工具包。 首先,我们要了解什么是APK。APK是Android应用程序的包文件...

    dex2jar反编译apk(工具及流程)

    下面,我们将详细探讨如何使用dex2jar来反编译APK以及相关的知识点。 首先,我们需要了解dex2jar的工作原理。DEX文件是Android运行时环境Dalvik虚拟机执行的代码格式,而JAR文件则包含Java类文件,可以被Java虚拟机...

    Android反编译apk到java源码的方法.pdf

    例如,使用`apktool`解压并反编译资源文件,然后用`dex2jar`和`jad`或`JD-GUI`反编译.dex文件得到Java源码。 请注意,反编译APK可能涉及到版权和法律问题,仅应在合法和道德允许的情况下进行。在进行反编译之前,...

    apktool的bat文件及jar包

    总结起来,apktool是Android开发中不可或缺的工具,它通过bat文件和jar包的配合,为开发者提供了查看和修改APK的途径,大大提升了对Android应用的理解和定制能力。在实际操作中,正确理解和熟练运用apktool,能够极...

    Android 反编译工具-dex2jar-2.0

    虽然反编译的代码可能无法完全恢复到原始的Java源码,但大多数逻辑和函数结构应该是可以理解的。 然而,需要注意的是,由于Java字节码的特性,反编译后的代码可能会存在一些问题,比如变量名和方法名被转换为数字,...

    android反编译工具

    生成classes_dex2jar.jar然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码 2、apk反编译生成程序的源代码和...

    dex2jar反编译工具

    5. **查看源码**:生成的.jar文件可以用Java反编译工具,如JD-GUI或JAD来查看。这些工具能将字节码转换成更接近人类可读的Java源代码形式。需要注意的是,由于反编译过程的复杂性,源码可能不完全与原始Java代码一致...

    apk反编译三件套,apktool.bat,apktool_2.5.0.jar ,dex2jar.zip,jd-gui-windows-1.6.6.zip

    这里提到的"apk反编译三件套"包括了apktool.bat、apktool_2.5.0.jar、dex2jar.zip和jd-gui-windows-1.6.6.zip,它们是反编译过程中的关键工具。 首先,让我们逐一了解这些工具的作用: 1. **apktool.bat**:这是...

    APK反编译成java源码

    APK反编译成Java源码是一个常见的技术实践,尤其对于开发者来说,它能帮助我们理解应用程序的工作原理、查看代码实现或进行逆向工程。以下将详细介绍如何将APK文件转换为Java源代码。 首先,我们需要准备三个关键...

Global site tag (gtag.js) - Google Analytics