文档章节

你会用javassist修改Jar包吗

李岩飞
 李岩飞
发布于 2016/11/02 11:59
字数 266
阅读 219
收藏 1

不管是工作中,还是自己平时学习时候,或多或少都会碰到一些问题。没有源码的Jar文件或者是混淆过得Jar文件,里面提供的某个方法不适合自己,甚至某个方法是用来进行判断license的。

下面说的这个javassist.jar文件,就具备修改jar文件里面某个class的功能。上代码!

public static void main(String[] args) throws Exception {
		try {
			ClassPool pool = ClassPool.getDefault();
			//指定class所在的路径
			pool.insertClassPath("E:\\test");
			//指定要修改class的完整类名
			CtClass cc = pool.get("com.test.runtime");
			//设置要修改的方法需要的参数,没有参数可以不设置
			CtClass[] param = new CtClass[1];
			param[0] = pool.get("int");
			//指定要修改的类方法
			CtMethod m = cc.getDeclaredMethod("check", param);
			//插入新的代码到最前面
			//m.insertBefore("{if(true) return ;}"); 
			//重新设置方法体
			m.setBody("{return ;}");
			//保存到文件里,文件会保持到该工程下
			cc.writeFile();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

方法很简单,但是对需要的人来说,很重要。

Jar包下载地址:https://git.oschina.net/eliyanfei/api_tools.git

© 著作权归作者所有

李岩飞
粉丝 63
博文 5
码字总数 4086
作品 1
北京
后端工程师
私信 提问
cannot be cast to javassist.util.proxy.Proxy

问题现象: 最近在做一个web项目,使用的是ssh技术,添加jar依赖时不小心多加了一个: 导致报: $$javassist13 cannot be cast to javassist.util.proxy.Proxy 这个错误提示。 解决方案: (...

孟飞阳
2016/07/12
39
0
mac Charles v4.0.2详细破解教程

背景 Charles是一款十分优秀的抓包软件,尤其是在mac操作系统下。Charles是一款商用软件,其体验版虽然能够使用全部功能,但是有以下几个使用上不方便的地方: 启动时有10s的提示购买窗口,并...

wooyoo
2016/12/18
0
0
Myeclipse maven插件中pom.xml的默认依赖有意义吗?

如图所示,pom.xml默认引入这一大堆东西。内含一个javassist的jar(它作为osgi框架的依赖包被默认引入,这里因为引用列表太长,没截出来)。 当我add struts2的依赖后发现,项目跑不起来,报...

itwriter
2015/08/04
946
1
javassist使用中遇到的技术细节记录

1.java -jar 运行jar包时,javassist.ClassPool 报ClassNotFound在完成基于javassist技术和RequestMappingHandlerMapping实现自定义|动态注册spring mvc HandlerMapping的迭代记录的开发后,...

赵熠熠
2018/12/27
0
0
java instrment手工加载log4j配置文件

使用java instrument做一个代码监控的工具,监控日志想用log4j记录,遇到了点问题。 启动应用的命令行加入-javaagent参数,可以在加载类时对其字节码做修改,常用工具有asm、javasssit。 我希...

yingtju
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

老也有错?35岁程序员是一道坎,横亘在每个技术职场人的心中

随着互联网的高速发展变革,大龄恐惧症越来越多地在技术圈被人讨论。很多程序员在工作5-10年以后,都会开始思考5年、10年甚至更久以后的自己,会是怎样一种生活工作状态,以及是否会被时代抛...

我最喜欢三大框架
28分钟前
2
0
今日头条算法原理详解全集,值得收藏!

今天,算法分发已经是信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配,但同时,算法也开始面临质疑、挑战和误解。今日头条的推荐算法,从 2012 年 9月第一版开发运行至今,已经经...

骚年锦时
41分钟前
4
0
零拷贝:用户态视角

在Linux系统越来越多的人听说过所谓的零拷贝技术,但是我经常遇到很多对这个名词没有完全理解的人。因此,我决定写一些文章,深挖这个问题,希望能揭开这个有用的特性。在这篇文章,我们从用...

凌渡
53分钟前
1
0
以太坊中文文档翻译-区块

本文原文链接 点击这里获取Etherscan API 中文文档(完整版) 完整内容排版更好,推荐读者前往阅读。 区块(Blocks) 区块相关的 API,接口的参数说明请参考Etherscan API 约定, 文档中不单独...

Tiny熊
今天
2
0
Linux 内核的一个问题

是virtio 驱动,但是没有启动 virtio-mmio virtio-mmio.0: Failed to enable 64-bit or 32-bit DMA. Trying to continue, but this might not work.....[ 1.047924] md: ... autorun......

MtrS
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部