#include "stdafx.h" #include "HackShield_Client.h" #ifdef __NA000000_070913_HACKSHIELD_INSTALLATION__ //#ifdef __ANTICPX_TRANS_BUFFER__ // #undef __ANTICPX_TRANS_BUFFER__ //#endif typedef struct AHNHS_EXT_ERRORINFO{ char szServer[MAX_PATH]; char szUserId[MAX_PATH]; char szGameVersion[MAX_PATH]; } AHNHS_EXT_ERRORINFO, *PAHNHS_EXT_ERRORINFO; #include INT HackShieldCTRL::EXECUTION_CODE = 7005; TCHAR* HackShieldCTRL::LICENSE_CODE = _T("2640BBED272E304EDC1D4A96"); DWORD HackShieldCTRL::OPTION_FLAG = #ifdef USE_HACK_SHIELD AHNHS_CHKOPT_ALL | AHNHS_USE_LOG_FILE | AHNHS_ALLOW_SVCHOST_OPENPROCESS | AHNHS_ALLOW_LSASS_OPENPROCESS | AHNHS_ALLOW_CSRSS_OPENPROCESS | AHNHS_DONOT_TERMINATE_PROCESS | AHNHS_CHKOPT_HSMODULE_CHANGE; #else AHNHS_USE_LOG_FILE; #endif // BOOL HackShieldCTRL::Initialize() { INT iRet = 0; TCHAR szFullFilePath[MAX_PATH]; TCHAR szMsg[MAX_PATH]; // 1) HackShield Æú´õÀÇ EhSvc.dll À§Ä¡¸¦ ÁöÁ¤ lstrcat(szFullFilePath, _T(".\\HShield\\EhSvc.dll")); // 2) _AhnHS_Initialize ÇÔ¼ö È£Ãâ¿¡ ¾²ÀÏ ¿É¼Ç Ç÷¢À» Á¤ÀÇÇÕ´Ï´Ù. DWORD dwOption = AHNHS_CHKOPT_ALL | AHNHS_USE_LOG_FILE | AHNHS_ALLOW_SVCHOST_OPENPROCESS | AHNHS_ALLOW_LSASS_OPENPROCESS | AHNHS_ALLOW_CSRSS_OPENPROCESS | AHNHS_DONOT_TERMINATE_PROCESS | AHNHS_CHKOPT_HSMODULE_CHANGE; // 3) _AhnHS_Initlaize¸¦ È£Ãâ HackShield ¼­ºñ½º¸¦ ÃʱâÈ­ ÇÕ´Ï´Ù. iRet = _AhnHS_Initialize( szFullFilePath, CallbackProc, // Callback EXECUTION_CODE, // Game Code LICENSE_CODE, // License Key dwOption, // Option Flag AHNHS_SPEEDHACK_SENSING_RATIO_NORMAL ); if(HS_ERR_OK != iRet) { switch(iRet) { case HS_ERR_COMPATIBILITY_MODE_RUNNING: case HS_ERR_NEED_ADMIN_RIGHTS: case HS_ERR_INVALID_FILES: case HS_ERR_INIT_DRV_FAILED: case HS_ERR_DEBUGGER_DETECT: default: sprintf(szMsg, "ÇØÅ·¹æÁö ±â´É¿¡ ¹®Á¦°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.(%x)", iRet); break; } MessageBox(NULL, szMsg, "Client HackShield", MB_OK); return FALSE; } return TRUE; } BOOL HackShieldCTRL::Release() { INT iRet = 0; // ¨ç _AhnHS_Uninitialize ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÇÙ½¯µå ¼­ºñ½º¸¦ Á¾·áÇÕ´Ï´Ù. iRet = _AhnHS_Uninitialize(); if (HS_ERR_OK != iRet) { return FALSE; } return TRUE; } BOOL HackShieldCTRL::StartService() { INT iRet = 0; TCHAR szMsg[MAX_PATH]; // ¨ç _AhnHS_StartService ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÇÙ½¯µå ¼­ºñ½º¸¦ ½ÃÀÛÇÕ´Ï´Ù. iRet = _AhnHS_StartService(); // ¨è _AhnHS_StartService ÇÔ¼öÀÇ ¸®ÅÏ °ªÀ» °Ë»çÇÏ¿© ¿¡·¯ ó¸®ÇÕ´Ï´Ù. if (HS_ERR_OK != iRet) { switch (iRet) { case HS_ERR_START_ENGINE_FAILED: case HS_ERR_DRV_FILE_CREATE_FAILED: case HS_ERR_REG_DRV_FILE_FAILED: case HS_ERR_START_DRV_FAILED: default: sprintf (szMsg, "ÇØÅ· ¹æÁö ±â´É¿¡ ¹®Á¦°¡ ¹ß»ý ÇÏ¿´½À´Ï´Ù(%x)", iRet); break; } MessageBox(NULL, szMsg, "Client HackShield", MB_OK); return FALSE; } return TRUE; } BOOL HackShieldCTRL::StopService() { INT iRet = 0; // ¨ç _AhnHS_StopService ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÇÙ½¯µå ¼­ºñ½º¸¦ Á¤ÁöÇÕ´Ï´Ù. iRet = _AhnHS_StopService(); if(HS_ERR_OK != iRet) { return FALSE; } return TRUE; } // ¿øÇüÀº ´Ù½Ã ¼³Á¤Çϱâ·Î ÇÑ´Ù. INT __stdcall HackShieldCTRL::CallbackProc(LONG lCode, LONG lParamSize, PVOID pParam) { TCHAR szMsg[MAX_PATH]; // ¨ç °¢ °æ¿ì¿¡ ´ëÇÏ¿© ¾Ë¸ÂÀº ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÕ´Ï´Ù switch (lCode) { // ¨è Engine Callback case AHNHS_ENGINE_DETECT_GAME_HACK: wsprintf(szMsg, "´ÙÀ½ÀÇ ÇÁ·Î±×·¥°ú °ÔÀÓÀÌ ÇÔ²² ½ÇÇàµÉ ¼ö ¾ø½À´Ï´Ù. (%x) \n [%s]", lCode, (LPTSTR)pParam); MessageBox(NULL, szMsg, "Client HackShield", MB_OK); break; // ¨é ¿ÀÅä¸ÞÅ©·Î ŽÁö case AHNHS_ACTAPC_DETECT_AUTOMACRO: wsprintf(szMsg, _T("¸ÅÅ©·Î ±â´ÉÀ¸·Î ÀǽɵǴ µ¿ÀÛÀÌ °¨ÁöµÇ¾ú½À´Ï´Ù. (Code = %x"), lCode); MessageBox(NULL, szMsg, "Client HackShield", MB_OK); break; // ¨ê º°µµÀÇ Ã³¸®¸¦ ÇÏÁö ¾ÊÀ½ case AHNHS_ACTAPC_DETECT_AUTOMOUSE: case AHNHS_ACTAPC_DETECT_ALREADYHOOKED: break; // ¨ë Speed °ü·Ã case AHNHS_ACTAPC_DETECT_SPEEDHACK: case AHNHS_ACTAPC_DETECT_SPEEDHACK_APP: wsprintf(szMsg, "½ºÇǵåÇÙÀ¸·Î ÀǽɵǴ µ¿ÀÛÀÌ °¨ÁöµÇ¾ú½À´Ï´Ù. (%x)", lCode); MessageBox(NULL, szMsg, "Client HackShield", MB_OK); break; // ¨ì µð¹ö±ë ¹æÁö case AHNHS_ACTAPC_DETECT_KDTRACE: case AHNHS_ACTAPC_DETECT_KDTRACE_CHANGED: wsprintf(szMsg, "°ÔÀÓ¿¡ ´ëÇÏ¿© µð¹ö±ë ½Ãµµ°¡ °¨ÁöµÇ¾ú½À´Ï´Ù. (%x)", lCode); MessageBox(NULL, szMsg, "Client HackShield", MB_OK); break; // ¨í ±× ¿Ü ÇØÅ· ¹æÁö ±â´É ÀÌ»ó case AHNHS_ACTAPC_DETECT_DRIVERFAILED: case AHNHS_ACTAPC_DETECT_HOOKFUNCTION: case AHNHS_ACTAPC_DETECT_MESSAGEHOOK: case AHNHS_ACTAPC_DETECT_MODULE_CHANGE: wsprintf(szMsg, "ÇØÅ· ¹æ¾î ±â´É¿¡ ÀÌ»óÀÌ ¹ß»ýÇÏ¿´½À´Ï´Ù. (%x)", lCode); MessageBox(NULL, szMsg, "Client HackShield", MB_OK); break; } return 1; } #endif //__NA000000_070913_HACKSHIELD_INSTALLATION__