jvm-suspend-working-thread-机制:jvm暂停工作线程的机制

时间:2024-03-07 18:17:10
【文件属性】:

文件名称:jvm-suspend-working-thread-机制:jvm暂停工作线程的机制

文件大小:7.22MB

文件格式:ZIP

更新时间:2024-03-07 18:17:10

C

JVM挂起工作线程的机制与原理 首选使用Clang编译GCC编译会报错目前未研究清楚 内嵌的汇编代码依赖编译后的栈上临时变量跟RBP指针的相对位置不保证编译器优化后内嵌的编译代码能正常运行 怎么运行的 由于编译可能产生问题可以直接在linux上运行 ./main 通过mprotect设置内存访问权限 mprotect提供下图多个访问权限设置 使用mprotect对特定内存区域设置附加保护并注册信号量处理器 当线程访问下图缓冲区指针指向的内存,会产生一个信号量,线程会转移到handler方法 handler方法暂时按下不表 main函数流程 保存几个寄存器rsp rbp rip(pc寄存器)插入其写入变量,刹车处理程序恢复 第一次访问p指针(也是buffer指针)由于权限的问题,会转移到handler方法 handler流程 处理信号量,重新设置缓冲区指向的区域为精确可写 恢复快照jmp到之


【文件预览】:
jvm-suspend-working-thread-mechanism-master
----pic()
--------main_method.png(687KB)
--------how-it-works.gif(4.99MB)
--------register_handler_and_set_memory_access.png(616KB)
--------mprotect_access.png(514KB)
--------handler.png(707KB)
----main.c(3KB)
----LICENSE(1KB)
----main(25KB)
----.gitignore(35B)
----CMakeLists.txt(115B)
----README.md(2KB)

网友评论