技术含量,如何准确找到某个进程的一个内存地址并修改他的值

hlx_beat 2015-01-10 08:54:03
如题,这个地址你不知道在那个DLL产生的,也不知道这个是什么变量,也不知道偏移多少。利用什么工具可以调试?
...全文
598 9 打赏 收藏 转发到动态 举报
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuh421 2015-01-12
  • 打赏
  • 举报
回复
你要做的这个事CE已经做了, 但要做到精确自动查找, 那确是不可能的. 连CE都要不停的过虑, 才有可能找到具体的数据.
蒋晟 2015-01-12
  • 打赏
  • 举报
回复
引用 4 楼 hlx_beat 的回复:
[quote=引用 2 楼 jiangsheng 的回复:] 这是反向工程,各种计算机语言写的程序可以有无数种方式存数据,而且有垃圾搜集机制的框架写的程序,变量还可以随时在内存里搬来搬去,所以你要的工具不会存在。
如二楼所说可以做到 问题就在于怎么定位到那个地址,目的程序重新编译地址又会改变。。。。[/quote] 针对某个特定程序人工定位可能可以,一大把的游戏修改工具都是线程的,加密不严密的都可以搜索出来,问题是你摆明说要程序自己去定位,我只能呵呵了。
野男孩 2015-01-11
  • 打赏
  • 举报
回复
Windbg, OllyDbg这些工具对调试会有帮助,如果是基于虚拟机运行的,java之类的程序,死心吧
野男孩 2015-01-11
  • 打赏
  • 举报
回复
自己定位。没有现成工具的。除了全局变量,静态变量,其他的变量的地址基本上都是变化的。如果是动态库里的全局变量,还有重定位的问题,不是每个dll都能加载到自己喜欢的起始地址上。也许你需要学习点PE的知识
赵4老师 2015-01-11
  • 打赏
  • 举报
回复
推荐使用WinHex软件查看或修改硬盘或文件或内存中的原始字节内容。
hlx_beat 2015-01-11
  • 打赏
  • 举报
回复
引用 2 楼 jiangsheng 的回复:
这是反向工程,各种计算机语言写的程序可以有无数种方式存数据,而且有垃圾搜集机制的框架写的程序,变量还可以随时在内存里搬来搬去,所以你要的工具不会存在。
如二楼所说可以做到 问题就在于怎么定位到那个地址,目的程序重新编译地址又会改变。。。。
hlx_beat 2015-01-11
  • 打赏
  • 举报
回复
引用 1 楼 fly_dragon_fly 的回复:
WriteProcessMemory 就可以
刚用olldbg利用反汇编找到自己的程序某个偏移地址,用另外一个程序找到这个地址并且修改了他,这里还只是自己写的程序, 如果修改别人写的 估计会很困难,外挂也估计和这差不多。。。。
蒋晟 2015-01-11
  • 打赏
  • 举报
回复
这是反向工程,各种计算机语言写的程序可以有无数种方式存数据,而且有垃圾搜集机制的框架写的程序,变量还可以随时在内存里搬来搬去,所以你要的工具不会存在。
fly_dragon_fly 2015-01-10
  • 打赏
  • 举报
回复
WriteProcessMemory 就可以
相关推荐

3,880

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告