为了账号安全,请及时绑定邮箱和手机立即绑定

Java逆向基础之AspectJ的ajc与aj5命令

标签:
Java

acj命令是用于编译java文件和aj文件的编译器,相当于eclipse的编译器(ECJ)+aspectj运行时扩展

aj5命令在jdk1.5上使用-javaagent:pathto/aspectjweaver.jar加载aspectj程序,达到修改字节码的目的

这两个命令可以用java命令和javac来替代,我们以上文的命令为例


Load-time weaving (LTW) 加载时编织

编译

ajc -outjar myjar.jar HelloWorld.javaajc -outjar MyAspect.jar -outxml MyAspect.aj  -classpath "myjar.jar;%CLASSPATH%"

运行

aj5 -classpath "MyAspect.jar;myjar.jar;%CLASSPATH%" HelloWorld


命令翻译

若已经在classpath环境变量里设置过aspectjrt.jar,可在 -classpath里省略%ASPECTJ_HOME%\lib\aspectjrt.jar;下同

编译

javac HelloWorld.javajar cvf myjar.jar HelloWorld.classjava -classpath "myjar.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%ASPECTJ_HOME%\lib\aspectjtools.jar;%CLASSPATH%" org.aspectj.tools.ajc.Main -outxml MyAspect.aj -outjar MyAspect.jar

运行

java -javaagent:%ASPECTJ_HOME%\lib\aspectjweaver.jar -classpath "MyAspect.jar;myjar.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%CLASSPATH%" HelloWorld



Compile-time weaving 编译时编织

编译

ajc -outjar mytarget.jar HelloWorld.java MyAspect.aj

运行

aj5 -classpath "mytarget.jar;%CLASSPATH%" HelloWorld


命令翻译

编译

java -classpath "myjar.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%ASPECTJ_HOME%\lib\aspectjtools.jar;%CLASSPATH%" org.aspectj.tools.ajc.Main -outjar mytarget.jar HelloWorld.java MyAspect.aj

运行

java -classpath "mytarget.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%CLASSPATH%" HelloWorld



Post-compile weaving 后编译时编织

编译

ajc -outjar myjar.jar HelloWorld.javaajc -inpath myjar.jar MyAspect.aj -outjar mytarget.jar

运行

aj5 -classpath "mytarget.jar;%CLASSPATH%" HelloWorld


命令翻译

编译

javac HelloWorld.javajar cvf myjar.jar HelloWorld.classjava -classpath "myjar.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%ASPECTJ_HOME%\lib\aspectjtools.jar;%CLASSPATH%" org.aspectj.tools.ajc.Main -inpath myjar.jar MyAspect.aj -outjar mytarget.jar

运行

java -classpath "mytarget.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%CLASSPATH%" HelloWorld


翻译成java命令的好处是,可以在Load-time weaving (LTW) 加载时编织直接指定多个-javaagent

java -javaagent:aspectjweaver.jar -javaagent:ZKMAgent.jar -cp Tracing.jar;ZKM.jar com.zelix.ZKM



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消