Перейти к содержанию
Авторизация  
Edgar

Изменить порт логин сервера HF

Рекомендуемые сообщения

Кто нибудь изменял порт логинсервера HF?  советовать доисторическую програмку не надо! после нее не запускает на винде 8 и 10

Изменено пользователем Edik1996

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 unhook
BYTE jump[ 6]; //jump near instruction set

void 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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

напиши какой порт дефолтный сменить на какой нужно запишу видос с:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помогите поменять порт логин сервера. На форуме нашел как это делается, сделал все по инструкции, выдает ошибку на видео карту

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не у кого не возникала такая проблема?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...