Restructure repository to include all source folders

Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View File

@@ -0,0 +1,130 @@
#ifndef _ANTIHACK_H_
#define _ANTIHACK_H_
#define MAX_HACKCOUNT 5
#define HACK0 0
#define HACK1 0
#define HACK2 0
#define XCHG( dwAddress ) (((DWORD) dwAddress) << 16) | (((DWORD) dwAddress) >> 16)
#pragma comment( lib, "version" )
#define DECLARE_ANTIHACK() CAntiHack g_AntiHack
#define USE_ANTIHACK1() g_AntiHack.AntiDebug1();
#define USE_ANTIHACK2(Func) g_AntiHack.AntiDebug2( XCHG( Func ) );
#define USE_ANTIHACK3(Inst) g_AntiHack.AntiDebug3( Inst );
class CAntiHack
{
private:
char m_szTmp[ MAX_PATH ];
BOOL (WINAPI *pCall)( HINSTANCE hInstance );
BOOL m_bAntiHack[ MAX_HACKCOUNT ];
BOOL m_bWinNT;
public:
CAntiHack()
{
for( int i=0; i < MAX_HACKCOUNT; i++ )
m_bAntiHack[ i ] = TRUE;
OSVERSIONINFOEX osv;
osv.dwOSVersionInfoSize = sizeof( osv );
GetVersionEx( (LPOSVERSIONINFO) &osv );
m_bWinNT = (bool) ( osv.dwPlatformId == VER_PLATFORM_WIN32_NT );
HMODULE hKernel;
if( NULL == (hKernel = LoadLibrary( DecryptText( "KDPKAG-+&;BA" ))) ) // LoadLibrary( "KERNEL32.DLL" );
return;
BOOL (WINAPI *pIsDebuggerPresent)( void );
pIsDebuggerPresent = GetProcAddress( (HMODULE) hKernel, DecryptText( "IrBb^pa`]iFgYfW_d" ) ); // GetProcAddress( "IsDebuggerPresent" );
m_bAntiHack[HACK0] = pIsDebuggerPresent();
FreeLibrary( hKernel );
}
~CAntiHack()
{
}
void AntiDebug1( void )
{
#if USE_ANTIHACK == 1
if( m_bAntiHack[HACK1] ) {
MessageBox( NULL, "Please turn your Debugger off!", "ERROR", MB_OK );
ExitProcess( 0 );
}
m_bAntiHack[ HACK1 ] = (CreateFileA( "\\[,YOD=>", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ) != INVALID_HANDLE_VALUE ); // \\.\SICE
m_bAntiHack[ HACK2 ] = (CreateFileA( "\\[,YJOC<=", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ) != INVALID_HANDLE_VALUE ); // \\.\NTICE
#endif
}
void AntiDebug2( DWORD dwAddress )
{
#if USE_ANTIHACK == 1
if( m_bAntiHack[ HACK2 ] || m_bAntiHack[ HACK1 ] ) {
WinExit( EWX_SHUTDOWN | EWX_FORCE );
}
#endif
pCall = (BOOL (WINAPI *)( HINSTANCE )) (XCHG( dwAddress ));
}
BOOL AntiDebug3( HINSTANCE hInstance )
{
return pCall( hInstance );
}
protected:
char *DecryptText( char *lpData )
{
strcpy( m_szTmp, lpData );
Decrypt( (unsigned char *) m_szTmp, (DWORD) strlen( m_szTmp ) );
return m_szTmp;
}
bool Encrypt( unsigned char *lpData, DWORD dwLength )
{
for( int i=0; i < (int) dwLength; i++ )
*(lpData + i) -= i;
return true;
}
bool Decrypt( unsigned char *lpData, DWORD dwLength )
{
for( int i=0; i < (int) dwLength; i++ )
*(lpData + i) += i;
return true;
}
BOOL SetPrivilege( unsigned char *name, BOOL bEnable )
{
BOOL bResult = FALSE;
HANDLE hToken;
DWORD dwRetLen;
TOKEN_PRIVILEGES tpToken, tpPrev;
OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken );
tpToken.PrivilegeCount = 1;
if( LookupPrivilegeValue( NULL, (LPCSTR) name, &(tpToken.Privileges[0].Luid) ) == TRUE ) {
if( bEnable )
tpToken.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
else
tpToken.Privileges[0].Attributes = 0;
dwRetLen = 0;
bResult = AdjustTokenPrivileges( hToken, FALSE, &tpToken, sizeof( tpPrev ), &tpPrev, &dwRetLen );
}
CloseHandle( hToken );
return bResult;
}
bool WinExit( DWORD dwFlags )
{
if( SetPrivilege( (unsigned char *) "SeShutdownPrivilege", TRUE ) ) {
ExitWindowsEx( dwFlags, 0 );
SetPrivilege( (unsigned char *) "SeShutdownPrivilege", FALSE );
}
return true;
}
};
#endif