hur.cn - 华软网

 热门搜索

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

  作者:未知    来源:网络    更新时间:2011/5/18
最近看了点 win32 api ,感觉很强力
想做个有戏修改器,但是自己太菜了,许多细节不知道怎么实现,
求高人指点!

想法是这样:

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

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

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

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

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


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

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

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

求提示~~~~~~~~~~~~~~~~~~~~~~
---华软 网友回答---
想动态地确定
游戏进程的内存,不想通过金山游侠什么的东东,来确定内存。

---华软网友回复---
思路是对的,就是这样的。
VirtualQuery,可以查询到目标进程的内存地址分配状态,详见《Windows核心编程》。或者直接网上找一个代码COPY。
---华软网友回复---
引用 2 楼 kyotrue 的回复:
思路是对的,就是这样的。
VirtualQuery,可以查询到目标进程的内存地址分配状态,详见《Windows核心编程》。或者直接网上找一个代码COPY。



谢谢提示!我查查看
《windows核心编程》这本书从来没看过啊。。看来有必要买一本
---华软网友回复---
好像Windows程序设置里面, 是有像FPE类似功能的游戏修改器整个代码
---华软网友回复---
引用 4 楼 dfasri 的回复:
好像Windows程序设置里面, 是有像FPE类似功能的游戏修改器整个代码的



Windows程序设置,是《windows程序设计》这本书么。。。。
---华软网友回复---
原来打错字了...
---华软网友回复---
你这个东西还用写?金山游侠
---华软网友回复---
引用 7 楼 xuddk727 的回复:
你这个东西还用写?金山游侠


不是本着娱乐+学习的目的么~
---华软网友回复---
引用 8 楼 korekara88730 的回复:
引用 7 楼 xuddk727 的回复:
你这个东西还用写?金山游侠


不是本着娱乐+学习的目的么~


对,使用不是目的,学习。
---华软网友回复---
引用 5 楼 korekara88730 的回复:
引用 4 楼 dfasri 的回复:
好像Windows程序设置里面, 是有像FPE类似功能的游戏修改器整个代码的



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

Windows程序设计 (王艳萍)的那本好像第一章有个简单的例子吧
---华软网友回复---
现在大部分新游戏都不能这么搞了~
---华软网友回复---
引用 10 楼 visualeleven 的回复:
引用 5 楼 korekara88730 的回复:
引用 4 楼 dfasri 的回复:
好像Windows程序设置里面, 是有像FPE类似功能的游戏修改器整个代码的



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

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



果然有!
我说我这有本那个特有名的外国人写的《windows程序设计》怎么没见着呢,
原来还有一本国产的
---华软网友回复---
这方法对单机版游戏应该可以,对于网络游戏好象不行,曾今试过修改网络游戏的金钱或人物相关属性数据,数据是修改掉了,但交易时,又还原回原来的数据,估计这些数据是直接从服务器上传过来或是经过保护手段,并不是以内存中的数据进行计算。
---华软网友回复---
引用 13 楼 jason_wentzel 的回复:
这方法对单机版游戏应该可以,对于网络游戏好象不行,曾今试过修改网络游戏的金钱或人物相关属性数据,数据是修改掉了,但交易时,又还原回原来的数据,估计这些数据是直接从服务器上传过来或是经过保护手段,并不是以内存中的数据进行计算。


谢谢提示。

我只是刚接触WIN32 API的菜鸟,
没打算改网游,更没打算拿这个搞啥非法行为,
就打算找个游戏改个试试找找乐~
---华软网友回复---
VirtualQueryEx+scas即可定位
---华软网友回复---
很有想法!不错!

支持!
---华软网友回复---
引用 15 楼 lactoferrin 的回复:
VirtualQueryEx+scas即可定位


列宁同志,又碰到你了

能给点更详细的描述么?


---华软网友回复---
PS,那本国产的《Windows程序设计》 (王艳萍)
果然有这个例子,已经敲上去了,运行成功 。

细节还需要再揣摩揣摩,好书啊~

---华软网友回复---
引用 17 楼 korekara88730 的回复:
引用 15 楼 lactoferrin 的回复:
VirtualQueryEx+scas即可定位


列宁同志,又碰到你了

能给点更详细的描述么?

使用VirtualQueryEx找到所有状态是已提交,可读写的内存区域,然后用ReadProcessMemory把数据读到当前进程,再用scas指令根据关键字找到地址
---华软网友回复---
引用 13 楼 jason_wentzel 的回复:
这方法对单机版游戏应该可以,对于网络游戏好象不行,曾今试过修改网络游戏的金钱或人物相关属性数据,数据是修改掉了,但交易时,又还原回原来的数据,估计这些数据是直接从服务器上传过来或是经过保护手段,并不是以内存中的数据进行计算。

钱根本不存在本地,就像银行卡里的存款,本地的只是对这个钱的支配能力,有多少钱,服务器说了算。

---华软网友回复---
照着王艳萍版《windows程序设计》敲了个例子,
手头游戏不多,《植物大战僵尸》《仙剑奇侠传三》都能改~


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




---华软网友回复---
引用 19 楼 lactoferrin 的回复:
引用 17 楼 korekara88730 的回复:

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


列宁同志,又碰到你了

能给点更详细的描述么?

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


谢谢,回头我再查查你说的这几个函数和指令怎么用.      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。