水平比较菜,想做个有戏修改器,求思路,求实现方法!

aiyaya730 2011-05-18 05:48:27
最近看了点 win32 api ,感觉很强力
想做个有戏修改器,但是自己太菜了,许多细节不知道怎么实现,
求高人指点!

想法是这样:

1.获取游戏进程相关的所有内存,列个表,
按 key value pair的形式存储. key 是内存地址,value是内存地址的数值

2.比如修改人物的HP吧,现在是100点血,
就找出来所有value是100的key的集合

3.掉1点血,99点
在之前搜索过的内存地址里,再找value是99的地址

4.反复循环到确定唯一地址

5.WriteProcessMemory,修改这个内存地址的值


不知道这么想对不对,
游戏修改器能不能这么实现????

最最关键的是!!
如何列出游戏进程所有相关的内存呢??

即使不全部,一部分也可以~

求提示~~~~~~~~~~~~~~~~~~~~~~
...全文
176 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiyaya730 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 lactoferrin 的回复:]
引用 17 楼 korekara88730 的回复:

引用 15 楼 lactoferrin 的回复:
VirtualQueryEx+scas即可定位


列宁同志,又碰到你了

能给点更详细的描述么?

使用VirtualQueryEx找到所有状态是已提交,可读写的内存区域,然后用ReadProcessMemory把数据读到当前进程,再用scas指令根据关键字找到地址
[/Quote]

谢谢,回头我再查查你说的这几个函数和指令怎么用.
aiyaya730 2011-05-20
  • 打赏
  • 举报
回复
照着王艳萍版《windows程序设计》敲了个例子,
手头游戏不多,《植物大战僵尸》《仙剑奇侠传三》都能改~


通过那个例子知道了不少东西。谢谢各位提示。



用户 昵称 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 jason_wentzel 的回复:]
这方法对单机版游戏应该可以,对于网络游戏好象不行,曾今试过修改网络游戏的金钱或人物相关属性数据,数据是修改掉了,但交易时,又还原回原来的数据,估计这些数据是直接从服务器上传过来或是经过保护手段,并不是以内存中的数据进行计算。
[/Quote]
钱根本不存在本地,就像银行卡里的存款,本地的只是对这个钱的支配能力,有多少钱,服务器说了算。
dfasri 2011-05-19
  • 打赏
  • 举报
回复
原来打错字了...
Lactoferrin 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 korekara88730 的回复:]

引用 15 楼 lactoferrin 的回复:
VirtualQueryEx+scas即可定位


列宁同志,又碰到你了

能给点更详细的描述么?
[/Quote]
使用VirtualQueryEx找到所有状态是已提交,可读写的内存区域,然后用ReadProcessMemory把数据读到当前进程,再用scas指令根据关键字找到地址
aiyaya730 2011-05-19
  • 打赏
  • 举报
回复
PS,那本国产的《Windows程序设计》 (王艳萍)
果然有这个例子,已经敲上去了,运行成功 。

细节还需要再揣摩揣摩,好书啊~
aiyaya730 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lactoferrin 的回复:]
VirtualQueryEx+scas即可定位
[/Quote]

列宁同志,又碰到你了

能给点更详细的描述么?

smaltdd 2011-05-19
  • 打赏
  • 举报
回复
很有想法!不错!

支持!
Lactoferrin 2011-05-19
  • 打赏
  • 举报
回复
VirtualQueryEx+scas即可定位
aiyaya730 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 jason_wentzel 的回复:]
这方法对单机版游戏应该可以,对于网络游戏好象不行,曾今试过修改网络游戏的金钱或人物相关属性数据,数据是修改掉了,但交易时,又还原回原来的数据,估计这些数据是直接从服务器上传过来或是经过保护手段,并不是以内存中的数据进行计算。
[/Quote]

谢谢提示。

我只是刚接触WIN32 API的菜鸟,
没打算改网游,更没打算拿这个搞啥非法行为,
就打算找个游戏改个试试找找乐~
孤客天涯 2011-05-19
  • 打赏
  • 举报
回复
这方法对单机版游戏应该可以,对于网络游戏好象不行,曾今试过修改网络游戏的金钱或人物相关属性数据,数据是修改掉了,但交易时,又还原回原来的数据,估计这些数据是直接从服务器上传过来或是经过保护手段,并不是以内存中的数据进行计算。
aiyaya730 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 visualeleven 的回复:]
引用 5 楼 korekara88730 的回复:
引用 4 楼 dfasri 的回复:
好像Windows程序设置里面, 是有像FPE类似功能的游戏修改器整个代码的



Windows程序设置,是《windows程序设计》这本书么。。。。

Windows程序设计 (王艳萍)的那本好像第一章有个简单的例子吧
[/Quote]


果然有!
我说我这有本那个特有名的外国人写的《windows程序设计》怎么没见着呢,
原来还有一本国产的
酒红色的泪 2011-05-19
  • 打赏
  • 举报
回复
现在大部分新游戏都不能这么搞了~
Eleven 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 korekara88730 的回复:]
引用 4 楼 dfasri 的回复:
好像Windows程序设置里面, 是有像FPE类似功能的游戏修改器整个代码的



Windows程序设置,是《windows程序设计》这本书么。。。。
[/Quote]
Windows程序设计 (王艳萍)的那本好像第一章有个简单的例子吧
ryueiketu 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 korekara88730 的回复:]

引用 7 楼 xuddk727 的回复:
你这个东西还用写?金山游侠


不是本着娱乐+学习的目的么~
[/Quote]

对,使用不是目的,学习。
aiyaya730 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xuddk727 的回复:]
你这个东西还用写?金山游侠
[/Quote]

不是本着娱乐+学习的目的么~
许文君 2011-05-19
  • 打赏
  • 举报
回复
你这个东西还用写?金山游侠
aiyaya730 2011-05-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dfasri 的回复:]
好像Windows程序设置里面, 是有像FPE类似功能的游戏修改器整个代码的
[/Quote]


Windows程序设置,是《windows程序设计》这本书么。。。。
dfasri 2011-05-18
  • 打赏
  • 举报
回复
好像Windows程序设置里面, 是有像FPE类似功能的游戏修改器整个代码的
aiyaya730 2011-05-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kyotrue 的回复:]
思路是对的,就是这样的。
VirtualQuery,可以查询到目标进程的内存地址分配状态,详见《Windows核心编程》。或者直接网上找一个源代码COPY。
[/Quote]


谢谢提示!我查查看
《windows核心编程》这本书从来没看过啊。。看来有必要买一本
加载更多回复(2)

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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