大家好!
如何通过修改浏览器进程的内存来更改网页中显示的HTML字符串?
我确实喜欢这样,但它不起作用:
0x01960064
。WriteProcessMemory
向此地址写了另一个字符串,例如“baby”。但在页面中,字符串“google”没有变为“baby”。然后我去了0x01960064
,这里已经是“宝贝”了。我再次搜索“谷歌”,它在另一个地址,而不是0x01960064
。地址已更改。为什么它会像这样工作? :(
答案 0 :(得分:0)
字符串可能是对象,因此可能是堆分配的。
堆可能会被一些垃圾收集器管理,所以即使你确实找到了正确的地址,也不能保证当你尝试注入新数据时会有相同的对象。
如果您不知道这一点,垃圾收集器通常会在清理后对堆进行碎片整理。
解决此问题需要确保在浏览器进程中暂停所有线程。