From 5291c526377083b5ea26097352e9b406bfea66f8 Mon Sep 17 00:00:00 2001 From: Jun Ryung Ju Date: Wed, 23 Dec 2015 15:45:14 +0900 Subject: [PATCH] Removing New Server MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 기존걸 수정하도록 할게요. 필요가 없으므로 삭제합니다. --- Server_New/Base.h | 11 -- Server_New/Core.cpp | 14 -- Server_New/Core.h | 27 ---- Server_New/Heap.cpp | 183 -------------------------- Server_New/Heap.h | 40 ------ Server_New/HkPostQuitMessage.cpp | 6 - Server_New/HkReadFile.cpp | 6 - Server_New/Hook.h | 112 ---------------- Server_New/Pipe.cpp | 0 Server_New/Pipe.h | 1 - Server_New/Server_New.rc | Bin 2598 -> 0 bytes Server_New/Server_New.vcxproj | 168 ----------------------- Server_New/Server_New.vcxproj.filters | 80 ----------- Server_New/Utils.cpp | 12 -- Server_New/resource.h | 14 -- Server_New/winapi.cpp | 26 ---- Server_New/winapi.h | 5 - osu!Lyrics.sln | 6 - 18 files changed, 711 deletions(-) delete mode 100644 Server_New/Base.h delete mode 100644 Server_New/Core.cpp delete mode 100644 Server_New/Core.h delete mode 100644 Server_New/Heap.cpp delete mode 100644 Server_New/Heap.h delete mode 100644 Server_New/HkPostQuitMessage.cpp delete mode 100644 Server_New/HkReadFile.cpp delete mode 100644 Server_New/Hook.h delete mode 100644 Server_New/Pipe.cpp delete mode 100644 Server_New/Pipe.h delete mode 100644 Server_New/Server_New.rc delete mode 100644 Server_New/Server_New.vcxproj delete mode 100644 Server_New/Server_New.vcxproj.filters delete mode 100644 Server_New/Utils.cpp delete mode 100644 Server_New/resource.h delete mode 100644 Server_New/winapi.cpp delete mode 100644 Server_New/winapi.h diff --git a/Server_New/Base.h b/Server_New/Base.h deleted file mode 100644 index 4454675..0000000 --- a/Server_New/Base.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -__interface Base -{ -public: - void Release(); -}; - -void ReleaseBaseObject(Base *pObject); -/* Utils.cpp . Ʈ ִ Ȯ Ŀ. - ϰ ŵ. =>ReleaseBaseObject(Object); */ \ No newline at end of file diff --git a/Server_New/Core.cpp b/Server_New/Core.cpp deleted file mode 100644 index 8dda10f..0000000 --- a/Server_New/Core.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "Core.h" - -void Core::Init() -{ - - CreateHookObject(&ReadFileHook, &hkReadFile, pHeap); - CreateHookObject(&PostQuitMessageHook, &hkPostQuitMessage, pHeap); -} - -void Core::Release() -{ - ReleaseBaseObject(ReadFileHook); - ReleaseBaseObject(PostQuitMessageHook); -} \ No newline at end of file diff --git a/Server_New/Core.h b/Server_New/Core.h deleted file mode 100644 index 871cfc7..0000000 --- a/Server_New/Core.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - - -#include -#include - -#include "winapi.h" -#include "Base.h" -#include "Heap.h" -#include "Hook.h" - -typedef BOOL(WINAPI tReadFile)(HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED); -typedef VOID(WINAPI tPostQuitMessage)(int); - - -class Core : public Base -{ -private: - Heap *pHeap; - - HookBase *ReadFileHook; - HookBase *PostQuitMessageHook; - -public: - void Init(); - void Release(); -}; \ No newline at end of file diff --git a/Server_New/Heap.cpp b/Server_New/Heap.cpp deleted file mode 100644 index 3e1ef4b..0000000 --- a/Server_New/Heap.cpp +++ /dev/null @@ -1,183 +0,0 @@ -#include "Core.h" - -#define _HEAP -#ifdef _HEAP -void Heap::AllocPage() -{ - SYSTEM_INFO sys_info; - DWORD pNextPage = NULL; - - GetSystemInfo(&sys_info); - - pNextPage = (DWORD)pHeap + szHeapMax; - VirtualAlloc(LPVOID(pNextPage), sys_info.dwPageSize, MEM_RESERVE, PAGE_NOACCESS); -} - - -LPVOID Heap::AllocHeapEx(const size_t szHeap, const DWORD dwProtect) -{ - std::list::iterator it; - - if (pAllocatedHeap.empty() && pCollectedHeap.empty()) - { - return VirtualAlloc(this->pHeap, szHeap, MEM_COMMIT, dwProtect); - } - - ZeroMemory(&it, sizeof(it)); - for (it = pCollectedHeap.begin(); it != pCollectedHeap.end(); ++it) - { - if ((*it)->GetSize()>szHeap) break; - } - - if (it == pCollectedHeap.end()) - { - ZeroMemory(&it, sizeof(it)); - for (it = pAllocatedHeap.begin(); it != pAllocatedHeap.end();) - { - DWORD dwFrontObject = NULL; - DWORD dwNextObject = NULL; - - dwFrontObject = (DWORD)(*it)->Object() + (DWORD)(*it)->GetSize(); - dwNextObject = (DWORD)(*it++)->Object(); - - if (dwNextObject - dwFrontObject >= szHeap) - { - return VirtualAlloc(LPVOID(dwFrontObject), szHeap, MEM_COMMIT, dwProtect); - } - } - - } - else - { - DWORD dwAddrToAlloc = NULL; - - dwAddrToAlloc = (DWORD)(*it)->Object() + (DWORD)(*it)->GetSize(); - - if (szHeap + dwAddrToAlloc < szHeapMax) - { - this->AllocPage(); - } - - return VirtualAlloc(LPVOID(dwAddrToAlloc), szHeap, MEM_COMMIT, dwProtect); - - } - - return nullptr; -} - -bool Heap::AllocHeap(const size_t szHeap, const DWORD dwProtect, HeapObject &hbObject) -{ - LPVOID pObject = nullptr; - HeapObject tmpObject = nullptr; - - pObject = AllocHeapEx(szHeap, dwProtect); - - if (pObject != nullptr) - { - tmpObject = new __HeapObject(pObject, szHeap, dwProtect); - hbObject = tmpObject; - - return true; - } - - return false; -} - -void Heap::ReleaseHeap(HeapObject *hbObject) -{ - std::list::iterator it; - - for (it = this->pAllocatedHeap.begin(); it != pAllocatedHeap.end(); ++it) - { - if ((*it) == *hbObject) { - this->pAllocatedHeap.erase(it); - break; - } - } - - VirtualFree((*hbObject)->Object(), (*hbObject)->GetSize(), MEM_DECOMMIT); - - *hbObject = nullptr; - - return; -} - -void Heap::CollectHeap(HeapObject *hbObject) -{ - std::list::iterator it; - - for (it = this->pAllocatedHeap.begin(); it != pAllocatedHeap.end(); ++it) - { - if ((*it) == *hbObject) { - this->pAllocatedHeap.erase(it); - break; - } - } - - pCollectedHeap.push_back(*hbObject); - - *hbObject = nullptr; - - return; -} - -void Heap::Init() -{ - SYSTEM_INFO sys_info; - LPVOID pTmpHeap; - - GetSystemInfo(&sys_info); - - pTmpHeap = VirtualAlloc(nullptr, sys_info.dwPageSize, MEM_RESERVE, PAGE_NOACCESS); - if (pTmpHeap != nullptr) - { - this->szHeapMax = sys_info.dwPageSize; - this->pHeap = pTmpHeap; - } - - return; -} - -void Heap::Release() -{ - - std::list::iterator it; - - ZeroMemory(&it, sizeof(it)); - for (it = this->pAllocatedHeap.begin(); it != pAllocatedHeap.end(); ++it) - { - delete (*it); - } - - ZeroMemory(&it, sizeof(it)); - for (it = this->pCollectedHeap.begin(); it != pCollectedHeap.end(); ++it) - { - delete (*it); - } - - VirtualFree(this->pHeap, 0, MEM_RELEASE); -} -#endif - -#define _HEAP_OBJECT -#ifdef _HEAP_OBJECT -__HeapObject::__HeapObject(LPVOID object, size_t size, DWORD protect) -{ - this->pObject = object; - this->szHeap = size; - this->dwProtect = protect; -} - -size_t __HeapObject::GetSize() { return this->szHeap; } -DWORD __HeapObject::GetProtection() { return this->dwProtect; } -DWORD __HeapObject::SetProtection(DWORD dwProtect) -{ - DWORD dwOldProtect; - VirtualProtect(pObject, szHeap, dwProtect, &dwOldProtect); - this->dwProtect = dwProtect; - - return dwOldProtect; -} - -LPVOID __HeapObject::Object() { return this->pObject; } -#endif \ No newline at end of file diff --git a/Server_New/Heap.h b/Server_New/Heap.h deleted file mode 100644 index aea481d..0000000 --- a/Server_New/Heap.h +++ /dev/null @@ -1,40 +0,0 @@ -#pragma once - -typedef class __HeapObject -{ -protected: - LPVOID pObject; - DWORD dwProtect; - size_t szHeap; - -public: - __HeapObject(LPVOID object, size_t size, DWORD protect); - size_t GetSize(); - - DWORD SetProtection(DWORD dwProtect); - DWORD GetProtection(); - LPVOID Object(); -}*HeapObject; - -class Heap : public Base -{ -private: - LPVOID pHeap; - - size_t szHeapUsing; - size_t szHeapMax; - - std::list pAllocatedHeap; - std::list pCollectedHeap; - - void AllocPage(); - LPVOID AllocHeapEx(const size_t szHeap, const DWORD dwProtect); - -public: - void Release(); - void Init(); - - bool AllocHeap(size_t szHeap, DWORD dwProtect, HeapObject &hbObject); - void ReleaseHeap(HeapObject *hbObject); - void CollectHeap(HeapObject *hbObject); -}; diff --git a/Server_New/HkPostQuitMessage.cpp b/Server_New/HkPostQuitMessage.cpp deleted file mode 100644 index ffb02a8..0000000 --- a/Server_New/HkPostQuitMessage.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "Core.h" - -VOID WINAPI hkPostQuitMessage(int iMessage) -{ - -} \ No newline at end of file diff --git a/Server_New/HkReadFile.cpp b/Server_New/HkReadFile.cpp deleted file mode 100644 index b8c07de..0000000 --- a/Server_New/HkReadFile.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "Core.h" - -BOOL WINAPI hkReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped) -{ - return true; -} \ No newline at end of file diff --git a/Server_New/Hook.h b/Server_New/Hook.h deleted file mode 100644 index 0a28463..0000000 --- a/Server_New/Hook.h +++ /dev/null @@ -1,112 +0,0 @@ -#pragma once - -const BYTE szOpcode = 5; -const BYTE asmJmp = 0xE9; - -BOOL WINAPI hkReadFile(HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED); -VOID WINAPI hkPostQuitMessage(int); - - -typedef class __ExcuteableObject : public __HeapObject -{ -public: - template - _pointer_func_type Run() - { - return (_pointer_func_type)this->Object(); - } -}*ExcuteableObject; - - -template -class HookBase : public Base -{ -protected: - DWORD dwFuncRefAddr; - BYTE OrignalOpcode[szOpcode]; - - Heap *pBaseHeap; - - _pointer_function lFunction; - ExcuteableObject pFuncRef; - -public: - - void SetFunction(_pointer_function pFunc) - { - this->lFunction = pFunc; - } - - void HookBaseSetFunction(_pointer_function Func) - { - this->lFunction = Func; - } - - void HookBaseHook(char moduleName[], char funcName[]) - { - DWORD dwOldProtect = NULL; - - DWORD dwNewAddress = NULL; - DWORD dwOldAddress = NULL; - - this->dwFuncRefAddr = (DWORD)GetProcAddress(GetModuleHandleA(moduleName), funcName); - OrignalOpcode[0] = asmJmp; - memcpy(&OrignalOpcode, (LPVOID)dwFuncRefAddr, szOpcode); - - VirtualProtect(LPVOID(this->dwFuncRefAddr), szOpcode, PAGE_EXECUTE_READWRITE, &dwOldProtect); - - dwOldAddress = (DWORD)(&this->dwFuncRefAddr) - DWORD(this->pFuncRef->Object()) - szOpcode; - memcpy(this->pFuncRef->Object(), (LPVOID)dwOldAddress, sizeof(DWORD)); - - dwNewAddress = DWORD(this->lFunction) - DWORD(this->dwFuncRefAddr) - szOpcode; - - memcpy(LPVOID(this->dwFuncRefAddr), &asmJmp, sizeof(BYTE)); - memcpy(LPVOID(this->dwFuncRefAddr + 1), (LPVOID)dwNewAddress, sizeof(DWORD)); - - VirtualProtect(LPVOID(this->dwFuncRefAddr), szOpcode, dwOldProtect, nullptr); - - return; - } - - void UnHook() - { - DWORD dwOldProtect = NULL; - - VirtualProtect(LPVOID(this->dwFuncRefAddr), szOpcode, PAGE_EXECUTE_READWRITE, &dwOldProtect); - - memcpy(LPVOID(this->dwFuncRefAddr), &OrignalOpcode, szOpcode); - - VirtualProtect(LPVOID(this->dwFuncRefAddr), szOpcode, dwOldProtect, nullptr); - - return; - } - - void Init(Heap *pSharedHeap) - { - HeapObject hbTmpObject = nullptr; - - pSharedHeap->AllocHeap(sizeof(DWORD), PAGE_EXECUTE_READWRITE, hbTmpObject); - - this->pFuncRef = (ExcuteableObject)hbTmpObject; - } - - void Release() - { - this->UnHook(); - - this->pBaseHeap->ReleaseHeap((HeapObject*)&pFuncRef); - } -}; - -template -void CreateHookObject(HookBase<_func_type> **Object, _func_type toCall, Heap *pSharedHeap) -{ - HookBase<_func_type> *tmpObject = new HookBase<_func_type>; - - tmpObject->Init(pSharedHeap); - tmpObject->SetFunction(toCall); - - *Object = tmpObject; - - return; -} \ No newline at end of file diff --git a/Server_New/Pipe.cpp b/Server_New/Pipe.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/Server_New/Pipe.h b/Server_New/Pipe.h deleted file mode 100644 index 6f70f09..0000000 --- a/Server_New/Pipe.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/Server_New/Server_New.rc b/Server_New/Server_New.rc deleted file mode 100644 index 0f743536e36fafe36d3e0fa0b014bedbd54db970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2598 zcmdT`OHaZ;5dOTH_#f7CfoMSV;#D3JVnM?znvf7ft&;FCJmST_E~ezQ$eUn>YxMb)#~zo$Ep9O69+N*M zb;ui&ir$Q;F3*ZjVy%aJ%A~P_ZQhd6G(ql=|Mn^EXjvwW`!l>051btK>FGOS%fPIL1EhWLLb3&Xm+~i$0xEzwqyRHoO~6?u5$D5|L=h z93wC3eim7^SmE=rjf2IElstHNiI#MK_zhxDB%*E!o6Hu1bHPHJ^QFzM^JesypHV&? zZS2!;Z%XLN>2Q|GH1L*mbJ%1E)|;RcZQ&=~7q7|T_eNs#Z^^d1c5(*s@!N~nSt1jU k4E^gnR4R7;JJetqFC6^dh= - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {F502FE30-3541-4557-853F-2947B33B3799} - Win32Proj - Server_New - 8.1 - - - - DynamicLibrary - true - v140 - Unicode - - - DynamicLibrary - false - v140 - true - Unicode - - - DynamicLibrary - true - v140 - Unicode - - - DynamicLibrary - false - v140 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - - - true - - - false - - - false - - - - - - Level3 - Disabled - WIN32;_DEBUG;_WINDOWS;_USRDLL;SERVER_NEW_EXPORTS;%(PreprocessorDefinitions) - - - Windows - true - - - - - - - Level3 - Disabled - _DEBUG;_WINDOWS;_USRDLL;SERVER_NEW_EXPORTS;%(PreprocessorDefinitions) - - - Windows - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_WINDOWS;_USRDLL;SERVER_NEW_EXPORTS;%(PreprocessorDefinitions) - - - Windows - true - true - true - - - - - Level3 - - - MaxSpeed - true - true - NDEBUG;_WINDOWS;_USRDLL;SERVER_NEW_EXPORTS;%(PreprocessorDefinitions) - - - Windows - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Server_New/Server_New.vcxproj.filters b/Server_New/Server_New.vcxproj.filters deleted file mode 100644 index 69ff439..0000000 --- a/Server_New/Server_New.vcxproj.filters +++ /dev/null @@ -1,80 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {adbdb4a6-2ded-4574-a158-5c8a1bc52038} - - - {1626fc33-290e-4600-8bad-9e5342be5df4} - - - {4cb67c1c-0d60-493b-9040-66ed89d1ae16} - - - {e08eab3d-c7bb-4dba-ae4f-70d700fe0d07} - - - - - Source Files - - - Source Files\WinAPI - - - Source Files - - - Source Files - - - Source Files - - - Source Files\Hooking - - - Source Files\Hooking - - - - - Header Files - - - Header Files - - - Header Files\WinAPI - - - Header Files\Hooking - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/Server_New/Utils.cpp b/Server_New/Utils.cpp deleted file mode 100644 index 77601f0..0000000 --- a/Server_New/Utils.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "Core.h" - - -void ReleaseBaseObject(Base *pObject) -{ - if (&pObject != nullptr) - { - pObject->Release(); - ZeroMemory(pObject, sizeof(pObject)); - } - return; -} diff --git a/Server_New/resource.h b/Server_New/resource.h deleted file mode 100644 index 2f556ad..0000000 --- a/Server_New/resource.h +++ /dev/null @@ -1,14 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Server_New.rc - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/Server_New/winapi.cpp b/Server_New/winapi.cpp deleted file mode 100644 index 811ab6e..0000000 --- a/Server_New/winapi.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "Core.h" - -Core ServerCore; - -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) -{ - if (fdwReason == DLL_PROCESS_ATTACH) - { - ServerCore.Init(); - } - else if (fdwReason == DLL_PROCESS_DETACH) - { - ServerCore.Release(); - } - return TRUE; -} - -void ReleaseHandleObject(HANDLE &hObject) -{ - if (hObject != nullptr) - { - CloseHandle(hObject); - hObject = nullptr; - } - return; -} \ No newline at end of file diff --git a/Server_New/winapi.h b/Server_New/winapi.h deleted file mode 100644 index e3a56e4..0000000 --- a/Server_New/winapi.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#include - -void ReleaseHandleObject(HANDLE &hObject); \ No newline at end of file diff --git a/osu!Lyrics.sln b/osu!Lyrics.sln index e1e088e..9052fc6 100644 --- a/osu!Lyrics.sln +++ b/osu!Lyrics.sln @@ -10,8 +10,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu!Lyrics", "osu!Lyrics\os EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Server", "Server\Server.vcxproj", "{55B49E76-AA07-447F-ADE2-B170269EC1EB}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Server_New", "Server_New\Server_New.vcxproj", "{F502FE30-3541-4557-853F-2947B33B3799}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D28D2AA9-2B4A-44A6-8DDC-5EA3BD35B112}" ProjectSection(SolutionItems) = preProject LICENSE = LICENSE @@ -31,10 +29,6 @@ Global {55B49E76-AA07-447F-ADE2-B170269EC1EB}.Debug|Win32.Build.0 = Debug|Win32 {55B49E76-AA07-447F-ADE2-B170269EC1EB}.Release|Win32.ActiveCfg = Release|Win32 {55B49E76-AA07-447F-ADE2-B170269EC1EB}.Release|Win32.Build.0 = Release|Win32 - {F502FE30-3541-4557-853F-2947B33B3799}.Debug|Win32.ActiveCfg = Debug|Win32 - {F502FE30-3541-4557-853F-2947B33B3799}.Debug|Win32.Build.0 = Debug|Win32 - {F502FE30-3541-4557-853F-2947B33B3799}.Release|Win32.ActiveCfg = Release|Win32 - {F502FE30-3541-4557-853F-2947B33B3799}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE