首页
社区
课程
招聘
[原创]原子球 - 游戏修改器
发表于: 2007-9-28 17:42 7995

[原创]原子球 - 游戏修改器

2007-9-28 17:42
7995

【文章标题】: 原子球 - 游戏修改器
【文章作者】: Suyana
【作者邮箱】: Suyasha@163.com
【作者QQ号】: 517949855(请注明来自看雪论坛)
【软件名称】: 原子球
【下载地址】: "幻想游戏"里的一个游戏
【使用工具】: OD
【作者声明】: 本文原创于Suyana, 转载请注明作者并保持文章的完整, 谢谢!
--------------------------------------------------------------------------------
【详细过程】
一、选关
这比较简单,用游戏修改器找到Level的地址,有很多处,碰运气吧! 随便选一个改一下。偶的运气还好 ,第一次就找到了。有两处,01A9FD8和01A9FDC(每次都不一样)。上一个地址是真正的关数,后一个是显示的屏幕的关数。下内存写入断点。玩一下,过关后中断在:

00432B80 /$ 8B91 C8000000 mov edx, [ecx+C8]
00432B86 |. 8B81 CC000000 mov eax, [ecx+CC]
00432B8C |. 42 inc edx ; 关数加1
00432B8D |. 40 inc eax
00432B8E |. 8991 C8000000 mov [ecx+C8], edx ;中断在这里
00432B94 |. 8981 CC000000 mov [ecx+CC], eax
00432B9A |. C781 6C010000>mov dword ptr [ecx+16C], 190
--------------------------------------------------------------------------------------
二、风扇可用
不知你注意了没有,当数能被5整除时风扇都不可用。在玩游戏时要是把01A9FD8改成5,风扇也会立刻不能用。就从这里入手。在01A9FD8下内存访问断点。一切入游戏,立刻中断在:

00433285 |. 8B86 C8000000 mov eax, [esi+C8] ;取关数
0043328B |. 99 cdq
0043328C |. B9 05000000 mov ecx, 5
00433291 |. F7F9 idiv ecx ;除以5
00433293 |. 85D2 test edx, edx ;edx=0为整除
00433295 |. 0F84 8A000000 je 00433325 ;跳到0043325,使风扇不能用
0043329B |> D986 28010000 fld dword ptr [esi+128]

来到00433325,一共有两个跳转跳到这里。一个是00433277, 00433295,只要让这两个跳转不成立就可以了。但是用一次后能量就没有了,虽然还可以用,但威力很小。明白了,就是要锁定能量。

在这要好好说一下,修改游戏其实最重要的是怎样找到数据的地址,在完的时候发现有ice的球,激活后就不会生成新的球了。想随便找一下,想不到一下找到了很多东西! ^_^

偶是从分数上入手的。用游戏修改器找到分数的地址,不两入,在以01******开头的(上面的关数也是这样开头的)地址下内存写入断点(下断点会游戏立马就卡,哎!偶的机器),消掉一组后中断在
004325A3 |. 8986 BC010000 mov [esi+1BC], eax
返回到:
00412696 |> \8B7D F4 mov edi, [ebp-C]
这里可以说是整个游戏的核心了。游戏大部分的功能都在这里了,其他的就不说了。

在写第三步时发现
004126B6 /75 09 jnz short 004126C1
改为jmp时每消一组就会加上能量

或把004126B8 mov byte ptr [esi+358], 1改成
mov byte ptr [esi+358], 0 也可以
----------------------------------------------------------------------------------
三、过关
004122FD /0F85 17010000 jnz 0041241A 跳转不跳就是过关了

00412437 /0F85 24010000 jnz 00412561 这个也可以

00412578 /0F85 18010000 jnz 00412696 这个也可以
随便哪一个不跳就可以了
-------------------------------------------------------------------------------
四、不生成新的球
004126B1 8A5D FF mov bl, [ebp-1]
nop掉就不会有球生成,舒服吧!(偶然间知道的)
------------------------------------------------------------------------------------
有了上面这4步,相信不会玩不了了吧!再玩不了偶也没办法了。现在做一下修改器,因为所有的地址都是动态的,这就要改代码了。因为还要恢复改过的代码,所以就不能用KeyMaker的内存补丁。

附件:

游戏修改器源代码(MASM32编写)
我还没养成写注释的习惯,看代码可能要费些时间,Sorry,我会养成写注释的习惯D。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (1)
雪    币: 27
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
看不懂啊!!!唉。。。。。。
2009-12-7 18:25
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码