关于监视内存值的方法. 哪种方法才是最好的呢?

rainker 2009-12-18 12:09:20
功能:

监视一个进程的内存值,判断地址(016B4C90)的内容是否为:123

如果是, 则弹出信息框.


方法一:

通过钩子来进行监视. 经常内存溢出.

方法二:

通过时钟, 我即使设置为1毫秒, 很多快速跳动的数据都不能成功拦截到.

方法三:

通过线程. 刚看到的, 不知道怎么通过线程来监视?


大家有更好的方法吗? 最好贴出源码(得分更多)
...全文
181 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanguomi 2009-12-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 veron_04 的回复:]
使用API函数CopyMemory函数可以取得指定地址的内容,很简单。

[/Quote]
这个有效率问题的
贝隆 2009-12-21
  • 打赏
  • 举报
回复
使用API函数CopyMemory函数可以取得指定地址的内容,很简单。
mr163671 2009-12-18
  • 打赏
  • 举报
回复
因为钩子没有直接监视内存的, 所以我用getmessage,获取任何消息来进行注入读取的..

而且游戏经常会卡死, 溢出? 有监视写内存的钩子吗?
sanguomi 2009-12-18
  • 打赏
  • 举报
回复
估计用钩子比较好
hjkto 2009-12-18
  • 打赏
  • 举报
回复
观注
无条件为你 2009-12-18
  • 打赏
  • 举报
回复
问题有难度,强烈关注。
Seamour 2009-12-18
  • 打赏
  • 举报
回复
可以用 VirtualProtect 将该内存所在页面设置一个 PAGE_GUARD 属性,监视 STATUS_GUARD_PAGE_VIOLATION 异常再判断值就可以了
dd_zhouqian 2009-12-18
  • 打赏
  • 举报
回复
搞CE的很多都搞驱动的
cnzdgs 2009-12-18
  • 打赏
  • 举报
回复
没用过CE,不过我前面已经说了,用驱动程序可以使用调试寄存器来监视内存,指定的内存地址一被访问立刻产生中断执行自己的代码。
rainker 2009-12-18
  • 打赏
  • 举报
回复
有人可以写出 CE 那个监视内存值的代码吗?

那个就不错啊, 一直跟随内存值的变化而改变.
gyk120 2009-12-18
  • 打赏
  • 举报
回复
没有什么好办法,可能最好的办法就是挂钩WriteProcessMemory,不让其他程序写这个地方了
cnzdgs 2009-12-18
  • 打赏
  • 举报
回复
驱动程序可以使用调试寄存器来监视内存;应用程序没有好办法。如果该内存值的变化与窗口消息有关,可以钩子检测到消息处理完时检查内存中的数据。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧