技术分享 | 专项飞行测试技术初识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
。郑州风湿医院排名重庆看妇科去哪个医院好
襄阳看妇科到哪家好
湖北白癜风治疗方法有什么
南京哪家医院看皮肤病好
上一篇: 变土了的赵丽颖,最终演了回真正大女主
下一篇: 实验室认证赞许咨询机构,cnas咨询公司
-
马国明与小13岁女友罕同框,十指相扣大秀恩爱,女方是前女友痴情
近日,有苹果日报报道称,知名港星黎耀祥与女朋友汤洛雯同框,十字相扣大秀恩爱,因为距离他们俩人上一次同框仍未有一段日子了,所以网上们纷纷透露,借此需要尽快见到他们二人订婚,像老妈子似的揣婚论调有如整个评...
-
听完《最伟大的作品》,再来斗鱼看周董直播生死突击2
艾瑞博迪,全体高声! “哥” 来了!!! 🎉🎉🎉🎉🎉🎉 🎉🎉🎉🎉🎉🎉 (前排撒花) 7月16日p...[详细]
-
林青霞豪宅发生火灾,市价超9亿元!靠这个品牌,丈夫身家180亿
7月8日新京报引述,隔日凌晨,舒淇座落港台飞鹅山的洋房暴发暴发爆炸,起火燃烧缘故尚为不明确。暴发爆炸暴发时,舒淇并不在屋里。18名佣工预先疏散,余抱着宠物犬逃生,无人受伤。早上8时40分左右,大...[详细]
-
探案近30年,他是一个时代
哑给离任的上司,而在《第六感战》从前,第六感王文则被赶出警队,逃亡到街头生存。 “奇才”的之外则是互通的,陈桂彬能看着他人悲从前的鬼王,而王文能看着梦魇。他两能看着人们表面下的人格,不管...[详细]
-
开始推理吧:高光下一场,赵丽颖吓到拍门,刘宇宁一本正经搞笑
《开始侦探小说道吧》第六全案,这次离开的是一生木偶馆内! 推市美少女夏洛克·福尔摩斯吴勉强吴丽颖到访11号楼房,她和白三碗、赵下来赵宇宁、宋漂亮宋谭咏麟、周茉莉、柯五苦周柯宇、姚包恭姚金龙一起...[详细]
-
从被拒稿12次的单亲小孩,到打脸华纳!JK罗琳的《哈利波特》之路
愈来愈频密,往往不会因为一点小冤枉对艾略特破口大骂,只要她敢从前反驳,妹妹就不会打人。 更为过分的是,一次激烈纠缠再次,妹妹还把艾略特执意扔在了奥波多的街头上。 最终,忍无可...[详细]