Guest User

Untitled

a guest
Jan 5th, 2012
1,208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.89 KB | None | 0 0
  1. #undef UNICODE
  2. #include "fb.h" //c&p from uc-forum
  3.  
  4. HANDLE g_hThread;
  5. bool g_bKeyState;
  6.  
  7. void FUCKIT(DWORD mem1, DWORD mem2)
  8. {
  9.     fb::ClientGameContext *pCtx = (fb::ClientGameContext*)(*(DWORD*)mem1);
  10.     if (pCtx && pCtx->m_clientPlayerManager)
  11.     {
  12.         eastl_vector<fb::ClientPlayer*> *playerVector = &pCtx->m_clientPlayerManager->m_players;
  13.         int maxPlayers = playerVector->size();
  14.         for (int i = 0; i < maxPlayers; i++)
  15.         {
  16.             if (playerVector->at(i) && (playerVector->at(i)->m_soldier.m_data))
  17.             {
  18.                 fb::ClientSoldierEntity *pSoldier = (fb::ClientSoldierEntity*)(*(DWORD*)playerVector->at(i)->m_soldier.m_data - 0x4);
  19.                 if (pSoldier)
  20.                 {
  21.                     if (pCtx->m_clientPlayerManager->m_localPlayer && pCtx->m_clientPlayerManager->m_localPlayer->m_soldier.m_data)
  22.                     {
  23.                         fb::ClientSoldierEntity *pMySoldier = (fb::ClientSoldierEntity*)(*(DWORD*)pCtx->m_clientPlayerManager->m_localPlayer->m_soldier.m_data - 0x4);
  24.                         if (pMySoldier && pMySoldier->getCurrentWeapon() && pCtx->m_clientPlayerManager->m_localPlayer->m_teamId != playerVector->at(i)->m_teamId)
  25.                         {
  26.                             fb::ClientWeapon *weapon = pMySoldier->getCurrentWeapon()->m_weapon;
  27.                             if (weapon)
  28.                             {
  29.                                 DWORD dwCall = mem2;
  30.                                 for (int i = 0; i < 7; i++)
  31.                                 {
  32.                                     __asm
  33.                                     {
  34.                                         push ecx;
  35.                                         mov ecx, weapon;
  36.                                         push pSoldier;
  37.                                         call dwCall;
  38.                                         pop ecx;
  39.                                     }
  40.                                 }
  41.                             }
  42.                         }
  43.                     }
  44.                 }
  45.             }
  46.         }
  47.     }
  48. }
  49.  
  50. namespace RE
  51. {
  52.     bool bDataCompare(const BYTE *pData, const BYTE *bMask, const TCHAR *szMask)
  53.     {
  54.         for(; *szMask; ++szMask, ++pData, ++bMask)
  55.             if (*szMask == 'x' && *pData != *bMask)
  56.                 return false;
  57.         return (*szMask) == NULL;
  58.     }
  59.     DWORD dwFindPattern(DWORD dwAddress, DWORD dwLen, BYTE *bMask, TCHAR *szMask)
  60.     {
  61.         for (DWORD i = 0; i < dwLen; i++)
  62.             if (bDataCompare((BYTE*)(dwAddress + i), bMask, szMask))
  63.                 return (DWORD)(dwAddress + i);
  64.         return NULL;
  65.     }
  66. }
  67.  
  68. DWORD CALLBACK mainThread(LPVOID param)
  69. {
  70.     HMODULE hInst_BF3 = GetModuleHandleA("bf3.exe");
  71.     DWORD memCtx  = *(DWORD*)(RE::dwFindPattern((DWORD)hInst_BF3, 0x01aa0000, (BYTE*)"\x83\xc7\x04\x3b\xfb\x75\xf0\x8b\x0d", "xxxxxxxxx") + 0x09);
  72.     DWORD memFuck = RE::dwFindPattern((DWORD)hInst_BF3, 0x01aa0000, (BYTE*)"\xC7\x44\x24\x00\x00\x00\x00\x00\x8B\xCE\xE8\x00\x00\x00\x00\x8b\x7d", "xxx?xxxxxxx????xx") - 0x2b;
  73.  
  74.     while (true)
  75.     {
  76.         Sleep(25);
  77.         if (GetAsyncKeyState(VK_NUMPAD5) < 0)
  78.         {
  79.             if (!g_bKeyState)
  80.             {
  81.                 g_bKeyState = true;
  82.                 FUCKIT(memCtx, memFuck);
  83.             }
  84.         } else {
  85.             if (g_bKeyState)
  86.                 g_bKeyState = false;
  87.         }
  88.     }
  89.  
  90.     return 0;
  91. }
  92.  
  93. BOOL WINAPI DllMain(_In_ HANDLE _HDllHandle, _In_ DWORD _Reason, _In_opt_ LPVOID _Reserved)
  94. {
  95.     switch (_Reason)
  96.     {
  97.     case DLL_PROCESS_ATTACH:
  98.         g_hThread = CreateThread(0, 0, mainThread, 0, 0, 0);
  99.         break;
  100.     case DLL_PROCESS_DETACH:
  101.         TerminateThread(g_hThread, 0);
  102.         break;
  103.     }
  104.  
  105.     return TRUE;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment