.:. 草榴社區 » 技術討論區 » 怎么成为风灵月影宗长老(上)  [29P]
--> 本頁主題: 怎么成为风灵月影宗长老(上)  [29P] 字體大小 寬屏顯示 只看樓主 最新點評 熱門評論 時間順序
长谷一波


級別:新手上路 ( 8 )
發帖:320
威望:63 點
金錢:129006 USD
貢獻:31 點
註冊:2022-08-29


怎么成为风灵月影宗长老(上)  [29P]



有什么工具是电子阳痿的根源,可以快速消耗一个游戏的游玩寿命?
又是什么工具让人欲罢不能,"将游戏最后一滴价值榨出来".
很多人的答案都会是——风灵月影。
 
选择修改器这件事,本来就存在两面性,无法下定义好与坏,很多时候选择修改器,是为了规避不友好的关卡设计、时间不充裕的前提下快速通关,或者对框架内的玩法感到倦怠,只想体验最纯粹的剧情。
但是今天不是从修改器的选择出发,而是分析修改器背后的原理(我也要当风灵月影宗长老)
对于单机游戏而言,游戏中绝大部分的参数(比如血、蓝、能量亦或是金币)都存储在计算机的堆栈中,一些类似剧情进度的则加密后写入本地的自定义配置文件中,一些防护性强大的游戏为了避免玩家作弊,会在上述的步骤中设置加密,来保证玩家的用户体验(或者纯纯为了恶心玩家)。
 
在此之前,我们来了解一些基础知识:
数据类型:游戏中的血量、蓝、生命值等,我们将他们称之为变量,变量位于内存中,包含了变量名称和数据类型,如果可以找到对应变量在内存中的地址,就可以将其修改并得到想要的数值。
进程:每一个应用程序/游戏启动,都会产生至少一个进程Process,在任务管理器里可以看到进程名称和进程PID,大家在修改器界面可以看到这个进程。
句柄:英文HANDLE,一个整数值。数据的地址需要变动,变动以后就需要有人来记录管理变动,就好像户籍管理一样,因此系统用句柄来记载数据地址的变更
进入正题,我们该怎么找到需要修改的变量的地址呢?一般要参考一下路线:
修改变量的数值→找到存储变量的内存地址→找到游戏窗口的句柄→找到游戏的进程。
这里给出一个获得内存地址的思路,Windows系统库的kernel32.dll库文件中包含了内存操作的API,其中VirtualQueryEx用于查询地址空间中内存地址的信息。
 
此函数负责获取内存信息,而查询内存信息中具体存放数值则用到另一函数ReadProcessMemory,将根据句柄读取该进程的某个内存空间,并将读取到的字节数写入到我们开辟的一块空间中,而此空间存放的正是我们苦苦追寻的“有意义的数值”。此函数的部分参数依赖于上一个函数VirtualQueryEx产生的结果。
 
根据上面的API,来看怎么获取窗体句柄,同样的kernel32.dll提供了名为OpenProcess的函数用来打开一个已存在的进程对象,并返回进程的句柄。
 
我们获取到进程的PID以后,就可以调用OpenProcess获取窗体的句柄,然后利用函数VirtualQueryEx遍历内存查找地址信息,根据地址利用ReadProcessMemory查找具体存放的值,最后利用WriteProcessMemory把修改后的值写入该地址,这样就完成了一次数据的修改。
 
到了这里,修改游戏数值的原理和套路已经很明白了,甚至脱离游戏来讲,任何的应用如果没有对缓存中的数据进行良好的加密,都是存在很大的风险隐患的,这也是为什么运行作弊软件时,360经常报毒的原因。
上篇先了解一下常用到的名词和API的运用。具体如何利用代码进一步调用API,以及更详细的剖析每一步的逻辑,留在中篇和下篇继续写吧(立个flag吧)

防水图


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


[ 此貼被Diss在2024-05-05 02:42重新編輯 ]

赞(27)
DMCA / ABUSE REPORT | TOP Posted: 05-05 02:16 樓主 引用 | 發表評論
Trailblazer


級別:精靈王 ( 12 )
發帖:19908
威望:1991 點
金錢:41727 USD
貢獻:0 點
註冊:2021-04-16


感谢分享
TOP Posted: 05-05 02:45 #1樓 引用 | 點評
边师傅


級別:俠客 ( 9 )
發帖:1824
威望:183 點
金錢:8847 USD
貢獻:0 點
註冊:2022-09-09

感谢分享
TOP Posted: 05-05 03:23 #2樓 引用 | 點評
唐山小弟


級別:俠客 ( 9 )
發帖:1523
威望:278 點
金錢:2675 USD
貢獻:943 點
註冊:2021-12-26

防水图挂了?
TOP Posted: 05-05 03:48 #3樓 引用 | 點評
爱喝凉水的树


級別:天使 ( 14 )
發帖:17566
威望:1788 點
金錢:54638592 USD
貢獻:2542485 點
註冊:2015-07-29

防水圖掛了
TOP Posted: 05-05 06:20 #4樓 引用 | 點評
白露莫邪


級別:新手上路 ( 8 )
發帖:740
威望:80 點
金錢:1220 USD
貢獻:1 點
註冊:2011-06-06

防水图挂了?
TOP Posted: 05-05 08:29 #5樓 引用 | 點評
牧野


級別:聖騎士 ( 11 )
發帖:1959
威望:246 點
金錢:634 USD
貢獻:20000 點
註冊:2013-05-27

图挂了
TOP Posted: 05-05 09:07 #6樓 引用 | 點評
茎深


級別:聖騎士 ( 11 )
發帖:4477
威望:467 點
金錢:9463 USD
貢獻:12345 點
註冊:2023-11-21

图片挂了
------------------------
K
TOP Posted: 05-05 11:22 #7樓 引用 | 點評
风寒爱存不存


級別:騎士 ( 10 )
發帖:4347
威望:435 點
金錢:10103 USD
貢獻:307 點
註冊:2022-10-30

图挂了
TOP Posted: 05-05 11:56 #8樓 引用 | 點評
jane0510


級別:俠客 ( 9 )
發帖:1310
威望:133 點
金錢:9842550 USD
貢獻:13 點
註冊:2008-07-03

防水图都挂了。。这帖子在社区就没价值了
毕竟游戏党不多
TOP Posted: 05-05 11:59 #9樓 引用 | 點評
长黑毛毛


級別:精靈王 ( 12 )
發帖:20233
威望:4017 點
金錢:23709 USD
貢獻:0 點
註冊:2011-06-06

补个图吧
TOP Posted: 05-05 14:25 #10樓 引用 | 點評
草原科多兽


級別:聖騎士 ( 11 )
發帖:6436
威望:660 點
金錢:100531 USD
貢獻:3456 點
註冊:2023-07-31


以前用金山游侠
TOP Posted: 05-05 14:44 #11樓 引用 | 點評
没有不可能


級別:聖騎士 ( 11 )
發帖:7616
威望:838 點
金錢:15015 USD
貢獻:0 點
註冊:2016-11-01

感谢分享
TOP Posted: 05-05 17:20 #12樓 引用 | 點評
蜀地嘉州0833


級別:新手上路 ( 8 )
發帖:99
威望:12 點
金錢:563 USD
貢獻:1 點
註冊:2024-04-22

一直打不通通关!哎!
TOP Posted: 05-05 17:23 #13樓 引用 | 點評
先淦为敬


級別:新手上路 ( 8 )
發帖:331
威望:93 點
金錢:38728 USD
貢獻:4 點
註冊:2022-09-03

刚下载了荒野大镖客2,还准备论坛分享呢,你这就直接给爆了……
我恨修改器
TOP Posted: 05-05 17:32 #14樓 引用 | 點評
风中的丝袜


級別:俠客 ( 9 )
發帖:2536
威望:254 點
金錢:6113 USD
貢獻:0 點
註冊:2023-05-11

很有意思
TOP Posted: 05-05 17:32 #15樓 引用 | 點評
萝卜九号


級別:俠客 ( 9 )
發帖:1416
威望:145 點
金錢:5353 USD
貢獻:0 點
註冊:2017-06-02

想当年玩单机游戏,什么FPE、金山游侠、东方不败都用过,现在金山游侠还能用但是已经很久不更新了,CE和GM都感觉不好用。
TOP Posted: 05-05 17:43 #16樓 引用 | 點評
不听话吃鹅


級別:新手上路 ( 8 )
發帖:315
威望:32 點
金錢:3481 USD
貢獻:0 點
註冊:2021-10-25


有什么单机游戏介绍吗?老一点没所谓
TOP Posted: 05-06 16:58 #17樓 引用 | 點評
小洋坝之星


級別:俠客 ( 9 )
發帖:1622
威望:163 點
金錢:903964 USD
貢獻:2005 點
註冊:2015-07-31

最宝贵的是:热情、时间
TOP Posted: 05-07 11:00 #18樓 引用 | 點評

.:. 草榴社區 -> 技術討論區

快速回帖 頂端
內容
HTML 代碼不可用

使用簽名
Wind Code自動轉換

按 Ctrl+Enter 直接提交