`
KillEr_Jok
  • 浏览: 148968 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

无源码,修改第三方jar包

 
阅读更多

有一个第三方jar包,没有源码。如何修改里面的源码呢?

比如修改一个BitField.class文件,首先将jar包内容解压到一个目录下面

然后使用jd-gui工具,反编译目下BitField.class文件,然后在该目录下新建BitField.java文件

将反编译的内容,写入其中

cmd命令进入目录

使用javac BitField.java

具体步骤如下 (不好意思,网络不好,晚点上截图。)

 

 

 

1
0
分享到:
评论
4 楼 KillEr_Jok 2014-06-19  
yuyoo4j 写道
1) 在Eclipse建一个java工程. 将jar加到工程的jar依赖中.
2) 使用jd-gui等反编译工具, 将你需要修改的class进行反编译, 并copy出反编译后的代码.
3) 在Eclipse的工程中, 一个类路径与反编译类一样的类源文件(.java).
4) 粘贴copy后的代码, 并修改.
5) 将Eclipse编译出来的 .class文件重新 压缩进jar替换原jar中的.class文件. (常见的用rar软件操作)



学习了
3 楼 KillEr_Jok 2014-06-19  
arsemilan 写道
你的java文件不会引用其他的类?javac能成功吗

下面是代码测试
package test;
import test.depen.Depen;
public class Hello{
	public void print(){
		System.out.println("I'm Hello!");	
	} 
	public static void main (String[] args){
		Depen d = new Depen();
		d.print();
	}
}

package test.depen;
import test.Hello;
public class Depen{
	public void print(){
		System.out.println("I'm Depen!");	
	} 
	public static void main (String[] args){
		Hello h = new Hello();
		h.print();
	}
}

假设都放在G盘根目录下

C:\Users\my>  G:
G:>javac *.java
此时  G盘根目录下会生成Hello.class和Depen.class
但是,此时执行java Hello会出错,执行test.Hello也不行
在G目录下新增目录test/depen,分别将Hello.class和Depen.class放入test/和test/depen中
然后执行java test.Hello就可以看到输出信息了
然后删除源,Hello.java和Depen.java

反编译Depen.class文件,将内容另存为Depen.java,同时修改输出内容
G:>javac Depen.java
同样会生成Depen.class文件,将Depen.class文件拷贝到test/depen目录下。
G:>java test.Hello  可以看到修改后的输出。

修改jar包的时候,就没有这么麻烦了,只需要将jar包内文件结构拷贝到G盘根目录。
然后执行javac xxx.java(反编译代码)  基本就OK了。
2 楼 yuyoo4j 2014-06-13  
1) 在Eclipse建一个java工程. 将jar加到工程的jar依赖中.
2) 使用jd-gui等反编译工具, 将你需要修改的class进行反编译, 并copy出反编译后的代码.
3) 在Eclipse的工程中, 一个类路径与反编译类一样的类源文件(.java).
4) 粘贴copy后的代码, 并修改.
5) 将Eclipse编译出来的 .class文件重新 压缩进jar替换原jar中的.class文件. (常见的用rar软件操作)
1 楼 arsemilan 2014-06-12  
你的java文件不会引用其他的类?javac能成功吗

相关推荐

    Spring使用AOP的三个jar包

    要使用Spring的AOP功能,我们需要引入特定的库,这正是标题中提到的"Spring使用AOP的三个jar包"。 首先,我们来看`aspectjrt.jar`。这个库是AspectJ运行时环境的一部分,包含了运行时织入(runtime weaving)所需的...

    DOM4J第三方jar包(含源码)

    这个第三方jar包包含了DOM4J库以及其源码,这对于开发者来说是一个非常宝贵的资源,因为可以深入理解DOM4J内部的工作原理。 XML(eXtensible Markup Language)是一种标记语言,广泛应用于数据交换、配置文件和文档...

    android使用第三方jar.docx

    方法 2:Android 源码环境下引入第三方 jar 包 在 Android 源码环境下,我们可以使用以下步骤引入第三方 jar 包。首先,将 out/target/common/obj/JAVA_LIBRARIES/powersave_intermediates 下的 classes.jar 文件...

    jarjar-方便Java打包工具,自定义修改jar包包名

    - **类重命名**:避免类名冲突,尤其是当你使用了多个第三方库时。 - **混淆代码**:在发布开源项目或产品时,可以使用jarjar对敏感类进行重命名,增加反编译的难度。 总的来说,jarjar是一个强大而灵活的工具,它...

    android 混淆 去除第三方jar

    本文将深入探讨如何在Android项目中进行混淆,并特别关注如何处理第三方jar包。 首先,了解混淆的基本概念。混淆是通过重命名类、方法和变量,将其转化为简短的无意义名称,以增加逆向工程的难度。Android Studio...

    spring源码及编译所需jar包

    这是因为Spring有时会修改第三方库的源码以满足特定需求,如增强或定制功能。Repack工具可以帮助我们将修改后的类打包进新的jar中,以替换原始版本。 3. **Objenesis**:Objenesis是一个快速的无构造函数实例化库,...

    java源码和jar包下载地址-帮助文档

    5. 第三方库站点:如JCenter、Maven Repository等,也是获取jar包的好地方。 总的来说,Java开发者需要了解如何查找、下载和管理源码及jar包,以便在项目开发中高效地利用已有的工具和库。同时,良好的项目文档是...

    电信采信项目源码和依赖jar包

    在Java项目中,依赖的jar包可能包括了第三方框架(如Spring、MyBatis)、数据库驱动(如MySQL、Oracle)、网络通信库(如HttpClient)、加密解密工具(如BCrypt)、日志管理(如Log4j)等。开发者需要确保所有必要的...

    springboot 热加卸载、使用第三方springboot jar包service、controller

    - **Maven/Gradle依赖**:如果第三方JAR包已经发布到Maven仓库或JCenter,可以在项目的构建文件(如`pom.xml`或`build.gradle`)中添加依赖,Gradle使用`implementation`或`api`,Maven使用`compile`或`provided`。...

    最新Apache POI 5.2.3jar包和源码

    8. **ooxml-lib**: 这个目录可能包含了处理OOXML文件时所需的第三方库,比如XML解析器和样式表处理库。 9. **auxiliary**: 辅助库,可能包含了一些辅助工具或特定功能的实现,例如PPractise,这是一个用于POI性能...

    数据库脚本和三方jar,第三方数据库,Java源码.zip

    第三方jar文件通常由非Java标准库的外部开发者提供,包含特定功能或服务,如网络通信、数据处理、图形用户界面等。在Java项目中,引入这些三方jar可以节省开发时间,因为它们提供了现成的解决方案,而无需从零开始...

    JDK1.6使用BouncyCastle第三方jar支持TSL1.2通过Nginx转发多个HTTPS接口请求

    通过BouncyCastle的第三方jar包可以解决这个问题。也可以使用Nginx的第三方模块ngx_http_proxy_module,配置Nginx作为HTTPS代理服务器解决,不过代码需要修改地方较多。 解压压缩包后文件说明: \doc\conf\nginx....

    数据库脚本和三方jar,第三方数据库,Java源码.rar

    数据库脚本和三方jar,第三方数据库,Java源码.rar这个压缩包文件包含了多个关键的IT技术元素,让我们逐一深入探讨。 首先,我们关注的是“数据库脚本”。在软件开发中,数据库脚本通常指的是用于创建、修改或操作...

    数据库脚本和三方jar,第三方数据库,Java源码.zip.zip

    引入第三方JAR时,需要确保它们与项目的其他依赖兼容,并正确地配置到构建路径或依赖管理工具(如Maven或Gradle)中。 3. **第三方数据库**:除了标准的数据库系统(如MySQL、Oracle、SQL Server等),开发者还可能...

    ext的jar包ext的jar包ext的jar包

    10. **许可证合规**:使用任何第三方库,包括"ext"的jar包,都需要遵循其提供的许可证条款,确保符合开源软件的使用规定。 总的来说,"ext"的jar包可能是一个用于扩展Java应用程序功能的库,涉及到类库管理、类路径...

    eclipse源码反编译jar包

    这通常涉及到将反编译工具集成到Eclipse中,以便开发者可以在不离开IDE的情况下查看和理解第三方库的内部工作。描述中的“把这个jar按里边的说明放到相应位置,可直接在eclipse里反编译”意味着有一个反编译插件的....

    在Android源码中编译出指定jar包的操作

    今天想把android源码/vendor/letv/frameworks/base/java下的源码编译成 framework-letv.jar供乐乐语音客户端使用,编译完后,发现jar包文件虽然生成了,但包里面并没有相关的源码class文件,无法正常使用。...

    jar包文件查看工具

    这在逆向工程、代码分析或学习第三方库的工作流程中非常有用。通过这个工具,用户可以直接打开和查看.jar或.dex文件,从而理解和修改代码逻辑。 **使用说明.txt** "使用说明.txt"文件通常包含关于如何运行或操作...

    Android参考源码-引用第三方库的方法.zip

    本文将详细讲解如何在Android项目中引用第三方库,以"Android引用第三方库的方法"为主题,结合源码分析进行深入探讨。 1. **Gradle构建系统** Android Studio采用Gradle作为默认的构建工具,它提供了灵活的依赖...

    极光推送服务端jar包源码

    当接收到推送任务时,服务端会根据目标设备筛选出需要推送的消息,并通过第三方推送通道(如APNs for iOS、GCM/FCM for Android)将消息推送到目标设备。 4. **消息格式与协议**:源码会涉及如何封装和解析消息数据...

Global site tag (gtag.js) - Google Analytics