`
maidingding
  • 浏览: 13323 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java反编译的一小心得于体会

阅读更多

Jad.exe应该很多朋友用过,也知道其中的用法,我就不在累述了。

自己写了个小批处理是联合winrar用的,主要是解压jar包用的。

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

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


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

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

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

::检查JAD文件是否存在bat所在目录下,
if exist "%~dp0jad.exe" set JAD_PATH=%~dp0jad.exe

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

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

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

::获取WinRAR.exe的路径,设置在临时变量rarpath中
for /f "usebackq delims=" %%i in (`ftype WinRAR`) do set RARPATH=%%i

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

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

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

::将产生的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

注意要和jad.exe放在一起,不然你可以根据我写的批处理修改下,我知道你有办法的。

看到很多网友问如何把java编译好了之后的class文件反编译为java可执行文件。

我的方法与大家分享下,有好的办法可以留言于我。

1.把jad.exe和我写的小批处理放在一个文件夹下

2.把需要代反编译的class文件也放在这个文件夹下面。

 

3.打开jad看里面有什么用法

4.利用:jad -s java *.class命令来完成反编译

 5.得到你所想要的java文件。


 

  • 大小: 16.1 KB
  • 大小: 48.9 KB
  • 大小: 18.9 KB
分享到:
评论

相关推荐

    java反编译工具

    虽然反编译的结果可能与原始的.java文件略有不同,但大部分情况下仍然能理解代码的逻辑和结构。 JAD是另一个知名的Java反编译工具,它提供命令行接口,适合于自动化脚本或者集成到其他工具链中。FernFlower则是一个...

    JAVA反编译包_小茶杯_jd-gui-1.6.6.jar.7z

    "JAVA反编译包_小茶杯_jd-gui-1.6.6.jar.7z" 是一个包含Java反编译工具JD-GUI的压缩包,版本为1.6.6,由"小茶杯"社区提供。JD-GUI是一个独立的图形用户界面工具,它能够直接打开并显示Java字节码的源代码。 JD-GUI...

    咖啡图形的java反编译工具(实用)

    这款名为“咖啡图形的java反编译工具”很可能是一款界面友好的图形化工具,专为简化这个过程而设计。 Java字节码是一种中间语言,由Java编译器生成,可以在任何支持Java虚拟机(JVM)的平台上运行。然而,由于字节...

    java反编译程序

    **Procyon** 是一个全面的Java编译器和反编译器套件,除了反编译功能,它还支持编译和语法分析。Procyon生成的源代码质量高,尤其是在处理Java 8及更高版本时表现优秀。 反编译在以下场景中尤其有用: 1. **代码...

    java反编译小工具

    本篇文章将介绍一个名为"java反编译小工具"的程序,该工具可能是为简化这个过程而设计的。 首先,我们提到的"java反编译.exe"很可能是这个工具的可执行文件,用于在Windows操作系统上运行。通常,.exe文件是Windows...

    JAVA反编译软件(可将class文件反编译为java文件)

    Java反编译是Java开发中一个重要的辅助工具,它能够帮助开发者查看已编译的`.class`文件中的源代码,即使原始的`.java`源文件已经丢失或未被提供。这个过程对于理解类库的工作原理、逆向工程、调试、学习或者分析...

    jd-gui最好的JAVA反编译工具

    与其他编程语言相比,Java的反编译更为复杂,因为Java的字节码是经过优化的,不直接映射到源代码行。jd-gui通过解析字节码并尝试重构源代码结构,实现了高质量的反编译效果。 最后,“反编译工具”这一标签表明jd-...

    java jar反编译工具 java Class反编译工具

    JD-GUI是一款直观的图形用户界面工具,专门用于反编译Java的Class文件,从而帮助开发者查看和理解字节码背后的源代码。它不仅适用于单个Class文件,还可以处理包含多个Class文件的.jar档案。在Java开发中,JD-GUI...

    Java反编译工具jui

    Java反编译是Java开发中一个重要的辅助工具,主要用于查看和理解Java字节码,将已编译的.class文件或.jar文件转换回源代码形式。这在进行逆向工程、学习开源项目、修复bug或者理解未知代码的工作流程时非常有用。...

    java反编译工具 java反编译工具

    1. **Java字节码与反编译** Java程序在运行前会被编译成字节码,这是一种平台无关的中间语言,由JVM(Java虚拟机)执行。反编译是将这种字节码转换为人类可读的Java源代码,这个过程可以揭示程序的逻辑结构,尽管...

    java反编译工具 jad

    jad 是应用最广泛的java 反编译工具;其本身是命令行工具;其他很多用具是在jad内核的基础上加了一个图形界面;比如我上传的资源、Cavaj Java Decompiler  以下假设jad.exe在c:\java目录下  一、基本用法  ...

    JAVA反编译文件解决中文乱码

    反编译是将字节码还原为接近原生的源代码的过程,常用工具有JD-GUI,它是一款直观的Java反编译器。然而,当这些.class文件中包含中文字符时,如果没有正确处理编码,可能会出现中文乱码的问题。本文将详细介绍如何...

    安卓、Java反编译工具

    本文将深入探讨“安卓、Java反编译工具”这一主题,包括它们的工作原理、常用的反编译工具以及如何使用这些工具来解析编译过的文件。 首先,我们需要理解编译和反编译的基本概念。编译是将源代码(如Java或Android...

    JAVA反编译工具

    标签“JAVA 反编译 工具”进一步明确了主题,强调了该工具与Java编程语言及其反编译过程密切相关,同时也是一个工具,可能具备图形化界面或简单的命令行接口,以提高用户体验。 压缩包子文件的文件名称列表仅提供了...

    jd-gui java反编译的工具,非常好用

    java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译...

    JAVA反编译和unicode转字符.rar

    Java反编译与Unicode字符转换是Java开发过程中两个重要的技术环节。反编译是指将已编译的字节码(.class文件)转换回源代码的过程,这对于理解已有的类库或者进行逆向工程非常有用。Unicode是国际通用的字符编码标准,...

    java 反编译工具

    Java反编译工具是开发过程中的一种实用工具,主要用于查看或理解已编译的Java字节码(.class文件)的源代码。这类工具对于开发者来说非常有用,因为它们可以帮助我们了解第三方库或无法获取源代码的类的工作原理,...

Global site tag (gtag.js) - Google Analytics