東方風魔録 无限修改


Back



東方風魔録 -the story of eastern wind-

Title原文说明:


このゲームは
「東方封魔録 ~ The Story of Eastern Wonderland」
をどうしても遊びたかったので作ってみた、東方封魔録っぽいシューティングゲームのつもりです。
でも、実物を見たことなく、ニコニコ動画の投稿動画を見て作ったので色々差異が存在するでしょう…。
全体的に簡単なのでキーボードで低速封印で遊ぶことをお勧め致します。
合言葉は『製作者は封魔録で遊んだことは無いっ!!』です。


这个游戏是由 Helios Create 发布的一个基于東方Project的2次創作作品, 玩了一下,感觉比起原作难度好像大了不少,于是不得不进行了一些修改。
感叹的说一下。GM8是个好东西呀,虽然老,但可以直接对游戏中找到的数据地址进行断点追踪……
其实原本只是想用修改器锁定这些数据的,在死机后发现地址是会变动的,于是想 为什么不直接把锁定数据的代码写到执行程序里面呢? 记得以前也看过这类型的修改执行程序的方法做的无敌档的,于是心血来潮开始做了这个……
select

第一步当然是要找到数据所在地址

这个我使用的是GM8,一般查找上两三次就可以找到确实的地址了,之后可以直接在GM中对地址进行追踪,当有代码对这个地址进行修改时会被记录下来。当然,按正统的理论来说,我应该使用 Ollydbg 这类的工具来做这事的……我太懒了而已,不过GM真的好方便呀……
要注意的是可能会有很多指令对目标内存地址进行修改,所以尽量尽早做一些会使数据变化的操作。之后还需要多跑一下程序看还有没其他地方进行了操作。一般都要全部记录以下,以备查看用。
后面的部分我还是开了个 Ollydbg 来做的,毕竟汇编代码不是那么好处理的东西……

 

修改:在得到一点武器值后直接满

第一处在:0X3C97CH(248188)处。
0043D373  |.  8B45 08                mov eax,dword ptr ss:[ebp+8]
0043D376      8B55 0C                mov edx,dword ptr ss:[ebp+C]
0043D379      0150 68                add dword ptr ds:[eax+68],edx 实际上要修改的指令是这里,直接设为80才是正确的
0043D37C      8178 68 80000000       cmp dword ptr ds:[eax+68],80   看到这里,如果大于80(MAX)时的处理里有,于是偷懒了一下。
0043D383      7C 17                  jl short fuuma.0043D39C     -> 改成 nop nop(90 90) 就成了。
0043D385  |.  C740 68 80000000       mov dword ptr ds:[eax+68],80   于是变成吃一个就会变成满枪的状态。
0043D38C  |.  C740 5C 04000000       mov dword ptr ds:[eax+5C],4
0043D393  |.  C740 64 05000000       mov dword ptr ds:[eax+64],5
0043D39A  |.  5D                     pop ebp
0043D39B  |.  C3                     retn

第二处在:3ecd7H 257239处:
0043F6C8  |.  8B45 08                mov eax,dword ptr ss:[ebp+8]
0043F6CB  |.  8B5D 0C                mov ebx,dword ptr ss:[ebp+C]
0043F6CE  |.  8B50 5C                mov edx,dword ptr ds:[eax+5C]
0043F6D1  |.  8B48 64                mov ecx,dword ptr ds:[eax+64]
0043F6D4  |.  0158 68                add dword ptr ds:[eax+68],ebx
0043F6D7  |.  8178 68 80000000       cmp dword ptr ds:[eax+68],80
0043F6DE  |.  7C 1A                  jl short fuuma.0043F6FA    ->同样改成 nop nop(90 90) 就成了。
0043F6E0  |.  C740 68 80000000       mov dword ptr ds:[eax+68],80
0043F6E7  |.  C740 5C 04000000       mov dword ptr ds:[eax+5C],4
0043F6EE  |.  C740 64 05000000       mov dword ptr ds:[eax+64],5
0043F6F5  |.  E9 B2000000            jmp fuuma.0043F7AC

其实简答的办法就是用UE查找 81786880000000 这一串,把接在后面的两个改成 90 90就成了。这个字符串在游戏执行文件中有三处,其中后两个都是要修改。如果只改了第一个,早苗会不起作用,我原来就是这样,不知道为什么在游戏中会为早苗单独写了一份代码……


Top


修改:炸弹无限使用(不减BOMB)

地址大概是在: 0x319f1H 和 0x31b4dH两处地方。

004323E4  |.  C780 80000000 02000000 mov dword ptr ds:[eax+80],2
004323EE  |.  8950 74                mov dword ptr ds:[eax+74],edx
004323F1  |.  FF8B F8090000          dec dword ptr ds:[ebx+9F8] ->     改为nop(90 x6)
004323F7  |.  83BB F8090000 00       cmp dword ptr ds:[ebx+9F8],0 
004323FE  |.  7D 08                  jge short fuuma.00432408

这个简单一些,把减少的指令用90填空即可,把FF8B F8090000 这一串修改为 909090909090 ( 90 X6个)即可了。


一开始吃个小P就直接满枪的截图。
截图

注意

修改游戏后会使你进行游戏的乐趣降低!,如果没必要不建议进行修改
welcome
Top


CopyRight by blues_city(子陵) @ 2002-2009

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值