发表于 2015-6-22 17:01

申请id: JKstring【申请通过】

1、申 请 I D :JKstring
2、个人邮箱: 742758233@qq.com

水平有限,难以达到精华要求,贴个修改游戏的过程拼下人品~

游戏名:秋叶原之旅2

这个游戏要求是扒掉敌人身上的衣服,其中有个设定是如果敌人身上的衣服有多个达到可以脱掉的时候,按指定的键可以连续脱衣,也就是QTE系统,不过像我这种手残只会平A的选手来说有点难受,于是决定改成让他自动脱衣服!

首先分析一下如果想要自动连脱应该是一个什么过程

首先应该是第一次强行脱衣成功
判断按键是否正确
连脱数+1 && 增加经验倍率(连脱可以增加经验获得倍率)


大概的分析出过程,那么就要查找数据位置了,直接开CE,查找连脱数,然后右键找出是什么改写了这个地址



右上角就是连脱数和经验倍率,查找连脱数更好一点,一般四字节没跑

这里有个小坑,右上角虽然写着是连击2,其实数据里是1,这点当时让我坑了一下,后来想到第一次脱衣并不显示右上角的图,可能强行脱衣并不算进连续脱衣里,所以要找的数据是右上角连脱数-1

找到连脱数右键找出什么改写了地址



这里就是改写连脱数的地址了,也能从截图看出来仅增加了一次连脱数,强行脱的那一次并没有算进去

地址有了,转成OD进行调试,分析一下他是怎么运行的



这里故意没把旁边注释截取上...因为走了不少弯路,导致部分注释是错误的分析......

那接下来就是分析一下这个代码是怎么跳转的,右键分析-分析代码,并在这个call的开头下断点跟着函数走一遍



游戏在刚刚进行脱衣的时候断下来了,看来就是这个地方没跑了,跟着函数走一遍,发现除了一个地方没跳其余所有跳转都跳了,包括上图增加连脱数的代码上方的jnz

F9继续运行,连进行连脱连击!看一下连击后是怎么走的!

结果发现F9之后秒断.........这玩个拦子!根本不给第二下的机会!

结果因为昨天晚上太困了,莫名其妙的返回上层代码看了一下,从此走了弯路......不过也因此有了另外的一个想法



在第一个红框处,我猜测这里就是判断是否按键的,,此处这个je直接跳过了整段的call,于是我决定将这个这个跳转nop掉,发现nop掉之后,游戏在进行连续脱衣时,按键只是闪一下就消失了

说明这个地方确定是判断按键的,只是秒错,于是查看到了图上第二个红框处,发现他将esi+2c的值跟edi对比了一下,又被下面jnz带出了call,于是将cmp直接改成cmp edi,edi

再从游戏进行连续脱衣发现只要敌人的衣服达到进行脱衣的条件,就会自动的进行脱衣!恢复第一处红框的代码,游戏进行连续脱衣时,就算按错键也可以进行连续脱衣了!

本想着这就结束了,然后发现虽然可以无条件进行连续脱衣了,但是脱衣数和经验倍数失效了,不过因为这次弯路,知道了判断按键是al,判断正确的是esi+2c的值跟edi对比也好

在这段函数中没有对al进行操作的地方,于是只有之前的增加连击数的call才会改变这个值了,再次回到之前的call



经过代码分析,发现大多数跳转都是跳到下方这个地方,又仔细的看了看add esi+24,ebx(增加连击数的代码),发现大部分赋值操作都在此处进行



而因为这个行代码
0051248C|. /75 20         jnz XAkibaUU.005124AE                  ;跳过
跳出call而不执行赋值操作,那我们可不可以直接去掉跳转,执行赋值呢,于是尝试nop掉了一下,,进游戏果然实现了连续脱衣并且增加连击数及经验倍率



总结一下完整结构
调用脱衣call
判断是否为第一次,如果第一次脱衣完成直接return
如果可进行连续脱衣将再次调用脱衣call
不断进入脱衣判定call(增加连击数的那个call)判断是否按键正确,正确后将各种数值返回脱衣call
完成脱衣

只要修改脱衣判定call的关键跳转即完成了自动脱衣,有点像植物大战僵尸的自动捡阳光


至此修改就完成了!磕磕绊绊用了1天多的时间深知自己水平有限,求个邀请码来学习!

Hmily 发表于 2015-6-24 23:20

ID:JKstring
邮箱: 742758233@qq.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。

PS:随便帖子未能达到精华要求,但确实属于自己的原创内容,附有自己的分析过程,希望你加入吾爱破解论坛后,有更大的进步。

JKstring 发表于 2015-6-25 16:28

Hmily 发表于 2015-6-24 23:20
ID:JKstring
邮箱:



前来报到~非常感谢~!
页: [1]
查看完整版本: 申请id: JKstring【申请通过】