123
This commit is contained in:
97
CryCommon/IDataProbe.h
Normal file
97
CryCommon/IDataProbe.h
Normal file
@@ -0,0 +1,97 @@
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2001-2004.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: IDataProbe.h
|
||||
// Version: v1.00
|
||||
// Created: 19/1/2004 by Timur.
|
||||
// Compilers: Visual Studio.NET 2003
|
||||
// Description: Defines IDataProbe interface.
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __IDataProbe_h__
|
||||
#define __IDataProbe_h__
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
struct SDataProbeContext
|
||||
{
|
||||
// Folder name to check.
|
||||
string sFolder;
|
||||
// Filename to check.
|
||||
string sFilename;
|
||||
void *pBuffer;
|
||||
void *pModuleBaseAddress;
|
||||
unsigned int nOffset;
|
||||
unsigned int nSize;
|
||||
// Algorithm used fo code.
|
||||
unsigned int nCodeInfo;
|
||||
// Resulting code.
|
||||
uint64 nCode;
|
||||
|
||||
SDataProbeContext()
|
||||
{
|
||||
pBuffer = 0;
|
||||
pModuleBaseAddress = 0;
|
||||
nOffset = nSize = nCodeInfo = 0;
|
||||
nCode = 0;
|
||||
}
|
||||
};
|
||||
|
||||
struct IDataProbe
|
||||
{
|
||||
struct SModuleInfo
|
||||
{
|
||||
string filename;
|
||||
void* handle;
|
||||
};
|
||||
|
||||
virtual ~IDataProbe() {};
|
||||
virtual bool Dummy1( SDataProbeContext &ctx ) = 0;
|
||||
virtual int Dummy2( void *pBuf,int aa,SDataProbeContext &ctx ) = 0;
|
||||
virtual bool GetCode( SDataProbeContext &ctx ) = 0;
|
||||
virtual bool Dummy3( SDataProbeContext &ctx ) = 0;
|
||||
|
||||
virtual bool GetRandomFileProbe( SDataProbeContext &ctx,bool bAtEnd )=0;
|
||||
virtual bool GetRandomModuleProbe( SDataProbeContext &ctx ) = 0;
|
||||
virtual bool GetModuleProbe( SDataProbeContext &ctx ) = 0;
|
||||
|
||||
// Hash of ASCII string.
|
||||
virtual uint32 GetHash( const char *sString ) = 0;
|
||||
// Hash of any buffer.
|
||||
virtual uint32 GetHash( const void *buffer,int len ) = 0;
|
||||
|
||||
// Return array of loaded modules information, returns number of modules.
|
||||
virtual int GetLoadedModules( SModuleInfo **pModules ) = 0;
|
||||
virtual void AddModule( SModuleInfo &moduleInfo ) = 0;
|
||||
|
||||
virtual void RandomAlloc() = 0;
|
||||
|
||||
// Compress block of data with zlib.
|
||||
virtual int Compress( void *dest,unsigned int &destLen,const void *source, unsigned int sourceLen,int level=6 ) = 0;
|
||||
// Uncompress block of data with zlib.
|
||||
virtual int Uncompress( void *dest,unsigned int &destLen,const void *source, unsigned int sourceLen ) = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// MD5 Digest.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
virtual void GetMD5( const char *pSrcBuffer,int nSrcSize,char signatureMD5[16] ) = 0;
|
||||
|
||||
// Decrypt buffer.
|
||||
// Support in place decryption, (pSrcBuffer == pDestBuffer).
|
||||
// Output buffer should be at least the same size as source buffer.
|
||||
// Key must be at least 32 bytes long.
|
||||
virtual void AESDecryptBuffer( const char *pSrcBuffer,int nSrcSize,char *pDestBuffer,int &nDestSize,const char *sKey ) = 0;
|
||||
|
||||
virtual void RandSeed( uint32 seed ) = 0;
|
||||
virtual uint32 GetRand() = 0;
|
||||
virtual float GetRand( float fMin,float fMax ) = 0;
|
||||
};
|
||||
|
||||
#endif // __IDataProbe_h__
|
||||
Reference in New Issue
Block a user