发布于:2018-5-24 10:52 | 118134次阅读 作者: 外部投稿
0x1 线索:血量 1,开启DXF 2. OD附加 3. ce搜索
我们要实现无敌的思路是,把减去血量的逻辑给移除,这样就达到了无敌的效果
我们先找到血量的地址
535,改变一次血量,前面2个绿色的都是GameRpcs.dll中的地址,我们忽略掉。..
这2个,一个应该就是最大血量,一个应该就是当前血量了,我们可以调试得到
529839A8,我们发现了最大血量不会变,这个当前血量就变了,进入副本,对其下硬件写入断点
021A6E29 8BC8 mov ecx, eax 021A6E2B E8 108798FF call 01B2F540 021A6E30 89BB A8390000 mov dword ptr ds:[ebx+0x39A8], edi 021A6E36 3B1D 98D5DC04 cmp ebx, dword ptr ds:[0x4DCD598] 021A6E3C 0F85 21020000 jnz 021A7063 021A6E42 807D CE 00 cmp byte ptr ss:[ebp-0x32], 0x0
这样,我们就断下来了。
在这里下一个断点,发现这里也断下来了,说明,我们打怪物,跟怪物打我们都是同一个地方(这里可以实现秒杀),接下来,我们要往上回溯,找到只有怪物伤害我们的地方
021F093A /0F85 F9000000 jnz 021F0A39 021F0940 |8B45 14 mov eax, dword ptr ss:[ebp+0x14] 021F0943 |8B4D 0C mov ecx, dword ptr ss:[ebp+0xC] 021F0946 |53 push ebx 021F0947 |8B5D 10 mov ebx, dword ptr ss:[ebp+0x10] 021F094A |50 push eax 021F094B |53 push ebx 021F094C |51 push ecx 021F094D |57 push edi 021F094E |8BCE mov ecx, esi 021F0950 |E8 4B990300 call 0222A2A0 021F0955 |8B16 mov edx, dword ptr ds:[esi]
我们发现这个地方,我们打怪物没有触发,怪物打我们触发了
修改过后,我们发现血量已经不会变化了,说明我们已经成功的实现了无敌 0x2 调试:021F0938 84C0 test al, al 021F093A E9 FA000000 jmp 021F0A39 021F093F 90 nop
021F093A /0F85 F9000000 jnz 021F0A39
无敌 0x3 编程:下面,我们就来编写一个简单的程序,来帮助我们开启关闭功能 1. 打开vc 2. 新建工程 3. 添加相应的控件 4. 下面就开始写功能代码,先写刚刚分析的无敌
5. 测试功能,无敌已经成功写入了和关闭了 6. 我们加上上节课分析的无CD功能
7. 下面进游戏测试一下 来源:邮件投稿 *转载请注明来自游戏安全实验室(GSLAB.QQ.COM) GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。 |
最新评论
发表评论