Hi guy's, I've got a question & maybe some help and request I've been working with my Addy Logger for crossfire but i think my patterns are outdated . So i've come here seeking for help if anyone willing to help me with my project . So here's the result: Code: //============== Crossfire PH Addy Logger ==============\ //=================== RomelUrot ===================\ //<================ Addressed Logged ==============>\ #define weaponMgr 0x30090 #define aLTClientShell 0x30090 #define dwCPlayerStart 0x300 #define MEOffset 0x300 #define dwCPlayerSize 0x30090 #define aLTModel 0x30090 #define aCLTPlayerClient 0x300905A #define oCLTPlayerClient 0xB540000 #define aILTClient 0x30090 #define BagMgr 0x30090 #define PTCOffset 0x30090 #define DamagePerMeter 0x300905A #define WallArray 0xFFFF0000 #define FireWeaponAddress 0xB540000 #define ModelNode 0x30090 #define aIntersectSegment 0x400000 //<================= End of Logged ================>\ Then the pattern i've used: (Please update it if they are outdated) Code: DWORD aIntersectSegment = FindPattern((DWORD)GetModuleHandle("Crossfire.exe"), 0xFFFFFF, (PBYTE)"\x5D\xC3\xCC\x55\x8B\xEC\x8B\x45\x0C\x50\x8B\x4D\x08\x51\x8B\x15\x00\x00\x00\x00","0000000000000000????"); DWORD weaponMgr = FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x8B\x04\xB1\xD9\xE8", "00????00000"); weaponMgr = *(DWORD*)(weaponMgr + 0x2); DWORD aLTClientShell = FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x50\x8D\x44\x24\x10\x50\x81\xC1\x00\x00\x00\x00","00????00000000????"); aLTClientShell = *(DWORD*)(aLTClientShell + 0x2); DWORD dwCPlayerStart = FindPattern(CShell,0xFFFFFF,(PBYTE)"\x0F\xB6\x8E\x00\x00\x00\x00\x69\xC9\x00\x00\x00\x00\x8A\x84\x31\x00\x00\x00\x00\x5E\xC3","000????00????000????00"); dwCPlayerStart = *(DWORD*)(dwCPlayerStart + 0x3); DWORD MEOffset = FindPattern(CShell,0xFFFFFF,(PBYTE)"\x8A\x84\x31\x00\x00\x00\x00\x5E\xC3","000????00"); MEOffset = *(DWORD*)(MEOffset + 0x3); DWORD dwCPlayerSize = FindPattern(CShell,0xFFFFFF,(PBYTE)"\x69\xC9\x00\x00\x00\x00\x8A\x84\x31\x00\x00\x00\x00\x5E\xC3","00????000????00"); dwCPlayerSize = *(DWORD*)(dwCPlayerSize + 0x2); DWORD aLTModel = FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x8B\x44\x24\x0C\x8B\x11","00????000000"); aLTModel = *(DWORD*)(aLTModel + 0x2); DWORD aCLTPlayerClient = FindPattern(CShell, 0xFFFFFF, (PBYTE)"\xB9\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x68\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x59\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\x04\x68\x00\x00\x00\x00","0????0????0????0????000000000000000????"); aCLTPlayerClient = *(DWORD*)(aCLTPlayerClient + 0x1); DWORD oCLTPlayerClient = FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x39\x55\x00\x74\x00\x8B\x4D\x00\x8B\x01\x8B\x90\x00\x00\x00\x00\xFF\xD2","00?0?00?0000????00"); DWORD aILTClient = FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x8B\x11\x8B\x82\x00\x00\x00\x00","00????0000????"); aILTClient = *(DWORD*)(aILTClient + 0x2); DWORD BagMgr = FindPattern(CShell, 0xFFFFFF,(PBYTE)"\x89\x3D\x00\x00\x00\x00\x68\x00\x00\x00\x00", "00????0????"); BagMgr = *(DWORD*)(BagMgr + 0x2); DWORD PTCOffset = FindPattern(CShell,0xFFFFFF,(PBYTE)"\x8B\x88\x00\x00\x00\x00\x68\x00\x00\x00\x00\xFF\xD1\x8B\x0D\x00\x00\x00\x00\x8B\x11\x8B\x82\x00\x00\x00\x00","00????0????0000????0000????"); PTCOffset = *(DWORD*)(PTCOffset + 0x2); DWORD DamagePerMeter = FindPattern(CShell,0xFFFFFF,(PBYTE)"\xA1\x00\x00\x00\x00\xD9\x58\x00\x83\xC4\x00","0????00?00?"); DamagePerMeter = *(DWORD*)(DamagePerMeter + 0x1); DWORD WallArray = FindPattern(0x400000, 0xFFFFFF,(PBYTE)"\x75\x00\x83\x0D\x00\x00\x00\x00\x01\xB8\x00\x00\x00\x00\xE8","0?00????00????0"); WallArray = *(DWORD*)(WallArray + 0xA); DWORD FireWeaponAddress = FindPattern(CShell,0xFFFFFF,(PBYTE)"\x83\xEC\x20\x56\x8B\xF1\x8B\x0D\x00\x00\x00\x00\x8B\x01\x8B\x40\x0C\x52\x56\xFF\xD0\x84\xC0","00000000????00000000000"); DWORD ModelNode = FindPattern(CShell,0xFFFFFF,(PBYTE)"\x8B\x0D\x00\x00\x00\x00\x83\xC4\x04\x89\x44\x0F\x54\x8B\x15\x00\x00\x00\x00\x8B\x04\x17\x3B\xC3\x7C\x0C\x83\xF8\x64\x7D\x07","00????000000000????000000000000"); ModelNode = *(DWORD*)(ModelNode + 0x2); The find pattern source: Code: DWORD dwSize; DWORD dwStartAddress; BOOL bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask) { for(;*szMask;++szMask,++pData,++bMask) { if(*szMask == 'x' && *pData != *bMask) return 0; } return (*szMask)==NULL; } DWORD FindPattern(BYTE *bMask, char * szMask, int codeOffset, BOOL extract) { for(DWORD i = 0; i < dwSize; i++) { if(bCompare((BYTE*)(dwStartAddress + i),bMask,szMask)) { if(extract) { return *(DWORD*)(dwStartAddress + i + codeOffset); } else { return (DWORD)(dwStartAddress + i + codeOffset); } } } return NULL; } Thank-you all in advance