H4x BFP4f Fixed Downloads › Battlefield Series › Battlefield Play4Free Kategorie: Battlefield Play4Free Entwickler: boboben1 Hochgeladen von: KN4CK3R Hinzugefügt am: Fr 10. Jun 2011, 01:10 System: Windows Datei nicht verfügbar. Datei nicht verfügbar. Beschreibung Bei Problemen mit einem Hack hilftein Blick in die FAQ! 5$Hack Source - Looked through it to find what i needed to do(did not use any functions)Revolty - His gave me inspirationrzBase - Some functions5$Base for p4f - BaseJugga - Classessome other people(i forgot)Me(boboben1) - Adding features to 5$Base for p4f.Features:Name EspHealth EspDistance EspSourcecode:[cpp]/**********************Battlefield Play4Free************************//*************************Working Base******************************//**************************12/14/2010*******************************//*Credits to: zoomgod, Strife, Winslow, GetModuleHandle, Freaky123**//***Patrick, R4z8r, learn_more, doobie, KozmoK, Sparten, smoochy,***//**********************Jugga, Vossy, freitag************************//****************Creator of this base: 5$andimyours*****************//* This is a UC-Forum-ONLY public release./* Please do not discuss or share this outside of the UnKnoWnCheaTs forum./* This information or any part of it may only be distributed outside of/* UnKnoWnCheaTs forum in binary/compiled form./* Please credit all of the above UC-Forum members for this information./*/* This information is distributed in the hope that it will be useful,/* but WITHOUT ANY WARRANTY, without even the implied warranty of/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */#include "BFP4F_Classes.h"#include "Functions.h"#include <Tlhelp32.h>bool lon = false;HMODULE hmRendDx9Base = NULL;DWORD dwInitDllBase = NULL;#define IsPlayerValid(p) ( (p) && (p->Alive) && (p->Soldier) && (p->Soldier->soldier_ptr) /*&& (p->SoldierObj->soldier_ptr->Matrix)*/ )bool Initialized = false;LPDIRECT3DDEVICE9 pDevice;D3DVIEWPORT9 Viewport;bool Fire = false;void SetMyCursorPos(FLOAT PosX, FLOAT PosY) { //Credits: Razor FLOAT ScreenX = (float)Viewport.Width/2; FLOAT ScreenY = (float)Viewport.Height/2; //PosX -= ScreenX; //PosY -= ScreenY; mouse_event( 0x1, PosX, PosY, NULL, NULL ); }ID3DXFont *pFont;#define dWhite D3DCOLOR_RGBA(255, 255, 255, 255)#define dRed D3DCOLOR_RGBA(255, 000, 000, 255)#define dGreen D3DCOLOR_RGBA(000, 255, 000, 255)#define dBlue D3DCOLOR_RGBA(000, 000, 255, 255)#define dBlack D3DCOLOR_RGBA(128, 128, 128, 255)#define dPurple D3DCOLOR_RGBA(125, 000, 255, 255)#define dGrey D3DCOLOR_RGBA(128, 128, 128, 255)#define dYellow D3DCOLOR_RGBA(255, 255, 000, 255)#define dOrange D3DCOLOR_RGBA(255, 125, 000, 255)CClassManager* pClassManager;CRenderer* pRenderer;CPlayerManager* pPlayerManager;CPlayer* pLocalPlayer; CInputManager* pInputManager;CActionBuffer* pActionBuffer;DWORD oActionBuffer = 0;CObjectManager* pObjectManager;CDebugTextWriter* pDebugTextWriter;DWORD dwWorldToScreen;#define PATT_CLASSMANAGER "x89x35x99x99x99x99xFFx15x99x99x99x99x8Bx0Dx99x99x99x99x8Bx01"#define MASK_CLASSMANAGER "xx????xx????xx????xx"float actionBuffer[64] = {0};void wtoc(CHAR*, const WCHAR*);DWORD GetModuleSize(LPSTR strModuleName){ MODULEENTRY32 lpme= {0}; DWORD dwSize=0; DWORD PID=GetCurrentProcessId(); BOOL isMod=0; char chModName[256]; strcpy(chModName,strModuleName); _strlwr(chModName); HANDLE hSnapshotModule=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE ,PID); if (hSnapshotModule) { lpme.dwSize=sizeof(lpme); isMod=Module32First(hSnapshotModule,&lpme); while(isMod) { char wtocI[256] = {0}; wtoc(wtocI,lpme.szExePath); if (strcmp(_strlwr(wtocI),chModName)) { dwSize=(DWORD)lpme.modBaseSize; CloseHandle(hSnapshotModule); return dwSize; } isMod=Module32Next(hSnapshotModule,&lpme); } } CloseHandle(hSnapshotModule); return 0;}__declspec( naked ) bool WINAPI bWorldToScreen( D3DXVECTOR3* pVecInOut ){ _asm mov ecx, pDebugTextWriter; _asm jmp [ dwWorldToScreen ];}#define SmoPat "x81xECx00x00x00x00xD9xEEx8Bx0Dx00x00x00x00x8Bx01xD9x54x24x04x8Bx50x6CxD9x54x24x08x56"#define SmoMask "xx????xxxx????xxxxxxxxxxxxxx"DWORD FindPattern(DWORD, DWORD, BYTE*, char*);bool FindMyWorldToScreen(){ DWORD dwRendererBase = (DWORD)GetModuleHandle( L"RendDx9.dll" ); //MessageBox(0,L"Before.",L"Victory",0); DWORD dwRendererSize = GetModuleSize("RendDx9.dll"); //MessageBox(0,L"After.",L"Victory",0); dwWorldToScreen = FindPattern( dwRendererBase,dwRendererSize,(PBYTE)SmoPat, SmoMask ); if(!dwWorldToScreen) return false; return true;}DWORD FindPattern(DWORD start_offset, DWORD size, BYTE* pattern, char mask[] ){ DWORD pos = 0; int searchLen = strlen(mask) - 1; for( DWORD retAddress = start_offset; retAddress < start_offset + size; retAddress++ ) { if( *(BYTE*)retAddress == pattern[pos] || mask[pos] == '?' ){ if( mask[pos+1] == '�' ) return (retAddress - searchLen); pos++; } else pos = 0; } return NULL;}/*CActionBuffer* _stdcall hkActionBuffer(){//MessageBox(0,L"F***PB",0,0);_asm call oActionBuffer;_asm mov pActionBuffer, eax;_asm pushad;if( pActionBuffer ){for ( int i = 0; i < 64; i++ ) {pActionBuffer->inputKeys += actionBuffer;//actionBuffer = 0.0f;if (GetAsyncKeyState(VK_UP) || (GetAsyncKeyState(VK_UP) && GetAsyncKeyState(0x41)) || (GetAsyncKeyState(VK_UP) && GetAsyncKeyState(0x53))){pActionBuffer->inputKeys[3] = 99999.0f;}}} _asm popad;return pActionBuffer;}//*/CActionBuffer* hkActionBuffer(){ __asm call oActionBuffer; __asm mov pActionBuffer, eax; __asm pushad; if(pActionBuffer) { for(int i = 0; i < 255; i ++) { pActionBuffer->inputKeys += actionBuffer; actionBuffer = 0.0f; } } __asm popad; return pActionBuffer;}int zoomhack = 1;void HackRoutine(){ //if (GetAsyncKeyState(VK_NUMPAD1)) // lon = !lon; //if (Fire) ///{ // mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); // Sleep(25); // mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); // Fire = false; //} if (GetAsyncKeyState(VK_ADD)&1) { zoomhack += 1; } else if (GetAsyncKeyState(VK_SUBTRACT)&1) { zoomhack -= 1; }}DWORD WINAPI HookFunctions(LPVOID){ while (hmRendDx9Base==NULL) { hmRendDx9Base = GetModuleHandle(L"RendDx9.dll"); if (hmRendDx9Base == NULL) Sleep(200); } while(dwInitDllBase == NULL) { dwInitDllBase = (DWORD)GetProcAddress(hmRendDx9Base, "initDll"); if (dwInitDllBase == NULL) Sleep(200); } CloseHandle(hmRendDx9Base); DWORD dwPointerOffset = FindPattern(dwInitDllBase, dwInitDllBase + 512, (BYTE*)PATT_CLASSMANAGER, MASK_CLASSMANAGER); DWORD* dwPointerOffset2 = (DWORD*)(dwPointerOffset + 2); pClassManager = *((CClassManager**)((DWORD)*dwPointerOffset2)); while(pRenderer == NULL) pRenderer = (CRenderer *)pClassManager->GetClassPointerByName(&("Renderer")); while(!pPlayerManager) pPlayerManager = (CPlayerManager*)pClassManager->GetClassPointerByName( &string("PlayerManager") ); //MessageBoxW(0,L"Woot!",L"Victory",0); while(!pInputManager) pInputManager = (CInputManager*)pClassManager->GetClassPointerByName( &string("InputManager") ); while(!pObjectManager) pObjectManager = (CObjectManager*)pClassManager->GetClassPointerByName( &string("ObjectManager") ); while(!pDebugTextWriter) pDebugTextWriter = (CDebugTextWriter*) pClassManager->GetClassPointerByName( &string("DebugTextWriter") ); while(!FindMyWorldToScreen()) Sleep(100); //MessageBoxW(0,L"Woot2!",L"Victory",0); //oActionBuffer = (DWORD)HookVTableFunction((DWORD**)pInputManager,(PBYTE)&hkActionBuffer,13); MessageBoxW(0,L"Woot!",L"Victory",0); //MessageBoxW(0,L"Woot23!",L"Victory",0); while(1) { HackRoutine(); Sleep(2); } return 0;}typedef HRESULT (WINAPI* tEndScene)(LPDIRECT3DDEVICE9 pDevice);tEndScene oEndScene;void Initialize(LPDIRECT3DDEVICE9 pDevice){ D3DXCreateFont( pDevice, 10, 0, FW_THIN, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, L"Lucida Console", &pFont); Initialized = true;}int GetTextLength ( char *szString, ... ){ char szText[512]; memset(szText,0,512); strcpy(szText,szString); unsigned int i = 0, iStrLen = 0; while (i < strlen(szText)) { (szText) { case ' ': iStrLen += 4; break; case 'e': iStrLen += 6; break; case 'i': iStrLen += 2; break; case 'j': iStrLen += 3; break; case 'k': iStrLen += 6; break; case 'l': iStrLen += 2; break; case 'm': iStrLen += 10; break; case 'r': iStrLen += 4; case 'v': iStrLen += 7; break; case 'w': iStrLen += 9; break; case 'y': iStrLen += 7; break; case 'A': iStrLen += 7; break; case 'C': iStrLen += 7; break; case 'H': iStrLen += 7; break; case 'I': iStrLen += 2; break; case 'K': iStrLen += 7; break; case 'M': iStrLen += 9; break; case 'O': iStrLen += 7; break; case 'P': iStrLen += 7; break; case 'Q': iStrLen += 7; break; case 'R': iStrLen += 6; break; case 'V': iStrLen += 7; break; case 'W': iStrLen += 11; break; case 'X': iStrLen += 8; break; case 'Y': iStrLen += 7; break; default: iStrLen += 5; break; } i++; } return iStrLen;}void wtoc(CHAR* Dest, const WCHAR* Source){ int i = 0; while(Source != '�') { Dest = (CHAR)Source; ++i; }}//=====================================================================================/*|| :ESCRIPTION::|| This function will convert a CHAR string to a WCHAR string.|||| Param 1 :: Pointer to a buffer that will contain the converted string. Ensure this|| buffer is large enough; if not, buffer overrun errors will occur.|| Param 2 :: Constant pointer to a source CHAR string to be converted to WCHAR*/void ctow(WCHAR* Dest, const CHAR* Source){ int i = 0; while(Source != '�') { Dest = (WCHAR)Source; ++i; }}void fillrgba( int x, int y, int w, int h, int r, int g,int b,int a){ D3DRECT rec = { x, y, x + w, y + h }; pDevice->Clear( 1, &rec, D3DCLEAR_TARGET, D3DCOLOR_ARGB(a,r,g,b), 0, 0 );}void Drawopx(int x, int y, int width, int height, int r, int g, int b, int a, int line){ fillrgba(x,y+height,width,line,r,g,b,a); fillrgba(x,y,line,height,r,g,b,a); fillrgba(x,y,width,line,r,g,b,a); fillrgba(x+width,y,line,height,r,g,b,a);}__inline float GetDistance( const D3DXVECTOR3& From, const D3DXVECTOR3& To ){ float Angle[3] = {0,0,0}; Angle[0] = To.x-From.x; Angle[1] = To.y-From.y; Angle[2] = To.z-From.z; return sqrtf( Angle[0] * Angle[0] + Angle[1] * Angle[1] + Angle[2] * Angle[2] );}CPlayer* GetClosestByCrosshair(){ FLOAT ScreenX = (FLOAT)Viewport.Width / 2.0f; FLOAT ScreenY = (FLOAT)Viewport.Height / 2.0f; FLOAT Nearest = (FLOAT)INT_MAX; FLOAT PosX = 0.0f, PosY = 0.0f; CPlayer* saved_target = NULL; bool AimingAtEnemy = false; CPlayer* pRet = NULL; if(!pLocalPlayer) return 0; CObject* pLocalInfo = pLocalPlayer->Soldier ? pLocalPlayer->Soldier->soldier_ptr : NULL; if(!pLocalInfo) return 0; for(int i = 0; i < 255; i++) { CPlayer* pPlayer = pPlayerManager->GetPlayerByIndex(i); if (!IsPlayerValid(pPlayer)) continue; if (pPlayer == pLocalPlayer) continue; CObject* pInfo = pPlayer->SoldierObj ? pPlayer->Soldier->soldier_ptr : NULL; CArmor* pHealth = pInfo->Health; if(pHealth->fHealth <= 0.0f || !pPlayer->Alive) continue; D3DXVECTOR3 vOut; GET_ORIGIN_FROMMATRIX( &vOut, &pInfo->Matrix ); if( bWorldToScreen(&vOut) ) continue; PosX = vOut.x > ScreenX ? vOut.x - ScreenX : ScreenX - vOut.x; PosY = vOut.y > ScreenY ? vOut.y - ScreenY : ScreenY - vOut.y; FLOAT Temp = sqrt( PosX*PosX + PosY*PosY ); if(Temp > Nearest) continue; pRet = pPlayer; Nearest = Temp; } return pRet;}float oldzoom;inline void ZoomHack(float value){ pPlayerManager->LocalPlayer->zoom2 = value;}HRESULT WINAPI hkEndScene(LPDIRECT3DDEVICE9 pDevice){ pDevice->GetViewport(&Viewport); if(!Initialized)Initialize(pDevice); pDevice->SetRenderState(D3DRS_FOGENABLE,FALSE); /*static bool done = false; if (!done) { MessageBox(0,L"One Time On Endscene",0,0); done = true; }//*/ //if (IsBadReadPtr(pPlayerManager->LocalPlayer,4)) return oEndScene(pDevice); if (IsPlayerValid(pPlayerManager->LocalPlayer)) { //char pLocalInfo[33]; //char Buf1[33]; //itoa(pPlayerManager->LocalPlayer->Soldier->soldier_ptr->Health->fHealth,Buf1,10); //sprintf(pLocalInfo,"%s [Health: %s]",pPlayerManager->LocalPlayer->Name,Buf1); //pDebugTextWriter->OutlinedText(10,10,dWhite,&string(pLocalInfo)); for ( int i = 0; i < 255; i++ ) { //if (IsBadReadPtr(pPlayerManager->GetPlayerByIndex( i ),4)) continue; //if (!IsPlayerValid(pPlayerManager->GetPlayerByIndex( i ))) continue; if (IsPlayerValid(pPlayerManager->GetPlayerByIndex( i ))) { if( pPlayerManager->GetPlayerByIndex( i ) == pPlayerManager->LocalPlayer ) continue; static float oldzoom = pPlayerManager->LocalPlayer->zoom2;#ifdef __ZOOMHACK__ ZoomHack((float)zoomhack); char zh[16]; sprintf(zh,"Zoomhack is %d",zoomhack); pDebugTextWriter->OutlinedText(10,10,dWhite,&string(zh));#endif D3DXVECTOR3 lpOrigin, tpOrigin; GET_ORIGIN_FROMMATRIX(&lpOrigin, &pPlayerManager->LocalPlayer->Soldier->soldier_ptr->Matrix); GET_ORIGIN_FROMMATRIX(&tpOrigin, &pPlayerManager->GetPlayerByIndex( i )->Soldier->soldier_ptr->Matrix); if(!tpOrigin || !lpOrigin || !pPlayerManager->GetPlayerByIndex( i )->Name || !pPlayerManager->GetPlayerByIndex( i )->Soldier->soldier_ptr->Health) continue; float flDistance = GetDistance(tpOrigin, lpOrigin); char PlayerInfo[512]; char Buf[33]; itoa(pPlayerManager->GetPlayerByIndex( i )->Soldier->soldier_ptr->Health->fHealth,Buf,10); sprintf( PlayerInfo, "[%.0f m] %s [Health: %s]", flDistance, pPlayerManager->GetPlayerByIndex( i )->Name,Buf); if(pPlayerManager->GetPlayerByIndex( i )->Soldier->soldier_ptr->Health->fHealth <= 0.0f) continue; if( tpOrigin ) { if(bWorldToScreen(&tpOrigin)) { if(pPlayerManager->GetPlayerByIndex( i )->Team != pPlayerManager->LocalPlayer->Team) { pDebugTextWriter->OutlinedText( tpOrigin.x - ( GetTextLength(PlayerInfo) ) / 2, tpOrigin.y - 20, dRed, &string(PlayerInfo)); RECT rect; rect.left = tpOrigin.x - ( GetTextLength(PlayerInfo) ) / 2; rect.top = tpOrigin.y - 20; Drawopx( tpOrigin.x - 250/flDistance, tpOrigin.y - (450/flDistance), 450/flDistance, 1050/flDistance,255 , 000,000, 255, 1); } /*if (GetAsyncKeyState(VK_RBUTTON)&1) { POINT vecc; GetCursorPos(&vecc); FLOAT PosX = 0.0f, PosY = 0.0f; FLOAT GPosX = 0.0f, GPosY = 0.0f; int modex = 0; int modey = 0; D3DXVECTOR3 tpOrigi; for (int g = 0; g < 255; g++) { if (IsPlayerValid(pPlayerManager->GetPlayerByIndex(g))) { if (pPlayerManager->GetPlayerByIndex(g) != pPlayerManager->LocalPlayer) { if(( pPlayerManager->GetPlayerByIndex( i )->Name || pPlayerManager->GetPlayerByIndex( i )->Soldier->soldier_ptr->Health ) && (pPlayerManager->GetPlayerByIndex( i )->Soldier->soldier_ptr->Health->fHealth > 0.0f)) { GET_ORIGIN_FROMMATRIX(&tpOrigi,&pPlayerManager->GetPlayerByIndex(g)->Soldier->soldier_ptr->Matrix); FLOAT ScreenX = (FLOAT)Viewport.Width / 2.0f; FLOAT ScreenY = (FLOAT)Viewport.Height / 2.0f; FLOAT Nearest = (FLOAT)INT_MAX; if (tpOrigi) { if ( bWorldToScreen(&tpOrigi)) { PosX = tpOrigi.x > ScreenX ? tpOrigi.x - ScreenX : ScreenX - tpOrigi.x; PosY = tpOrigi.y > ScreenY ? tpOrigi.y - ScreenY : ScreenY - tpOrigi.y; modex = tpOrigi.x > ScreenX ? 2 : 1; modey = tpOrigi.y > ScreenY ? 2 : 1; FLOAT Temp = sqrt( PosX*PosX + PosY*PosY ); if (Temp <= Nearest) { Nearest = Temp; GPosX = PosX; GPosY = PosY; } } } } } } } if (PosX && PosY) { if (GPosX != 0 && GPosY != 0) { if (modex == 1) { GPosX += vecc.x; } if (modex == 2) { GPosX -= vecc.x; } if (modey == 1) { GPosY += vecc.y; } if (modey == 2) { GPosY -= vecc.y; } SetMyCursorPos(GPosX,GPosY); } } }//*/ /*if (lon == true) { pDebugTextWriter->OutlinedText(10,10,dWhite,&string("Triggerbot = on")); FLOAT vX, vY; vX = Viewport.Width/2; vY = Viewport.Height/2; FLOAT PosX = tpOrigin.x > vX ? tpOrigin.x - vX : vX - tpOrigin.x; FLOAT PosY = tpOrigin.y > vY ? tpOrigin.y - vY : vY - tpOrigin.y; #ifdef __O__ if ((tpOrigin.x - 250/flDistance < PosX || tpOrigin.y + 450/flDistance > PosY) && (tpOrigin.x - (450/flDistance-1050/flDistance) < PosX || tpOrigin.y + (1050/flDistance-250/flDistance) > PosY)) #else if ((tpOrigin.x - 250/flDistance < vX || tpOrigin.y + 450/flDistance > vY) && (tpOrigin.x - (450/flDistance-1050/flDistance) < vX || tpOrigin.y + (1050/flDistance-250/flDistance) > vY)) #endif { Fire = true; } } else { pDebugTextWriter->OutlinedText(10,10,dWhite,&string("Triggerbot = off")); }//*/ if(pPlayerManager->GetPlayerByIndex( i )->Team == pPlayerManager->LocalPlayer->Team) { pDebugTextWriter->OutlinedText( tpOrigin.x - ( GetTextLength(PlayerInfo) ) / 2, tpOrigin.y - 20, dBlue, &string(PlayerInfo)); RECT rect; rect.left = tpOrigin.x - ( GetTextLength(PlayerInfo) ) / 2; rect.top = tpOrigin.y - 20; Drawopx( tpOrigin.x - 250/flDistance, tpOrigin.y - (450/flDistance), 450/flDistance, 1050/flDistance, 000, 000, 255,255, 1); } } } } } } return oEndScene(pDevice);}DWORD WINAPI D3DHook(LPVOID){ while(hmRendDx9Base == NULL){hmRendDx9Base = GetModuleHandleA("RendDX9.dll");Sleep(250);} CloseHandle(hmRendDx9Base); while(pDevice == NULL) pDevice = (LPDIRECT3DDEVICE9)pRenderer->pDirect3Ddev; DWORD* GameDevice = (DWORD*)pDevice; GameDevice = (DWORD*)GameDevice[0]; //MessageBox(0,L"Hooking Endscene",0,0); while (!oEndScene) oEndScene = (tEndScene) DetourFunction( (PBYTE)GameDevice[42], (PBYTE)&hkEndScene ); return 0;}BOOL APIENTRY DllMain( HMODULE hModule, DWORD ulReason, LPVOID lpReserved ){ switch (ulReason) { case DLL_PROCESS_ATTACH: { CreateThread( 0, 0, D3DHook, 0, 0, 0 ); CreateThread( 0, 0, HookFunctions, 0, 0, 0 ); } break; case DLL_THREAD_DETACH: break; } return TRUE;}[/cpp]