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

Java逆向基础之Byteman的扩展Helper类

标签:
Java

上一篇文章提到我们可以在规则文件中调用自己写的扩展Helper类

看一个例子

新建目标项目和扩展Helper类项目,结构如下


其中目标项目使用上一篇博客的第二个例子的代码

扩展Helper类项目需要用到第三方jar,在C:\byteman-download-4.0.2\lib找到byteman.jar复制过来

TraceHelper.java代码如下

package com.vvvtimes;import org.jboss.byteman.rule.Rule;import org.jboss.byteman.rule.helper.Helper;public class TraceHelper extends Helper {	protected TraceHelper(Rule rule) {		super(rule);	}	public boolean myprint(String message) {		return super.traceln("!!! IMPORTANT EVENT !!!" + message);	}}

将这个项目导出为BytemanHelperDemo.jar

目标项目里的规则文件tracing.btm内容如下,其中HELPER项指定自定义了Helper类名

RULE trace return value1CLASS com.vvvtimes.MainMETHOD add(int,int)HELPER com.vvvtimes.TraceHelperAT EXITIF trueDO myprint("Return value: " +$!)ENDRULE

编译

javac com/vvvtimes/Main.java

运行

java com.vvvtimes.Main

加helper类的规则文件检查,注意多了个-cp BytemanHelperDemo.jar

bmcheck -cp . -cp BytemanHelperDemo.jar  -v scripts/tracing.btm

byteman运行

java -cp ".;BytemanHelperDemo.jar;%CLASSPATH%" -javaagent:%BYTEMAN_HOME%\lib\byteman.jar=script:scripts/tracing.btm com.vvvtimes.Main



如果我们将上面的目标项目打包成jar,则命令可以改成如下形式

目标项目打包成的jar名为BytemanDemo2.jar

运行

java -cp "BytemanDemo2.jar;%CLASSPATH%" com.vvvtimes.Main

加helper类的规则文件检查

bmcheck -cp BytemanDemo2.jar -cp BytemanHelperDemo.jar  -v scripts/tracing.btm

byteman运行

java -cp "BytemanDemo2.jar;BytemanHelperDemo.jar;%CLASSPATH%" -javaagent:%BYTEMAN_HOME%\lib\byteman.jar=script:scripts/tracing.btm com.vvvtimes.Main





点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消