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