Battleye Bypass
Can I use this for a Battleye bypass?=P
Im kinda new for BE Bypasses to code
Im kinda new for BE Bypasses to code
Code:
void SpawnWeapMagsVehic( unsigned int textsize, CMemoryPage & base_module, CMemoryPage & kernel32, CMemoryPage & ws32 ,CMemoryPage & kernel, CMemoryPage & ntdll, CRemoteStuffSpawner & spawner, CGameHacker & game, const char ** weapons, const unsigned int numweap, const char ** mags, const unsigned int nummags, const char * vehic, std::string script) {
spawner.PrepareRemoteExecution(textsize,base_module,game);
unsigned int be_base = game.GetDLLBase("BEClient.dll",game.GetPid());
CMemoryPage battleye;
if(be_base) {
unsigned int battleyebase = be_base+game.GetTextSectionOffset(be_base);
unsigned int battleyesize = game.GetRegionSize(battleyebase);
battleye = game.GetMemoryPage(battleyebase,battleyesize);
//Wipe the module
unsigned char * trashdata = new unsigned char [battleyesize];
memset(trashdata,0xFF,battleyesize);
if(!game.Write(battleyebase,trashdata,battleyesize) || !battleye.IsValid()) {
cout << "Failed to wipe be, security abort!" << endl;
::system("Pause");
::_exit(0);
}
cout << "Wiped out BE successfully" << endl;
delete[] trashdata;
}
CMemoryPage kernelnow = game.GetMemoryPage(kernel.r2v(0),kernel.Size());
CMemoryPage ntdllnow = game.GetMemoryPage(ntdll.r2v(0),ntdll.Size());
CMemoryPage kernel32now = game.GetMemoryPage(kernel32.r2v(0),kernel32.Size());
CMemoryPage ws32now = game.GetMemoryPage(ws32.r2v(0),ws32.Size());
if(!game.Write(kernel.r2v(0),kernel.GetData(kernel.r2v(0)),kernel.Size())
||!game.Write(ntdll.r2v(0),ntdll.GetData(ntdll.r2v(0)),ntdll.Size())
||!game.Write(kernel32.r2v(0),kernel32.GetData(kernel32.r2v(0)),kernel32.Size())
||!game.Write(ws32.r2v(0),ws32.GetData(ws32.r2v(0)),ws32.Size()) ) {
cout << "Error patching modules, security abort!" << endl;
::system("Pause");
::_exit(0);
}
unsigned int stopWorker = 0;
unsigned int fileWorker = spawner.MakeFileServerThread(&stopWorker,game);
unsigned int renderWorkerThreadId = game.GetThreadIdByEip(spawner.GetRenderEip());
unsigned int weapFun = !numweap ? 0 : spawner.MakeRemoteAddWeaponFunc( weapons,numweap,game);
unsigned int magsFun = !nummags ? 0 : spawner.MakeRemoteAddMagazineFunc( mags,nummags,game);
unsigned int vehicFun = !vehic ? 0 : spawner.MakeRemoteCreateVehicleLocal( vehic,game);
unsigned int scriptFun = !script.length() ? 0 : spawner.MakeRemoteScriptExecFunc(script,game);
cout << "Giving stuff" << endl;
HANDLE worker = game.ExecuteRemoteCode(fileWorker,false);
game.PauseResumeThread(false,renderWorkerThreadId);
if(numweap) game.ExecuteRemoteCode(weapFun);
if(nummags) game.ExecuteRemoteCode(magsFun);
if(vehic) game.ExecuteRemoteCode(vehicFun);
if(scriptFun) game.ExecuteRemoteCode(scriptFun);
game.WriteInt(stopWorker,1);
game.WaitForThread(worker);
game.PauseResumeThread(true,renderWorkerThreadId);
if(numweap) CRemoteStuffSpawner::FreeTrashedMemory(weapFun,game);
if(nummags) CRemoteStuffSpawner::FreeTrashedMemory(magsFun,game);
if(vehic) CRemoteStuffSpawner::FreeTrashedMemory(vehicFun,game);
if(scriptFun) CRemoteStuffSpawner::FreeTrashedMemory(scriptFun,game);
CRemoteStuffSpawner::FreeTrashedMemory(fileWorker,game);
if(!game.Write(kernelnow.r2v(0),kernelnow.GetData(kernelnow.r2v(0)),kernelnow.Size())
||!game.Write(ntdllnow.r2v(0),ntdllnow.GetData(ntdllnow.r2v(0)),ntdllnow.Size())
||!game.Write(kernel32now.r2v(0),kernel32now.GetData(kernel32now.r2v(0)),kernel32now.Size())
||!game.Write(ws32now.r2v(0),ws32now.GetData(ws32now.r2v(0)),ws32now.Size())) {
cout << "Error unpatching modules, security abort!" << endl;
::system("Pause");
::_exit(0);
}
kernelnow.Free();
ntdllnow.Free();
kernel32now.Free();
ws32now.Free();
if(be_base) {
if(!game.Write(battleye.r2v(0),battleye.GetData(battleye.r2v(0)),battleye.Size())) {
cout << "Failed to unwipe be, security abort!" << endl;
::system("Pause");
::_exit(0);
}
battleye.Free();
}
spawner.PostProcessRemoteExecution(base_module,game);
}

