Battlefield 3 Hack Snippets / Offsets Thread
Post any snippets or offsets here

Also try not to get off topic
Masskill:
Undetected (Depending on where you call it)
Code:
void FUCKIT(DWORD mem1, DWORD mem2)
{
fb::ClientGameContext *pCtx = (fb::ClientGameContext*)(*(DWORD*)mem1);
if (pCtx && pCtx->m_clientPlayerManager)
{
eastl_vector<fb::ClientPlayer*> *playerVector = &pCtx->m_clientPlayerManager->m_players;
int maxPlayers = playerVector->size();
for (int i = 0; i < maxPlayers; i++)
{
if (playerVector->at(i) && (playerVector->at(i)->m_soldier.m_data))
{
fb::ClientSoldierEntity *pSoldier = (fb::ClientSoldierEntity*)(*(DWORD*)playerVector->at(i)->m_soldier.m_data - 0x4);
if (pSoldier)
{
if (pCtx->m_clientPlayerManager->m_localPlayer && pCtx->m_clientPlayerManager->m_localPlayer->m_soldier.m_data)
{
fb::ClientSoldierEntity *pMySoldier = (fb::ClientSoldierEntity*)(*(DWORD*)pCtx->m_clientPlayerManager->m_localPlayer->m_soldier.m_data - 0x4);
if (pMySoldier && pMySoldier->getCurrentWeapon() && pCtx->m_clientPlayerManager->m_localPlayer->m_teamId != playerVector->at(i)->m_teamId)
{
fb::ClientWeapon *weapon = pMySoldier->getCurrentWeapon()->m_weapon;
if (weapon)
{
DWORD dwCall = mem2;
for (int i = 0; i < 7; i++)
{
__asm
{
push ecx;
mov ecx, weapon;
push pSoldier;
call dwCall;
pop ecx;
}
}
}
}
}
}
}
}
}
}
namespace RE
{
bool bDataCompare(const BYTE *pData, const BYTE *bMask, const TCHAR *szMask)
{
for(; *szMask; ++szMask, ++pData, ++bMask)
if (*szMask == 'x' && *pData != *bMask)
return false;
return (*szMask) == NULL;
}
DWORD dwFindPattern(DWORD dwAddress, DWORD dwLen, BYTE *bMask, TCHAR *szMask)
{
for (DWORD i = 0; i < dwLen; i++)
if (bDataCompare((BYTE*)(dwAddress + i), bMask, szMask))
return (DWORD)(dwAddress + i);
return NULL;
}
}
Code:
HMODULE hInst_BF3;
DWORD memCtx;
DWORD memFuck;
hInst_BF3 = GetModuleHandleA("bf3.exe");
memCtx = *(DWORD*)(RE::dwFindPattern((DWORD)hInst_BF3, 0x01aa0000, (BYTE*)"\x83\xc7\x04\x3b\xfb\x75\xf0\x8b\x0d", "xxxxxxxxx") + 0x09);
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;
Code:
if (GetAsyncKeyState(VK_MENU) < 0)
{
if (!g_bKeyState)
{
g_bKeyState = true;
FUCKIT(memCtx, memFuck);
}
} else {
if (g_bKeyState)
g_bKeyState = false;
}