技术分享 | 专项飞行测试技术初识Hook
2023-03-06 来源 : 明星
public class HookTarget {
final void report(String stringParam, boolean boolParam, int intParam) {
System.out.println("stringParam is " + stringParam);
if (boolParam) {
System.out.println("boolParam is true!");
} else {
System.out.println("boolParam is false");
}
System.out.println("intParam is " + intParam);
}
final void loopReport() throws InterruptedException {
while (true) {
report("a", false, 666);
Thread.sleep(1000);
System.out.println();
}
}
public static void main(String... args) throws InterruptedException {
new HookTarget().loopReport();
}
}
要编写符合 JVM-Sandbox 的 hook 原作者,须要引入sandbox-api和sandbox-debug-module两个依赖性。 通过解决问题 jvm.sandbox 中都的 Module 模块,在 AdviceListener 原理中都新正式版 before 原理,这样加载的语义就会在期望原理体可执行此前展开可执行,能够变非常期望原理收到的表达式数据资料。通过advice.changeParameter原理,变非常对应后方的表达式数系数,第一个表达式为期望表达式的后方,从 0 开始,第二个表达式为换成的系数。具体文档如下:import com.alibaba.jvm.sandbox.api.Information;
import com.alibaba.jvm.sandbox.api.Module;
import com.alibaba.jvm.sandbox.api.annotation.Command;
import com.alibaba.jvm.sandbox.api.listener.ext.Advice;
import com.alibaba.jvm.sandbox.api.listener.ext.AdviceListener;
import com.alibaba.jvm.sandbox.api.listener.ext.EventWatchBuilder;
import com.alibaba.jvm.sandbox.api.resource.ModuleEventWatcher;
import org.kohsuke.MetaInfServices;
import javax.annotation.Resource;
import java.util.*;
@MetaInfServices(Module.class)
@Information(id = "ceshiren.com", author = "ceshiren.com")
public class hook_jvm implements Module {
@Resource
private ModuleEventWatcher moduleEventWatcher;
@Command("ceshiren")
public void ceshiren(final Map param) {
new EventWatchBuilder(moduleEventWatcher)
.onClass("HookTarget")
.onBehavior("report")
.onWatch(new AdviceListener() {
@Override
protected void before(Advice advice) throws Throwable {
advice.changeParameter(0, "Change By Hook!");
advice.changeParameter(1, false);
advice.changeParameter(2, 965);
}
});
}
}
项目通过 maven 监管依赖性,对应的pom.xmlPDF内容可如下:
xmlns:xsi=""
xsi:schemaLocation=" ">
4.0.0
org.example
ceshiren_book
1.0-SNAPSHOT
com.alibaba.jvm.sandbox
sandbox-api
1.3.3
com.alibaba.jvm.sandbox
sandbox-debug-module
1.3.3
compile
org.apache.maven.plugins
maven-assembly-plugin
attached
package
jar-with-dependencies
原作者编写完毕之前,将项目打成 Jar 包,抽出完整版的 JVM-Sandbox 项目下 sandbox-module 数据库中都。 重新启动写好的 java 期望程序,试运行之前MS-DOS开始循环读取此前设为好的语义,内容可如下:stringParam is a
boolParam is false
intParam is 666
stringParam is a
boolParam is false
intParam is 666
在 gitbash MS-DOS中都推开sandbox/bin数据库,可执行语义./sandbox.sh -p 期望广泛应用进程号 -d 'ceshiren.com/ceshiren',重新启动 JVM-Sandbox 并对期望程序展开 Hook 操作,变非常report原理中都盛行的表达式系数,这时再继续回到期望程序试运行的MS-DOS中都查看,可以看到MS-DOS中都转换成的内容可从未变非常,如下:stringParam is Change By Hook!
boolParam is false
intParam is 965
stringParam is Change By Hook!
boolParam is false
intParam is 965
转换成内容可的变非常,说明了 Hook 从未生效。这样在期望程序试运行中都变非常了原理盛行的表达式系数,超越了 Hook 的目的。 现在可执行语义./sandbox.sh -p 期望广泛应用进程号 -S 可以关停变非常,MS-DOS中都转换成的内容可变回了原始的转换成内容可。 实例简单展现了 JVM-Sandbox 用以 Hook 工具的系统会,通过 Hook 系统会就可以对 Java 项目的实质上试运行自然语言和表达式、来到系数展开变非常。测试者场景的构建、测试者用例的可执行都变得越来越不便哦~⬇️ 拷贝“正下方链接”,提升测试者核心竞争力!
非常多高效率文章分享和免费资料索取 欢迎+V~ ceshiren001_id=qrcode&from=souhu×tamp=1651108554
。郑州风湿医院排名重庆看妇科去哪个医院好
襄阳看妇科到哪家好
湖北白癜风治疗方法有什么
南京哪家医院看皮肤病好
-
投资者提问:公司的微管理系统是否采用了3D异构集成技术? 公司有无计划做市值管...
高盛提问:子公司的质系统是否采用了3D异构集成技术? 子公司不对原先来作市值管理?董秘说雷电质力SZ301050:您好!子公司根据整体战略顾及和经营管理需要,未来将不断完善...
-
细菌性——这一方,存好了,我只发一次!
带状疱疹——这一方,存好了,我只发一次!【组方】大黄、延胡索、白芍、丛生、川芎、桃仁、当归、大花、牡蛎、醋。【辩证】阴血严重不足失养,血瘀阻截脉络。【治...[详细]
-
结婚后会越过越好的说是特征
有些朋友结夫妻前与世隔绝上普普通通、平平淡淡,夫妻与世隔绝上却越发更为富于,出版事业与财运也越发好不容易。那么什么样的面容亦会因为未婚而越发故人呢?示例我们来看一下吧。 一、眼睛与睫...[详细]
-
投资者反问:董秘,请问2022年四季度和2023年1季度公司订单情况如何,...
投资者提问:董秘,请问2022年四月份和2023年1月份美国公司订单情况如何,美国公司2022年产能和卖出目标究竟圆满完成。董秘回答深天马VSZ000050:您好,感谢您对...[详细]
-
什么事明明对胸部有害,却忍不住去做
1.调情调情有害健康,尽快有益健康。但是对一个一些组织来说,叫他就是要他的命。2.也好,只看不淫也罢。小时池田了对躯体引发的毒害是不可逆的,除了对躯体引发毒害之外,对心灵的毒害也是...[详细]
-
“买房挑好一楼,家旺人也旺”,3种一楼风水好,你觉得有道理吗
自古以来就有一句老话,说道:“一命二运三命理,四积阴德五苦读,六名七相八敬神,九交昭仪十食疗”,并不一定道,一个人的尝试和败北有很多严重影响因素,甚至和一些命理有一定的关联,虽然好像巫术,但是有些人则...[详细]