论坛首页 安全编程开发区 阅读主题

[求助]关于C代码inlinehook java虚拟机某些字节无法修改的问题

361 浏览 4 回复
#1 楼主 2026-06-01 21:09:03
最近想写一个自动化下载器,于是就选择了开源的jdowloader2,正好复习下自己的inlinehook的内容。这是我自己写的常用的copy的代码。这是我要修改的目标函数,也就是jdowloader中的jvm.dll里面的导出函数映射地址。代码执行后变成这样了可以看到除了90这个地方的字节,其他的都copy过去了。当我尝试从8F处copy的时候,还是90这个地方的字节没有变化。用windows的API也不行。。直接指针修改也无法修改正确来说是这样的用x64dbg可以直接修改,没有异常,但是用memcpy修改也没有异常,但是就是那一个字节无法修改。其他地方也有相应的问题,看这一段shellcode本来应该是这样的还是有几个字节copy不上,不清楚为什么。

hook流程是先写一个启动器,然后在程序挂起的时候注入
然后在dll里面hook

尝试搜索了很多内容,感觉最有可能是jvm内存管理的问题。但是我还是看不明白到底是什么原因无法修改,被静默拒绝,恳请大佬指教。


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-289705.htm
#2 2026-06-01 21:09:03
用PE编辑工具把jvm的dll的ASLR之类的关掉试试?
#3 2026-06-01 21:09:03
gailium


用PE编辑工具把jvm的dll的ASLR之类的关掉试试?

很可惜,试过,ASLR、DEP、CFG都关了,仍然不行。实在不行我上双机调试看下吧。
#4 2026-06-01 21:09:03
爆炸!上了双机后,调试机正常了,回过头来看被调试机,也正常了。还有观察者效应的事情么。有意思
#5 2026-06-01 21:09:03
gailium


用PE编辑工具把jvm的dll的ASLR之类的关掉试试?

虽然还是不知道什么原因造成的,但还是谢谢你的回答了。

请登录后参与讨论

立即登录 注册账号