本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
javaagent+javassist实现故障注入遇到问题
ClassPool pool = ClassPool.getDefault();
CtClass ctclass = pool.get(className);
上面二行代码,在web容器下是拿不到Class对象,官方已经解释了,如下:
The default ClassPool returned by a static method ClassPool.getDefault( ...
Javassist使用经验
最近在做某个软件的破解程序的时候,很久前使用的javassist粉末登场了一次。
使用过程中开始有点不顺,经过调试总算OK了。
现将解决内容公布如下:
1. 在修改某jar包某类的方法时,如果想直接重写方法体,注意方法体里面的各种类,要直接写类全局名称,因为编译时是可能imports会出现问题。
2. 在方法体内,引用形参,用$1,$2,$3,不能用反编译过来的变量名字。
3. for循环,编译时 ...
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
由于JVM通过字节码的二进制信息加载类的,那么,如果我们在运行期系统中,遵循Java编译系统组织.class文件的格式和结构,生成相应的二进制数据,然后再把这个二进制数据加载转换成对应的类,这样,就完成了在代码中,动态创建一个类的能力了。
在运行时期可以按照Java虚拟机规范对class文件的组织规则生成对应的二进制字节码。当前有很多开源框架可以完成这些功能,如ASM,Javass ...
教您使用DynamicGecco抓取JD全部商品信息
关于gecco爬虫框架
如果对gecco还没有了解可以参看一下gecco的github首页。gecco爬虫十分的简单易用。之前有一篇文章《教您使用java爬虫gecco抓取JD商品信息》,使用的是传统的注解方式,建议看这篇文章前先了解之前的文章。这里介绍一下DynamicGecco方式,比之前更简单,抓取全部京东商品只要3个类就能搞定了。
什么是DynamicGecco
DynamicGec ...
转javassist用法
Javassist是一个执行字节码操作的强而有力的驱动代码库。它允许开发者自由的在一个已经编译好的类中添加新的方法,或者是修改已有的方法。但是,和其他的类似库不同的是,Javassist并不要求开发者对字节码方面具有多么深入的了解,同样的,它也允许开发者忽略被修改的类本身的细节和结构。字节码驱动通常被用来执行对于已经编译好的类的修改,或者由程序自动创建执行类等等等等相关方面的操作。这就要求字节码引 ...
javassist使用中遇到的问题记录
Javassit提供了运行时操作Java字节码的方法,其效率低于asm。javassist主要是提供了代码级别的修改(也有bytecode级别),相比与asm的字节码级别的修改,学习成本低,开发效率高。因此,在实际应用中javassist是一个非常不错的选择。以下是在使用javassist的过程中碰到的问题及处理方法:
1、ClassLoader问题
我们知道java中有ExtClassLoa ...
通过javassist向编译后的指定类中的方法注入时间戳
实现步骤如下:
1.javac -cp .;./javassist.jar JassistTiming.java
2.javac StringBuilder.java
3.java StringBuilder 1000 2000 4000 8000 16000
Constructed string of length 1000
Constructed string of length 2000
...
为什么try-catch的代码块,在javac之后的class,javassist会无法正常解析方法参数
在如下的代码,然后使用javac编译之后,得出Student.class
再根据javap -v Student.class,可以查看class的字节码结构,下面我只是截出本地参数的部分
由上图可看出,出来的参数列表并没有根据slot排序,这样就会导致javassist中获取参数名时异常,不知有没有朋友类似情况的博友吗?求指教。
java字节码操作框架集合
(1) ObjectWeb ASM轻量级的Java字节码处理框架。它可以动态生成二进制格式的stub类或其他代理类,或者在类被JAVA虚拟机装入内存之前,动态修改类。ASM 提供了与 BCEL和SERP相似的功能,只有22K的大小,比起350K的BCEL和150K的SERP来说,是相当小巧的,并且它有更高的执行效率,是BCEL的7倍,SERP的11倍以上。
该项目主页:http://asm.obje ...
javassist/cglib入门资料
javassist
javassist学习
javassist 学习笔记
Java 编程的动态性, 第四部分: 用 Javassist 进行类转换
cglib
CGLib: The Missing Manual
性能测试
动态代理方案性能对比
不过这个测试结果有点老了,在我的Win7, JDK1.6_0_43 64bit机器上测试下来,JDK自带的proxy已经很快了,基本上各大框架难分伯仲 ...
Eclipse里使用javassist实例
这两天比较无聊,随便找点东西进行学习。目标就瞄准了javassist。关于javassist的介绍google一下,这里也不介绍了。
对于某一个类,直接在编译好的.class文件插入一些内容。
比如:
package test.param;
public class Screen {
public void draw(int i , int j){
S ...
Apache Struts 2.2.1 GA版发布
Apache软件基金会发布了Struts 2.2.1 GA版。Struts 2.2.1包含了重要的安全修复。Apache建议开发者将现有的Struts2应用升级到Struts 2.2.1。
Struts 2.2.1的内部变化主要有:
XWork已经迁移到了Apache软件基金会,现在成为了Struts 2的一部分。新版XWork 2.2.0也随着Struts 2.2.1一同发布。未来,XW ...
Java字节码修改 可以解决什么问题
对于Java程序员来说,工作中经常会遇到这样一些问题,比如引用了些第三方提供的非开源jar包,这个时候我们需要用它,甚至需要改它的内容。怎么办?下面看看开发中会遇到哪些问题?
某个类的里面的字段默认值不符合需求要改掉.
某个方法里面有很多校验,想直接return ;绕过校验。
某个方法里面的计算方法太复杂,想用自己的计算方式。替换方法体。
首先声明一点,如果是收费的,切勿参加商业性质。
...