我在这个帖http://blog.csdn.net/hexin373/article/details/6669813里做时不知道怎么搞第七步,希望有高手吧做好的工程文件发给我或者教我
反编译看到关键的方法调用(比如我想抹掉验证 License Key 的代码)之后我们可以通过 AOP around advice 替换掉它,这样就不需要直接修改源代码和原来的jar文件,如果它原来的 jar 有数字签名的话,我们把它解压后再重新打包成 jar 文件(去掉签名和 MANIFEST.MF 中的 Sealed 声明) 。
可以学习一下 AspectJ 的入门,它提供 around advice 支持,例如下面这段代码,当然了,我们需要先反编译原来的代码知道哪个类和方法与此相关,这样才能写出我们期望的 pointcut ,这里的 pointcut 就是“程序执行流中的某个时刻,比如一个方法调用,一个异常被抛出,一个成员变量的值被读取或修改,一个 static 初始化块,一个构造方法被调用等。
而 advice 则是指当某个 pointcut 命中的程序执行流的时刻我们对它进行干预,一般分3种类型,before, after, around,其中 before 和 after 并不能阻止原来的那个程序执行流被执行,但 around advice 则可以。
QQ 空间介绍(用 Base 64 解码链接):
aHR0cDovL3VzZXIucXpvbmUucXEuY29tLzg5NjA1NzMzNy8y