首页
论坛
专栏
课程

[原创]过掉 佣兵天下 游戏的驱动保护,支持下看雪

2010-12-6 15:29 10427

[原创]过掉 佣兵天下 游戏的驱动保护,支持下看雪

2010-12-6 15:29
10427
b1b465b4 8bff            mov     edi,edi
b1b465b6 55              push    ebp        //这两行是内核的特征,凑足5个字
b1b465b7 8bec            mov     ebp,esp
b1b465b9 83ec10          sub     esp,10h
b1b465bc 53              push    ebx
b1b465bd 8b5d14          mov     ebx,dword ptr [ebp+14h] //  3参  ObjectAttributes
b1b465c0 56              push    esi
b1b465c1 8b750c          mov     esi,dword ptr [ebp+0Ch] //  1参  ProcessHandle
b1b465c4 57              push    edi
b1b465c5 33c0            xor     eax,eax
b1b465c7 8d7df4          lea     edi,[ebp-0Ch]
b1b465ca ab              stos    dword ptr es:[edi]
b1b465cb ab              stos    dword ptr es:[edi]
b1b465cc ab              stos    dword ptr es:[edi]
b1b465cd 8b03            mov     eax,dword ptr [ebx]  //  3参给Eax
b1b465cf 8365f400        and     dword ptr [ebp-0Ch],0
b1b465d3 8945f8          mov     dword ptr [ebp-8],eax //  3参给局部变量 ebp-8
b1b465d6 c645f001        mov     byte ptr [ebp-10h],1        //给 ebp-10h 赋值为1
b1b465da 8975fc          mov     dword ptr [ebp-4],esi        //1参给局部变量 ebp-4
b1b465dd ff151410b5b1    call    dword ptr ds:[0B1B51014h] //调用了一个CALL,估计是判断是否是自己的PID
b1b465e3 8bf8            mov     edi,eax
b1b465e5 8d45f0          lea     eax,[ebp-10h]  //取出地址
b1b465e8 50              push    eax                //这个地址里的值是1,压入1
b1b465e9 b9503ab5b1      mov     ecx,0B1B53A50h        //这里是个全局变量
b1b465ee e8873a0000      call    b1b4a07a
b1b465f3 57              push    edi
b1b465f4 e885dcffff      call    b1b4427e
b1b465f9 85c0            test    eax,eax //判断 EAX是否为空
b1b465fb 7406            je      b1b46603 //如果EAX为空就跳

b1b465fd c645f001        mov     byte ptr [ebp-10h],1//如果EAX不为空,再次给[ebp-10h]赋值为1
b1b46601 eb03            jmp     b1b46606

b1b46603 8b75fc          mov     esi,dword ptr [ebp-4]  //1参赋值给ESI

b1b46606 8b4d08          mov     ecx,dword ptr [ebp+8]        //EBP+8是CALL的返回地址
b1b46609 832100          and     dword ptr [ecx],0
b1b4660c 807df000        cmp     byte ptr [ebp-10h],0 //比较下是否为0
b1b46610 b8220000c0      mov     eax,0C0000022h
b1b46615 8bf8            mov     edi,eax
b1b46617 7413            je      b1b4662c        //突破口就在这里,搞掉这句,让它执行原始的NTopenProcess,这个保护也就过了
b1b46619 837df400        cmp     dword ptr [ebp-0Ch],0        比较执行的那个CALL的返回值,如果为0就跳
b1b4661d 740b            je      b1b4662a

b1b4661f 53              push    ebx        //如果  [ebp-0Ch]不为0就执行下面的
b1b46620 ff7510          push    dword ptr [ebp+10h] //2参
b1b46623 56              push    esi
b1b46624 51              push    ecx
b1b46625 ff55f4          call    dword ptr [ebp-0Ch]   //这里执行的原始的NTopenprocess
b1b46628 8bf8            mov     edi,eax

b1b4662a 8bc7            mov     eax,edi

b1b4662c 5f              pop     edi
b1b4662d 5e              pop     esi
b1b4662e 5b              pop     ebx
b1b4662f c9              leave
b1b46630 c21000          ret     10h

警告,此贴,只为学习交流,切勿用于商业目的
想找个有点实力的团队 QQ1500749598

[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最新回复 (14)
panti 2010-12-6 15:41
2
0
难道驱动也能patch?到底怎么做的?
小楼来了 2010-12-6 15:42
3
0
当然可以了,驱动 patch 太正常了
exile 1 2010-12-6 16:00
4
0
无花无壳 无VM 无校验 无暗桩 放出来就是让人XX的
cvcvxk 10 2010-12-6 20:32
5
0
话说这年头还有hook NtOpenProcess的,神啊保佑他们别蛋碎了~
垃圾一个 2010-12-6 21:12
6
0
这个太不给力了,
wtxpwh 1 2010-12-6 23:18
7
0
小儿科,没有多少含量。
jokersky 1 2010-12-8 12:33
8
0
这也叫保护???

哄自己开心滴....
西风X 2010-12-8 21:26
9
0
这保护也太弱了吧,驱动可以加VM保护的哦,
不是说,驱动就是用来XX的
secit 2010-12-9 12:14
10
0
完全正确,估计这个驱动就是放出来让大家鄙视一下的
ydfivy 2010-12-10 15:08
11
0
真的不很错啊。
pencil 5 2010-12-14 10:25
12
0
b1b465b6 55 push ebp //这两行是内核的特征,凑足5个字


hotpatch并不是内核的特征,而且也不是这两行,而是mov edi,edi 加上上面的三个nop。 另:是5个byte,不是字
zouzhiyong 3 2010-12-14 12:36
13
0
小弟也来鄙视一下,还有疑问,这个真的是驱动保护吗~~
profmit 2010-12-15 09:37
14
0
无花无壳 无VM 无校验 无暗桩.......
除了这几个,还有什么“无”?
君君寒 2010-12-16 19:11
15
0
恢复ssdt就好了 垃圾保护
游客
登录 | 注册 方可回帖
返回