最近想写一个自动化下载器,于是就选择了开源的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
[求助]关于C代码inlinehook java虚拟机某些字节无法修改的问题
361 浏览
4 回复
用PE编辑工具把jvm的dll的ASLR之类的关掉试试?
gailium
用PE编辑工具把jvm的dll的ASLR之类的关掉试试?
很可惜,试过,ASLR、DEP、CFG都关了,仍然不行。实在不行我上双机调试看下吧。
用PE编辑工具把jvm的dll的ASLR之类的关掉试试?
很可惜,试过,ASLR、DEP、CFG都关了,仍然不行。实在不行我上双机调试看下吧。
爆炸!上了双机后,调试机正常了,回过头来看被调试机,也正常了。还有观察者效应的事情么。有意思
gailium
用PE编辑工具把jvm的dll的ASLR之类的关掉试试?
虽然还是不知道什么原因造成的,但还是谢谢你的回答了。
用PE编辑工具把jvm的dll的ASLR之类的关掉试试?
虽然还是不知道什么原因造成的,但还是谢谢你的回答了。