Edgar 356 Опубликовано 3 мая, 2017 (изменено) Кто нибудь изменял порт логинсервера HF? советовать доисторическую програмку не надо! после нее не запускает на винде 8 и 10 Изменено 3 мая, 2017 пользователем Edik1996 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
javans 6 Опубликовано 3 мая, 2017 stdafx.h #ifndef ___STDAFX_H #define ___STDAFX_H#include "targetver.h"#define WIN32_LEAN_AND_MEAN#include #define CATCH_PORT 2106#define NEW_PORT 2107#include #pragma comment(lib, "ws2_32.lib")class HookedFunction {private:LPCWSTR dll;LPCSTR func;LPVOID addr;LPVOID fAddr;bool hooked;BYTE saved[ 6]; //original func six bytes for unhookBYTE jump[ 6]; //jump near instruction setvoid setHooked(bool hooked) {this->hooked = hooked;}public:HookedFunction(LPCWSTR dll, LPCSTR func, LPVOID addr);~HookedFunction();bool hook();bool unhook();PBYTE getSaved() {return saved;}bool isHooked() {return hooked;}};extern "C" __declspec(dllexport) void l2porthook_export(); //for attaching in PE#endif l2porthook.cpp #include "stdafx.h"bool writeProcMem(LPVOID fAddr, PBYTE raw, SIZE_T size);HookedFunction::HookedFunction(LPCWSTR dll, LPCSTR func, LPVOID addr) {this->dll = dll;this->func = func;this->addr = addr;this->hooked = false;this->fAddr = (LPVOID) GetProcAddress(GetModuleHandle(dll), func);ReadProcessMemory(GetCurrentProcess(), this->fAddr, this->saved, 6, 0);DWORD nearAddr = ((DWORD) this->addr) - ((DWORD) this->fAddr) - 5;this->jump[ 0] = 0xe9;memcpy(&(this->jump[1]), &nearAddr, 4);this->jump[ 5] = 0xc3;}HookedFunction::~HookedFunction() {this->unhook();}bool HookedFunction::hook() {if(this->hooked) {return false;}this->hooked = true;return writeProcMem(this->fAddr, this->jump, 6);}bool HookedFunction::unhook() {if(!this->hooked) {return false;}this->hooked = false;return writeProcMem(this->fAddr, this->saved, 6);}bool writeProcMem(LPVOID fAddr, PBYTE raw, SIZE_T size) {DWORD oldProtect;if(!VirtualProtect(fAddr, size, PAGE_EXECUTE_READWRITE, &oldProtect)) {return false;}if(!WriteProcessMemory(GetCurrentProcess(), fAddr, raw, size, 0)) {return false;}if(!VirtualProtect(fAddr, size, oldProtect, &oldProtect)) {return false;}FlushInstructionCache(GetCurrentProcess(), 0, 0);return true;} dllmain.cpp #include "stdafx.h"int __stdcall nConnect(_In_ SOCKET s,_In_ const struct sockaddr *name,_In_ int namelen);HookedFunction* hFunc;BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:hFunc = new HookedFunction(L"ws2_32.dll", "connect", &nConnect);if(!hFunc->hook()) {MessageBox(NULL, L"failed hook connect func", NULL, MB_OK | MB_ICONERROR);}break;case DLL_THREAD_ATTACH:break;case DLL_THREAD_DETACH:break;case DLL_PROCESS_DETACH:hFunc->unhook();delete hFunc;break;}return TRUE;}int __stdcall nConnect(_In_ SOCKET sock, _In_ const struct sockaddr *name, _In_ int namelen) {if(!hFunc->unhook()) {MessageBox(NULL, L"failed unhook", NULL, MB_OK | MB_ICONERROR);}struct sockaddr_in* addr = (struct sockaddr_in*) name;int ret;if(::ntohs(addr->sin_port) == CATCH_PORT) {addr->sin_port = ::htons(NEW_PORT);}ret = ::connect(sock, name, namelen);if(!hFunc->hook()) {MessageBox(NULL, L"failed hook", NULL, MB_OK | MB_ICONERROR);}return ret;}__declspec(dllexport) void l2porthook_export() {} Автор: n3k0Nation Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Angelika 622 Опубликовано 3 мая, 2017 напиши какой порт дефолтный сменить на какой нужно запишу видос с: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Virus808 1 Опубликовано 6 октября, 2017 Помогите поменять порт логин сервера. На форуме нашел как это делается, сделал все по инструкции, выдает ошибку на видео карту Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Virus808 1 Опубликовано 13 октября, 2017 Не у кого не возникала такая проблема? 2017.10.13 13:14:45 OS : No OS CPU : GenuineIntel Intel® Core i5-3210M CPU @ 2.50GHz @ 2496 MHz 2047MB RAM Video : NVIDIA GeForce GT 640M (7654) PosCode : LS1(273) 0:0:0 4/0 [359] General protection fault! History: UNetworkHandler::Init <- UGameEngine::Init <- InitEngine Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты