|
发表于 2006-8-10 14:38:48
|
显示全部楼层
|阅读模式
来自 中国–河南–郑州–新密市
就DCOO目前来说,也算一个反作弊工具,只不过功能和CD相比要简单许多,应为他仅仅采用了CD对OPOGL32的一小部分检测方式,正如本论坛所说的"获得CS里面叫做Engine Functions的入口地址表(还有pEngStudio)"其实他也就做了这些,而没有获得pPlayermove,pEventApi等入口地址表,对于CS作弊常用到的14个涵数,他仅仅对"glBegin,glViewport做了检测,所以做作弊器时只要不用这几个涵数,很容易就过了,当然你最好用API作弊器才行,其实以前能过CD的老作弊器有很多能过,大家完全不用在0X上下工夫,应为那是一种误导,好了不说了,给段DCOO的原码行吗?
// DCOO.CPP SECURE BY XXXXXXXXXX
#include <Windows.h>
#include <Vector>
#include <gl/gl.h>
#include "DcooOpengl.h"
#pragma comment(lib,"OpenGL32.lib")
#pragma comment(lib,"GLu32.lib")
#pragma comment(lib,"GLaux.lib")
using namespace std;
OGLCheck CCOGL;
// If you wanna check for Opengl hook throught HW.dll's table use 'CheckForOpenglHook',
// if return value is TRUE, then table was hooked.
//======================================================================
void Init()
{
CCOGL.AddOpenGLFunction( "glViewport", (DWORD)glViewport ); // I know the better way of doing this is Opengl32.dll's EAT read :p
CCOGL.AddOpenGLFunction( "glBegin", (DWORD)glBegin );
}
//======================================================================
VOID OGLCheck::AddOpenGLFunction ( char* szFunction, DWORD dwAddress )
{
tOpengl32 NewOgl;
strcpy( NewOgl.szFunctionName, szFunction );
NewOgl.dwRealAddress = dwAddress;
CCOGL.tOGL.push_back( NewOgl );
}
//======================================================================
BOOL OGLCheck::CheckForOpenglHook ()
{
for( int z = 0; z < CCOGL.tOGL.size(); z++ )
{
if( !CheckOGLFunction(CCOGL.tOGL[z].szFunctionName, CCOGL.tOGL[z].dwRealAddress) )
{
return TRUE;
}
}
return FALSE;
}
//======================================================================
BOOL OGLCheck::CheckOGLFunction( char* szFunction, DWORD Address )
{
for( DWORD* dwAddr = (DWORD*)0x027E3000; (DWORD)dwAddr < 0x027E4000; dwAddr++ )
{
if( (DWORD)dwAddr == Address )
{
return TRUE;
}
}
return FALSE;
}
//======================================================================
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//COCC.H BY XXXXXXXXXX
#include <Windows.h>
#include <Vector>
using namespace std;
typedef struct
{
char szFunctionName[30];
DWORD dwRealAddress;
} tOpengl32;
class OGLCheck
{
public:
VOID AddOpenGLFunction ( char* szFunction, DWORD dwAddress );
BOOL CheckForOpenglHook( void );
BOOL CheckOGLFunction( char* szFunction, DWORD Address );
private:
vector<tOpengl32> tOGL;
};
完整原吗没权限上传,就先放这么多吧,其实Orgia_(1,0).....Orgia_2.0_4.24.1_PROOF...Orgia_(5,0)...limpid....vipice....suppermen.....就能过DCOO,说到底CDOO就是一个没有版本验证的半成品蹩脚CD...:spiderman |
|