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

利用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


 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    将apk文件反编译成java源码

    在命令行模式下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex ,生成classes.dex.dex2jar.jar 3.运行JD-GUI工具(它是绿色无须安装的) 打开上面的jar文件,即可看到源代码 测试成功...

    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,是一个反...

    反编译工具包

    反编译必须的工具类,包含apktool.jar,apktool.bat,jd_gui.exe,dex2jar文件夹

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

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

    反编译apk(一键反编译)

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

    android反编译工具

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

    apk反编译+源码查看+重新打包+签名

    包含apktool.jar,apktool.bat,反编译源码工具,源码查看工具,签名工具

    APK反编译 dex2jar jd-gui

    2、cmd命令行下进入到dex2jar-0.0.7.9-SNAPSHOT目录下,输入命令dex2jar.bat classes.dex ,等待反编译完成,会在dex2jar-0.0.7.9-SNAPSHOT目录下生成classes.dex.dex2jar.jar; 3、打开jd-gui.exe,openfile打开...

    apk反编译工具 查看源码

    apk反编译工具 包内有使用说明第一步:把需要反编译的**.apk文件进行解压,把"**.dex"这个文件搞出来.例如放在F:\age\**.dex 第二步:如果你把dex2jar-0.0.7-age放在了F盘里.打开命令行: F:\dex2jar-0.0.7-age ...

    android 源码反编译.rar

    android 源码反编译.rar android 源码 反编译 一.反编译Apk得到Java源代码 转载自:http://hi.baidu.com/%CB%BF%D4%B5%CC%EC%CF%C2/blog/item/2284e2debafc541e495403ec.html 工具下载:需用到dex2jar和JD-GUI这2...

    android app 应用 反编译工具包

    1 打开cmd 进入反编译工具包 apktool 目录下 执行 apktool.bat d -f [app.apk] -o [资源文件夹] 2 将app.apk 后缀换成 app.rar 然后解压到 当前文件夹 里面有改 classes.dex 3 将classes.dex 文件拷贝到dex2jar ...

    apk反编译工具包apktool集合

    此压缩包提供了apk反编译所需要的三个工具,apktool.bat,apktool.jar以及dex2jar工具包的整合。为Android开发人员提供解析apk源码工具,借鉴别人的布局资源等

    android反编译(dex2jar.zip)

    1、把 class.dex 拷贝到 dex2jar.bat 所在目录,直接拖动 class.dex 到 dex2jar.bat,生成 classes.dex.dex2jar.jar。 2、用 rar 解压出 jar 文件中的 class 文件,然后 用jad 或 DJ Java Decompiler 反编译工具将 ....

    apk 反编译

    可使用eclipse依照资源文件AndroidManifest.xml中内容新建一个工程,然后将所有资源文件和源码分别拷贝到工程下,刷新项目即可(会报错,会有很多xx,不能运行,凑合着能看就行,apk越复杂反编译越不准确)。

    Craining的APK反编译工具下载免费版.rar

    在对apk文件反编译时, 只需将其重命名为zip包, 解压后双击里面的 calsses.dex文件(该文件图标是一个枫叶)即可得到反编译后的java源代码! Craining的APK反编译工具在Windows7下测试过, Windows的其它系统应该也可以!...

    Android反编译工具

    android反编译,android的apk反编译工具,适合大家一起学,可以把android生成的apk转为java代码,希望对大家有用。 一、更改apk文件的后缀名,如:aa.apk改成aa.zip 二、用zip解压缩aa.zip文件 三、从解压缩的文件夹中...

    android安卓反编译

    下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下, 打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f test...

    apk反编译:获取素材或者源代码

    1.将你的pak拷贝到apktool-install-windows-r04-brut1文件夹下,运行cmd, apktool d xx.apk 生成一个文件夹,其中包含一些apk素材。...3.打开jd-gui.exe,选择上一步生成的jar文件,即可看到源码。

Global site tag (gtag.js) - Google Analytics