码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-05-03 15:23:47      阅读:632      评论:0      收藏:0      [点我收藏+]

标签:java   逆向   byteman   

上一篇文章提到我们可以在规则文件中调用自己写的扩展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 value1
CLASS com.vvvtimes.Main
METHOD add(int,int)
HELPER com.vvvtimes.TraceHelper
AT EXIT
IF true
DO 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

运行结果如图

技术分享图片




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

标签:java   逆向   byteman   

原文地址:http://blog.51cto.com/7317859/2112124

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!