Bonsoir, je vous partage les codes sources (C++) que j'ai trouvé sur un autre forum (e***) pour pouvoir ouvrir plusieurs S4Client en même temps sans passer par des machines virtuelles.
[ dllMain.cpp ]
[ bypass.cpp ]
[ bypass.h ]
[ dllMain.cpp ]
Code:
// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
#include "bypass.h"
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Install, 0, 0, 0);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
[ bypass.cpp ]
Code:
#include "stdafx.h"
#include "bypass.h"
#include <detours.h>
void Install()
{
Sleep(1000);
while(!GetModuleHandle(TEXT("S4Client.exe"))) Sleep(100);
HMODULE client = GetModuleHandle(TEXT("S4Client.exe"));
xc_init = (DWORD)client + xc_init;
DWORD mutex = (DWORD)client + 0x9D640;
mLoadBypass = (tLoadBypass)DetourFunction((PBYTE)xc_init, (PBYTE)LoadBypass);
PatchMutex(mutex);
MessageBoxA(NULL, "x3.mem bypassed! ^^", "by psch0", MB_OK);
}
BOOL __stdcall LoadBypass()
{
return TRUE;
}
void PatchMutex(DWORD mutex)
{
DWORD old = 0;
VirtualProtect(reinterpret_cast<LPVOID>(mutex), 4, PAGE_EXECUTE_READWRITE, &old);
memcpy(reinterpret_cast<LPVOID*>(mutex), "\xC3", 1);
VirtualProtect(reinterpret_cast<LPVOID>(mutex), 4, old, NULL);
}
Code:
#include <Windows.h>
#include <string>
static BOOL __stdcall LoadBypass();
typedef BOOL (__stdcall *tLoadBypass)();
static tLoadBypass mLoadBypass;
static DWORD xc_init = 0xDC070;
void Install();
void PatchMutex(DWORD mut);
Vidéo :
[youtube]https://www.youtube.com/watch?v=4Xu4fTjW1ZM[/youtube]
[youtube]https://www.youtube.com/watch?v=4Xu4fTjW1ZM[/youtube]
Last edited: