首页
社区
课程
招聘
[旧帖] [原创]某游戏的协议明文还原 0.00雪花
发表于: 2013-9-3 15:44 13975

[旧帖] [原创]某游戏的协议明文还原 0.00雪花

2013-9-3 15:44
13975

前段日子有些时间,分析了某游戏且对其进行了协议的还原,还原后可在反外挂和外挂中使用,流程如下图所示:

                                    
      1. 解除游戏保护:
      脱壳、反调试见看雪文章。

      2. 还原游戏主程序:
先介绍下LoadAndRun技术,就是替换一个进程的内存空间为另一个程序,主用用作免杀和反调试。代码如下所示:

CreateProcess(nil, pchar(ParamStr(0)), nil, nil, False, CREATE_SUSPENDED, nil, nil, StartInfo, ProcInfo);
     Context.ContextFlags := CONTEXT_FULL;
     GetThreadContext(ProcInfo.hThread, Context);
     ReadProcessMemory(ProcInfo.hProcess, pointer(Context.Ebx + 8), @BaseAddress, 4, Bytes);
     VirtualAllocEx(ProcInfo.hProcess, pointer(ImageNtHeaders.OptionalHeader.ImageBase),InjectSize,  MEM_RESERVE or MEM_COMMIT, PAGE_EXECUTE_READWRITE);
     WriteProcessMemory(ProcInfo.hProcess, pointer(ImageNtHeaders.OptionalHeader.ImageBase),InjectMemory,InjectSize, Bytes);
     WriteProcessMemory(ProcInfo.hProcess, pointer(Context.Ebx + 8), @ImageNtHeaders.OptionalHeader.ImageBase, 4, Bytes);
     Context.Eax := ImageNtHeaders.OptionalHeader.ImageBase + ImageNtHeaders.OptionalHeader.AddressOfEntryPoint;
     SetThreadContext(ProcInfo.hThread, Context);
     ResumeThread(ProcInfo.hThread);
while (GetMessage(&msg,0,0,0))
{	
	TranslateMessage(&msg);		
	DispatchMessage(&msg);
}
00AB00F0 sub_AB00F0      proc near               ; CODE XREF: sub_AB0140+13F p
.text:00AB00F0
.text:00AB00F0 var_28          = dword ptr -28h
.text:00AB00F0 var_24          = dword ptr -24h
.text:00AB00F0 var_20          = dword ptr -20h
.text:00AB00F0 var_1C          = dword ptr -1Ch
.text:00AB00F0 var_18          = dword ptr -18h
.text:00AB00F0 var_14          = dword ptr -14h
.text:00AB00F0 var_10          = dword ptr -10h
.text:00AB00F0 var_C           = dword ptr -0Ch
.text:00AB00F0 var_8           = dword ptr -8
.text:00AB00F0 var_4           = dword ptr -4
.text:00AB00F0
.text:00AB00F0                 sub     esp, 28h
.text:00AB00F3                 mov     ecx, [ecx+0Ch]
.text:00AB00F6                 xor     eax, eax
.text:00AB00F8                 lea     edx, [esp+28h+var_28]
.text:00AB00FB                 push    edx             ; lpWndClass
.text:00AB00FC                 mov     [esp+2Ch+var_28], eax
.text:00AB0100        mov     [esp+2Ch+var_24], offset lpfnWndProc  ; 消息循环
.text:00AB0108                 mov     [esp+2Ch+var_20], eax
.text:00AB010C                 mov     [esp+2Ch+var_1C], eax
.text:00AB0110                 mov     [esp+2Ch+var_18], ecx
.text:00AB0114                 mov     [esp+2Ch+var_14], eax
.text:00AB0118                 mov     [esp+2Ch+var_10], eax
.text:00AB011C                 mov     [esp+2Ch+var_C], eax
.text:00AB0120                 mov     [esp+2Ch+var_8], eax
.text:00AB0124                 mov     [esp+2Ch+var_4], offset off_C21AA4
.text:00AB012C                 call    ds:RegisterClassW  ; 注册窗口类
.text:00AB0132                 neg     ax
.text:00AB0135                 sbb     eax, eax
.text:00AB0137                 neg     eax
.text:00AB0139                 add     esp, 28h
.text:00AB013C                 retn
.text:00AB013C sub_AB00F0     endp
00AAFEE0  lpfnWndProc:
.text:00AAFEE0                 mov     ecx, [esp+8]     ; wMsg
.text:00AAFEE4                 push    ebx
.text:00AAFEE5                 push    ebp
.text:00AAFEE6                 mov     eax, ecx
.text:00AAFEE8                 sub     eax, 1
.text:00AAFEEB                 push    esi
.text:00AAFEEC                 push    edi
.text:00AAFEED                 jz      loc_AB0095
.text:00AAFEF3                 sub     eax, 9C3Fh
.text:00AAFEF8                 jz      loc_AAFFCC      ; wMsg=9C40h
.text:00AAFEFE                 sub     eax, 1
.text:00AAFF01                 jz      short loc_AAFF11
.text:00AAFF03                 pop     edi
.text:00AAFF04                 pop     esi
.text:00AAFF05                 pop     ebp
.text:00AAFF06                 pop     ebx
.text:00AAFF07                 mov     [esp+8], ecx
.text:00AAFF0B                 jmp     ds:DefWindowProcW
......
.text:00AAFFCC loc_AAFFCC:
.text:00AAFFCC                 mov     ebx, [esp+20h]
.text:00AAFFD0                 mov     ebp, [esp+14h]
.text:00AAFFD4                 push    0FFFFFFEBh  ;GWL_USERDATA
.text:00AAFFD6                 mov     edi, ebx
.text:00AAFFD8                 push    ebp
.text:00AAFFD9                 shr     edi, 10h
.text:00AAFFDC                 call    ds:GetWindowLongW 
.text:00AAFFE2                 mov   esi, eax     ; 返回值会传入00AB0073
.text:00AAFFE4                 push    esi
.text:00AAFFE5                 call    sub_AAEA30  
.text:00AAFFEA                 add     esp, 4
.text:00AAFFED                 test    al, al
.text:00AAFFEF                 jz      loc_AB00A9
.text:00AAFFF5                 movzx   eax, bx
.text:00AAFFF8                 add     eax, 0FFFFFFFFh
.text:00AAFFFB                 cmp     eax, 1Fh
.text:00AAFFFE
.text:00AAFFFE loc_AAFFFE:
.text:00AAFFFE                 ja      loc_AB00A9 
.text:00AB0004                 movzx   eax, ds:byte_AB00C8[eax]
.text:00AB000B                 jmp     ds:off_AB00B4[eax*4]
......
.text:00AB006A loc_AB006A:
.text:00AB006A                  
.text:00AB006A                 cmp     byte ptr [esi+8], 0
.text:00AB006E                 jz      short loc_AB00A9 ; default
.text:00AB0070                 push    edi
.text:00AB0071                 mov     ecx, esi
.text:00AB0073                 call    _SendData      ; 会调用WSASend
mov     edi,ecx
mov     edx, [edi+2880h]
mov     ebx, [edx]
mov     eax, [ebx+8]
mov     [edi+2888h], eax
mov     ebx, [edi+2888h]
mov     esi, [ebx+4]
mov     [esp+24h+Buffers.buf], esi
call      WSASend

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 5
支持
分享
最新回复 (59)
雪    币: 48
活跃值: (167)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
大神、好膜拜
2013-9-3 16:10
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你是高高在上的星星,我是地上的一粒沙子。除了做梦,永远也达不到你那样的高度。
2013-9-7 21:25
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
路过,来围观一下。。。
2013-9-7 21:40
0
雪    币: 1689
活跃值: (379)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
5
膜拜妞妞……
2013-9-7 22:31
0
雪    币: 124
活跃值: (469)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
受教了,膜拜一下
2013-9-8 09:03
0
雪    币: 108
活跃值: (44)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
好贴要顶~~
2013-9-8 09:33
0
雪    币: 43
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
传奇的游戏?APEX?
2013-9-8 09:33
0
雪    币: 1737
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
神马游戏???
2013-9-8 10:01
0
雪    币: 61
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
mark
2013-9-8 10:04
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
急需破解协议这方面内容,谢谢楼主好好学习一下
2013-9-8 14:22
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
你是高高在上的月亮,我是海底的一只小虫。除了做梦,永远也达不到你那样的高度。
顺便请问下 有了这些协议 然后怎么用呢?
2013-9-8 20:53
0
雪    币: 43
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
围观凑个热闹
2013-9-8 21:36
0
雪    币: 33
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
膜拜·······
2013-9-11 13:01
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
15
内容太敏感词了。
2013-9-11 13:25
0
雪    币: 114
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
圣境传说?
2013-9-11 13:55
0
雪    币: 560
活跃值: (944)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
好厉害              .
2013-9-11 14:43
0
雪    币: 118
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
不错 不错
2013-9-11 14:53
0
雪    币: 67
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
正在学习驱动保护...膜拜下
2013-9-11 15:04
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
膜拜大神!!!
2013-9-11 15:31
0
雪    币: 242
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
确实厉害,江山代有才人出,各领风骚数百年。
2013-9-11 15:43
0
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
22
膜拜。。。。。。
2013-9-11 15:52
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
mark
2013-9-11 16:42
0
雪    币: 42
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
当真要膜拜一下,正文中有一处暴漏的游戏名,还请楼主修正以免和谐。
2013-9-18 09:22
0
雪    币: 680
活跃值: (68)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
25
1024
2013-9-18 09:47
0
游客
登录 | 注册 方可回帖
返回
//