[教程二]用OD给游戏打补丁! [2010-06-11]

本文介绍了如何使用OD(OllyDbg)和汇编语言为游戏添加不死功能。首先通过CE( Cheat Engine)找到不死状态的地址,然后在OD中编写ASM代码,通过按CTRL键切换不死状态。文章详细讲解了查找不死地址、游戏内按键处理函数、寻找空地址编写ASM代码、设置消息断点以找到游戏循环,以及最终在游戏大循环中插入代码实现不死功能的全过程。
摘要由CSDN通过智能技术生成

知识点:OD内编写汇编,实现硬编码打补丁功能,OD消息断点。

工具:OD,CE,PEID

目标:是男人就撑过20秒.exe

结果:增加按CTRL键时切换是否不死,达到就算中弹也不死的目的。

作者:C++

 

以下正文:

先说说实现的步骤吧:

1、  找到不死地址。

2、  找到游戏内按键处理函数。

3、  查找程序内空地址准备编写ASM代码。

4、  编写ASM代码实现通过按CTRL键来开启和关闭不死功能。

5、  编写ASM代码加入到游戏消息循环处理部分,达到实现检测不死开关来对应动作。

 

那么结合上面的步骤,分别讲一下如何实现:

 

先说说找不死地址吧,首先打开游戏,用CE附加,然后正常进入游戏内,当开始游戏时(出现飞机,并你可以控制),暂停游戏(回车或空格),目的是为了更好的搜索,这时CE里搜索DWORD型1,搜索后,继续游戏(回车或空格),让游戏跑起来,然后等待死亡,当完全死亡并出现统计信息的界面时,CE搜索0,这时会剩下不多的地址了,然后在回到游戏正常进入游戏,观察CE里各地址,进入后变成1的就是我们要的了,一般都是第一个(406D90)。这时在这个地址上查找“谁写了他”,然后让游戏内死亡,这时会出现几个地址,我们先看第一个,如下图:

 

这时,我们就要请OD上场了,(其实CE也可以,个人喜欢用OD,更直观),用OD附加游戏,跳转到0040361f这个地址,我们看到如下代码:

0040360F  |.  A1806D4000     mov eax,dword ptrds:[406D80]

00403614  |. 85C0            test eax,eax  ;  判断是不是0

00403616  |.  743B           je short 是男人就.00403653

00403618  |. 83F8 11         cmp eax,11   ;  如果是11就跳转到死亡处理

0040361B  |.  7517           jnz short 是男人就.00403634

0040361D  |. 33D2            xor edx,edx

0040361F  |. 8915 906D4000   mov dword pt

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值