能力值:
( LV6,RANK:90 )
|
-
-
2 楼
说话你别不爱听,代码又不是你写的,你给整套代码 上传上来就行了啊
大家都看得懂代码
严重拉低 李处长在我们心目中的水平
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
这些都是套话,是保护软件公司忽悠游戏公司买单的。 游戏本身有无数漏洞可以利用,外部再怎么包裹都无济于事。 只觉得行为检测有点用 ,其他什么进程、线程、模块、注入检测都是然并卵。
你看这发的这个东西,其实强度来自于VM,如果不加VM,NP整个体系都会被小菜轻易瓦解,加了VM也会被大牛瓦解。 所以说研究这研究那。
|
能力值:
( LV5,RANK:70 )
|
-
-
4 楼
网上源码很多,我只是提出了关键的代码分析。不浪费大家时间,毕竟一套游戏的源码的反外挂系统只是一小部分,既然你想直接看源码,大可可以直接去网上搜索。既然不感兴趣,又何必浪费时间看帖子呢,兄台你说是吗
|
能力值:
( LV5,RANK:70 )
|
-
-
5 楼
如果说不从源码级别来看,单纯的逆向这些VM过后的代码,又是否会觉得就这么简单呢
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
文章有条条理,是否原创,我都支持了,赞一个。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
CS认证就是传说中的心跳算号,剩下的就是见招拆招了
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
不错不错支持楼主继续发帖
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
这种资料越多越好
|
能力值:
( LV3,RANK:30 )
|
-
-
10 楼
算是扫盲贴吧,支持一个
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
支持楼主多爆料啊!!!
|
能力值:
( LV3,RANK:20 )
|
-
-
12 楼
说话你也别不爱听,你这个“大家”用的太重了,我们还真不敢让您代表.
说实话,你这种聊天方式也严重拉低了,大家发帖交流学习的意愿
|
能力值:
( LV4,RANK:50 )
|
-
-
13 楼
支持楼主分享精神,虽然也是看不懂代码
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
不错的帖子,顶上
|
能力值:
( LV3,RANK:20 )
|
-
-
15 楼
看了心跳部分和上一篇的云代码下载检测。有完整的资料或专题就好了。
另外行为监测的帖子也很少。思路大家都知道了。但缺乏具体实例的分析。
来看热闹的。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
帖子很有用啊 二楼么必要打击
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
路过,我打酱油...
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
楼主辛辛苦苦的普及知识,应该支持才对,不管有没有源码,都应该支持
|
能力值:
( LV13,RANK:420 )
|
-
-
19 楼
多年第一泡~
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
写得不错, 可以从源码方面看到np的流程, 感谢
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
哥们,你最好还是发点重量级的代码,而不是研究怎么用NP的SDK。比如GAMEMON.DES的实现细节。你说的这个CSAuth2及最新的CSAuth3的实现细节,有点这些代码和分析,算是有点说服力,要不您这个代码,说个不好听的,连个多开算号都搞不定。
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
unsigned __int8 *__usercall CSAuth2<eax>(int a1<eax>, int pNPDataBuffer, int pNPResultBuffer)
{
unsigned __int8 *result; // eax@1
int v4; // eax@2
const unsigned __int8 *v5; // eax@2
const unsigned __int8 *v6; // eax@3
unsigned int v7; // [sp-10h] [bp-30h]@1
int v8; // [sp+4h] [bp-1Ch]@1
unsigned int *v9; // [sp+8h] [bp-18h]@1
int v10; // [sp+10h] [bp-10h]@1
int (__cdecl *v11)(int, int, int); // [sp+14h] [bp-Ch]@1
unsigned int v12; // [sp+18h] [bp-8h]@1
int v13; // [sp+1Ch] [bp-4h]@1
int v14; // [sp+20h] [bp+0h]@1
v11 = _except_handler4;
v10 = a1;
v12 = dword_530074 ^ (unsigned int)dword_50AFD8;
v7 = (unsigned int)&v14 ^ dword_530074;
v9 = &v7;
v8 = 0;
v13 = 0;
result = (unsigned __int8 *)nProtectDeCode(pNPDataBuffer, pNPResultBuffer);
if ( !byte_53E408 )
{
sub_43DEA0(v7);
v4 = GetNPString(&byte_512718);
PrintfLog(&dword_529D40, v4);
v5 = (const unsigned __int8 *)GetNPString(&byte_512704);
if ( _mbsstr(&byte_53E408, v5)
|| (v6 = (const unsigned __int8 *)GetNPString(&byte_5126F0), (result = _mbsstr(&byte_53E408, v6)) != 0) )
result = (unsigned __int8 *)PrintfNPLog(4002, "NPGGERR_NPGM_CSERR");
}
return result;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
___:004D06E2 ; int __cdecl nProtectDeCode(int pNPDataBuffer, int pNPResultBuffer)
___:004D06E2 nProtectDeCode proc near ; CODE XREF: CSAuth2+43p
___:004D06E2
___:004D06E2 var_4 = dword ptr -4
___:004D06E2 pNPDataBuffer = dword ptr 8
___:004D06E2 pNPResultBuffer = dword ptr 0Ch
___:004D06E2
___:004D06E2 push ebp
___:004D06E3 mov ebp, esp
___:004D06E5 push ecx
___:004D06E6 mov eax, [ebp+pNPResultBuffer]
___:004D06E9 mov dword ptr [eax], 10060h
___:004D06EF call nProtectRand
___:004D06F4 mov ecx, [ebp+pNPResultBuffer]
___:004D06F7 mov [ecx+4], eax
___:004D06FA call nProtectRand
___:004D06FF mov edx, [ebp+pNPResultBuffer]
___:004D0702 mov [edx+8], eax
___:004D0705 call nProtectRand
___:004D070A mov ecx, [ebp+pNPResultBuffer]
___:004D070D mov [ecx+0Ch], eax
___:004D0710 mov edx, [ebp+pNPDataBuffer]
___:004D0713 push edx
___:004D0714 call nProtectKeyDecode
___:004D0719 add esp, 4
___:004D071C mov ecx, [ebp+pNPDataBuffer]
___:004D071F mov edx, [ecx]
___:004D0721 mov [ebp+var_4], edx
___:004D0724 cmp [ebp+var_4], 1F4h ; switch 501 cases
___:004D072B ja loc_4D303A ; default
___:004D0731 mov eax, [ebp+var_4]
___:004D0734 jmp off_4D304A[eax*4] ; switch jump
___:004D073B
___:004D073B loc_4D073B: ; DATA XREF: nProtectDeCode:off_4D304Ao
___:004D073B mov ecx, [ebp+pNPResultBuffer] ; jumptable 004D0734 case 0
___:004D073E push ecx
___:004D073F mov edx, [ebp+pNPDataBuffer]
___:004D0742 push edx
___:004D0743 call sub_4D3876
___:004D0748 add esp, 8
___:004D074B jmp loc_4D303A ; default
___:004D0750 ; ---------------------------------------------------------------------------
___:004D0750
___:004D0750 loc_4D0750: ; CODE XREF: nProtectDeCode+52j
___:004D0750 ; DATA XREF: nProtectDeCode:off_4D304Ao
___:004D0750 mov eax, [ebp+pNPResultBuffer] ; jumptable 004D0734 case 1
___:004D0753 push eax
___:004D0754 mov ecx, [ebp+pNPDataBuffer]
___:004D0757 push ecx
___:004D0758 call loc_4D3999
___:004D075D add esp, 8
___:004D0760 jmp loc_4D303A ; default
___:004D0765 ; ---------------------------------------------------------------------------
___
|
能力值:
( LV13,RANK:420 )
|
-
-
24 楼
这篇文章主要还是写的是NP的整个流程,了解NP的框架。,更底层的细节和以及如何对抗感兴趣的朋友可以自行深入研究一下,就不用盲目的去OD中乱搞些VM过的二进制代码了:eek。
另外感谢下处女帖给了我~
|
能力值:
( LV3,RANK:20 )
|
-
-
25 楼
OMG. Thanks for sharing. XD
|
|
|