游戏安全实验室 首页 游戏漏洞 查看内容

【游戏漏洞】Dnf游戏漏洞挖掘第3期 无敌+代码

发布于: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网站投稿文章仅代表作者本人的观点,与本网站立场无关。

分享到:
踩0 赞0

收藏

下一篇:【游戏漏洞】QQ西游发包分析

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部