java反向注入_Java逆向基础之Byteman的运行后注入

Byteman可以在目标程序运行后进行注入,命令如下

运行后注入

1.查看java进程,找到目标进程的pidjps

2.安装pidbminstall 

3.装载规则脚本bmsubmit -l tracing.btm

//指定监听端口默认是9091

//bmsubmit -p -l tracing.btm

4.卸载规则脚本bmsubmit -u tracing.btm

//指定监听端口

//bmsubmit -p -u tracing.btm

规则文件如果用到了自定义的扩展Helper类,需要先加载扩展类的jar包

1.装载jar包bmsubmit -s helpers.jar

2.装载规则脚本bmsubmit -l tracing.btm

看一个例子

Main.java//Main.java

package com.vvvtimes;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class Main {

public static void main(String[] args) {

try {

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

System.out.println("please input the first param:");

String p1 = bufferedReader.readLine();

System.out.println("please input the first param:");

String p2 = bufferedReader.readLine();

System.out.println("result is " + add(Integer.parseInt(p1), Integer.parseInt(p2)));

System.out.println("press ENTER TO EXIT ...");

bufferedReader.readLine();

} catch (Exception e) {

e.printStackTrace();

}

}

public static int add(int a, int b) {

return a + b;

}

}

tracing.btmRULE trace arg1

CLASS com.vvvtimes.Main

METHOD add(int, int)

AT ENTRY

IF true

DO traceln("arg1=" + $1 + " arg2=" + $2)

ENDRULE

RULE trace return value1

CLASS com.vvvtimes.Main

METHOD add(int, int)

AT EXIT

IF true

DO traceln("Return value: " +$!)

ENDRULE

编译javac com/vvvtimes/Main.java

运行java com.vvvtimes.Main

新开窗口查看注入到Main进程

查看进程jps

安装pidbminstall 6852

规则检查bmcheck -cp . -v scripts/tracing.btm

装载规则脚本bmsubmit -l scripts/tracing.btm

之后回到Main窗口输入参数

运行结果如下

c7c215d126336d89c80d4cc8f49f51fc.png

086468198b23caf70c5d1864059a2229.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值