/*----------------------------------------------------------------------------- * CArmorKit.h *----------------------------------------------------------------------------- * ArmorKit Ŭ·¡½º *----------------------------------------------------------------------------- * Copyright (c) , 2005, WEBZEN Inc. * All rights reserved. * * Author : Noh Yong Hwan, 2005, WEBZEN Inc. Research & Development Dept. * fixbrain@gmail.com , somma@webzen.co.kr **---------------------------------------------------------------------------*/ #ifndef _C_ARMOR_KIT_H_ #define _C_ARMOR_KIT_H_ #include "ArmorKit.h" #include #include #include "IGhostUtil.h" // GhostApi ¸¦ À§ÇÑ ÀÎÅÍÆäÀ̽º // Àüü ŽÁö ¹× ¿¡·¯Ã³¸®¸¦ À§ÇÑ À¯Àú ÄݹéÇÔ¼ö ŸÀÔ // typedef INT (*LPFN_USERCALLBACK )(PHACK_DETECT_INFO pHDI); /*----------------------------------------------------------------------------- * CArmorKit Ŭ·¡½º Á¤ÀÇ **---------------------------------------------------------------------------*/ class CArmorKit { private: unsigned int dwActionFlags; // ¾×¼Ç Ç÷¡±× DWORD dwPEAuthType; // PEÀÎÁõ ¹æ¹ý DWORD dwActionMode; // ¾×¼Ç ¸ðµå DWORD dwFrequency; // ¾×¼Ç ÁÖ±â MMRESULT uTimerId; // ŸÀÌ¸Ó ¾ÆÀ̵ð DWORD dwDebugLevel; // µð¹ö±× ·¹º§ TCHAR szLauncherName[MAX_PATH+1]; // µð¹ö±× üũ¸¦ À§ÇÑ ºÎ¸ðÇÁ·Î¼¼½º À̸§ CRITICAL_SECTION m_Critical; /// CArmorKit ÀÌ µ¿ÀÛÁßÀÎÁö.. -> CArmorKit.Start() °¡ È£ÃâµÇ¾ú´Ù¸é True.. // WARNING !!! // ÀÌ ¸â¹ö´Â thread-safe ÇÏÁö ¾ÊÀ½. // BOOL m_bStarted; BOOL m_useFilelog; // 2006.09.20 ³ë¿ëȯ Ãß°¡ // GhostApi »ç¿ë // RSCM_IGhost m_rscm_ghost; IGhost* m_ghost; // 2007.01.22 ÇÔÁö¸¸ Ãß°¡ // AKSupportÀû¿ëÀ» À§ÇÑ ¸â¹öº¯¼ö Ãß°¡ // m_Timer¿Í m_DetectThreadÀÇ °æ¿ì Çì´õÆÄÀÏ·Î ÀÎÇØ // LPVOID·Î ÁöÁ¤ (½ÇÁ¦ »ç¿ë½Ã ij½ºÆÃ ÁÖÀÇ) HANDLE m_hEvent; LPVOID m_Timer; LPVOID m_DetectThread; int ResumeDetectThread(); IGhost* GetGhostPtr() { return m_ghost; } public: DWORD m_os_version ; // Ŭ¶óÀ̾ðÆ®ÀÇ À©µµ¿ìÁî ¹öÁ¯ LPFN_USERCALLBACK lpfnUserCallBack; // À¯Àú Äݹé ÇÔ¼ö Æ÷ÀÎÅÍ BOOL IsThreadRunning(void); //// // ȯ°æ¼³Á¤ ¹× ÀÎÅÍÆäÀ̽º ÇÔ¼ö //// VOID SetActionFlags( unsigned int dwSetActionFlags ); // ¾×¼Ç Ç÷¡±×¸¦ ¼³Á¤ÇÏ´Â ÇÔ¼ö DWORD GetActionFlags( VOID ); // ¾×¼Ç Ç÷¡±×¸¦ °¡Á®¿À´Â ÇÔ¼ö VOID SetLauncherName( TCHAR * lptszLauncherName);// µð¹ö±ëŽÁö¸¦ À§ÇØ °ÔÀÓÀÇ ·±Ã³¹®ÀÚ¿­À» ¼³Á¤ÇÏ´Â ÇÔ¼ö TCHAR* GetLauncherName(VOID); // ·±Ã³¹®ÀÚ¿­À» °¡Á®¿À´Â ÇÔ¼ö VOID SetActionMode ( DWORD dwSetActionMode, DWORD dwFrequency ); // ¾×¼Ç¸ðµå¸¦ ¼³Á¤ÇÏ´Â ÇÔ¼ö VOID SetDebugLevel ( DWORD dwSetDebugLevel ) ; // µð¹ö±× ·¹º§À» ¼³Á¤ÇÏ´Â ÇÔ¼ö VOID SetWindowVersion() ; // À©µµ¿ì ¹öÁ¯À» ¼³Á¤ÇÏ´Â ÇÔ¼ö BOOL GetUseFileLog(void); // ÆÄÀÏ·Î±× °ü·Ã ¸Þ¼Òµå void SetUseFileLog(const BOOL Value); //// // ±¸µ¿¿¡ ÇÊ¿äÇÑ ÇÔ¼öµé //// INT Init(LPFN_USERCALLBACK lpfnUserCallBack, TCHAR *lpVersion); // ArmorkitÀ» ÃʱâÈ­ÇÏ´Â ÇÔ¼ö, ¹öÀü ÁöÁ¤ ±â´É Ãß°¡ BOOL Start() ; // ArmorkitÀ» ±¸µ¿½ÃŰ´Â ÇÔ¼ö VOID Release() ; // ArmorkitÀÇ ÀÚ¿øÀ» ÇØÁ¦½ÃŰ´Â ÇÔ¼ö INT SetPatternList(TCHAR *list, int length); INT GenerateSid( int seed, char *sid ); // Server¿ÍÀÇ Çᄇüũ À§ÇÑ ÇÔ¼ö // °¢ ¸ðµå¿¡ µû¸¥ ±¸µ¿ÇÔ¼öµé BOOL DoByTimer() ; // AKTimer callback static void __stdcall OnAKTimer(unsigned int timer_id, DWORD_PTR user_tag); CArmorKit(); ~CArmorKit() ; }; #endif