水晶连连看无限时间简单过程

非常简单的游戏,就是选择配对,然后消除。时间耗尽就游戏结束。
所以修改方法有三种:
1.时间暂停
2.时间到0后不触发任务失败弹窗
3.取消时间判定
首先打开CE,选中游戏进程,搜索未知四字节,然后不断搜索减少的数字。
我们现实中认为时间是连续的,在游戏设计中,角色HP可能是float,但是时间,至少目前为止我没见过用float的。
反正这个数据类型不对就搜那个,那就2下完事。

然后我们找到三个数字,很明显是最下面的地址符合。可以一一修改尝试来确认。

经过尝试,我们确认就是最后这个地址。然后查找是谁改变了这个数值,可以发现3条相关指令。


然后我们打开OD,附加游戏进程。开着CE时候附加不上去,可能因为CE的调试器吧。。。。。那就重新打开一份游戏主程序给OD用。

我们用Ctrl+G来到0040410F处,可以看到在ce中看到的完全一样的指令。
00404109行处的sub显然就是减少,减少后的值给了ecx,然后exc一方面另存到eax进行判断是否游戏结束,一方面正常写回剩余时间。
那么就可以不让ecx减少:
1.把sub行nop掉
2.sub eax,eax  //虽然eax=0,但是下一条指令立即把ecx赋值了过来给eax,所以对后续无任何不良影响。

往下稍微一翻,顺便看到了游戏结束的提示。也可以通过搜索中文关键词到达这里。

jg是个跳转,直接越过了任务失败的判定。所以把jg改为jmp,无条件跳过失败提示。这样时间到0后会继续减少,无任何提示。
同样的,我们可以找到成功处,把失败判定跳转到成功上,这样时间为0或者消灭完毕,都是成功通关判定。

原版程序:http://my.zp68.com/filestores/20 ... 31162919ab44b5e.exe
无限时间(取消失败判定):http://my.zp68.com/filestores/20 ... a6e941c4ab1b6f6.exe       

THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
  • 管埋员

    昵称

  • 取消
    昵称