Bypass 28_4

Posts 1–8 of 8 · Page 1 of 1
Bypass 28_4
Now, i Added Bypass 28_3 in my Weapon Hack but i still got Client Error 28_4

any one Give me Hint or Pattern
Do backup for weapons
Code:
typedef struct _WEAPON
{
    unsigned char Data[0xC3C0];
} WEAPON, *PWEAPON;

PWEAPON pOldWeapons[1600];

PWEAPON GetWeaponByIndex(int index)
{
    return pOldWeapons[index];
}

void CreateBackup(DWORD dwCShell, DWORD dwWeaponMgr)
{
    DWORD pWeaponMgr = *(DWORD*)(dwCShell + dwWeaponMgr );
    for(int i = 0; i < 1600; i++)
    {
        DWORD dwWeapon = *(DWORD*)(pWeaponMgr + (4 * i));
        if (dwWeapon)
        {
            pOldWeapons[i] = new WEAPON;
            memcpy(pOldWeapons[i], (void*)(dwWeapon), sizeof(WEAPON));
        }
    }
}
Credit : emiedumalasa
Update Weapon count & Struct size
Quote Originally Posted by Confirm- View Post
Now, i Added Bypass 28_3 in my Weapon Hack but i still got Client Error 28_4

any one Give me Hint or Pattern
And If Uneed To Get That
Code:
PWEAPON pOldWeapons[1600];
Just Search Bf005.ltc
Code:
typedef struct _WEAPON
{
    unsigned char Data[20772]; //Current Weapon Size 05.01.2019
} WEAPON, *PWEAPON;

PWEAPON pOldWeapons[3071]; //Current Weapon Count 05.01.2019

PWEAPON GetWeaponByIndex(int index)
{
    return pOldWeapons[index];
}

void MakeCall( BYTE* paddress, DWORD yourfunction, DWORD dwlen )
{
    DWORD dwOldProtect, dwBkup, dwRelAddr;
    VirtualProtect(paddress, dwlen, PAGE_EXECUTE_READWRITE, &dwOldProtect);
    dwRelAddr = (DWORD) (yourfunction - (DWORD) paddress) - 5;
    *paddress = 0xE8;
        *((DWORD*) (paddress + 0x1)) = dwRelAddr;
    for(DWORD x = 0x5; x < dwlen; x++) *(paddress + x) = 0x90;
    VirtualProtect(paddress, dwlen, dwOldProtect, &dwBkup);
    return;
}

void CreateBackup( DWORD dwCShell, DWORD dwWeaponMgr )
{
    DWORD pWeaponMgr = *( DWORD *)( dwCShell + dwWeaponMgr );

    for(int i = 0; i <= 3071; i++) //Current Weapon Count 05.01.2019
    {
        DWORD dwWeapon = *(DWORD*)(pWeaponMgr + (4 * i));
        if (dwWeapon)
        {
            pOldWeapons[i] = new WEAPON;
            memcpy( pOldWeapons[i], (void*)( dwWeapon ), sizeof( WEAPON ) );
        }
    }
}

//to change the call to bypass the client error, use this sig E8 ? ? ? ? 8B F0 83 C4 04 85 F6 0F 84 ? ? ? ? D9 86
Quote Originally Posted by uNdExEd_CheAtEr View Post
Code:
typedef struct _WEAPON
{
    unsigned char Data[20772]; //Current Weapon Size 05.01.2019
} WEAPON, *PWEAPON;

PWEAPON pOldWeapons[3071]; //Current Weapon Count 05.01.2019

PWEAPON GetWeaponByIndex(int index)
{
    return pOldWeapons[index];
}

void MakeCall( BYTE* paddress, DWORD yourfunction, DWORD dwlen )
{
    DWORD dwOldProtect, dwBkup, dwRelAddr;
    VirtualProtect(paddress, dwlen, PAGE_EXECUTE_READWRITE, &dwOldProtect);
    dwRelAddr = (DWORD) (yourfunction - (DWORD) paddress) - 5;
    *paddress = 0xE8;
        *((DWORD*) (paddress + 0x1)) = dwRelAddr;
    for(DWORD x = 0x5; x < dwlen; x++) *(paddress + x) = 0x90;
    VirtualProtect(paddress, dwlen, dwOldProtect, &dwBkup);
    return;
}

void CreateBackup( DWORD dwCShell, DWORD dwWeaponMgr )
{
    DWORD pWeaponMgr = *( DWORD *)( dwCShell + dwWeaponMgr );

    for(int i = 0; i <= 3071; i++) //Current Weapon Count 05.01.2019
    {
        DWORD dwWeapon = *(DWORD*)(pWeaponMgr + (4 * i));
        if (dwWeapon)
        {
            pOldWeapons[i] = new WEAPON;
            memcpy( pOldWeapons[i], (void*)( dwWeapon ), sizeof( WEAPON ) );
        }
    }
}

//to change the call to bypass the client error, use this sig E8 ? ? ? ? 8B F0 83 C4 04 85 F6 0F 84 ? ? ? ? D9 86
thx for rep+

- - - Updated - - -

Quote Originally Posted by [K]akashi View Post
Do backup for weapons
Code:
typedef struct _WEAPON
{
    unsigned char Data[0xC3C0];
} WEAPON, *PWEAPON;

PWEAPON pOldWeapons[1600];

PWEAPON GetWeaponByIndex(int index)
{
    return pOldWeapons[index];
}

void CreateBackup(DWORD dwCShell, DWORD dwWeaponMgr)
{
    DWORD pWeaponMgr = *(DWORD*)(dwCShell + dwWeaponMgr );
    for(int i = 0; i < 1600; i++)
    {
        DWORD dwWeapon = *(DWORD*)(pWeaponMgr + (4 * i));
        if (dwWeapon)
        {
            pOldWeapons[i] = new WEAPON;
            memcpy(pOldWeapons[i], (void*)(dwWeapon), sizeof(WEAPON));
        }
    }
}
Credit : emiedumalasa
Update Weapon count & Struct size
typedef struct _WEAPON
{
unsigned char Data[0xC3C0]; <-------- Update December CF WEST ?
} WEAPON, *PWEAPON;

i Got Client Error 28_4 After 15Min
Quote Originally Posted by IrineuMito View Post
How do you call void CreateBackup? and bypass 28_3... @uNdExEd_CheAtEr
Here

Code:
bool isbackup = false
void Bypass()
{
	if (!isGameReady()) return;
//================Anti Send Error Report===============//
	DWORD crossfire = (DWORD)GetModuleHandleA("crossfire.exe");
	if (crossfire == NULL) return;

	if (!isbackup)
	{
		DWORD CShell = (DWORD)GetModuleHandleA("CShel.dll"l);
		if (CShell != NULL)
		{
			//================Client 28_4===============//
			CreateBackup(CShell, WeaponMgr);
			
			//================Client 28_3===============//
			DWORD dwBypassWeaponHack = (DWORD)(CShell + Bypass28_3);
			DWORD dwOldProtect;
			VirtualProtect((void*)(dwBypassWeaponHack + 0x1), sizeof(DWORD), PAGE_EXECUTE_READWRITE, &dwOldProtect);
			*(DWORD*)(dwBypassWeaponHack + 0x1) = (DWORD)GetWeaponByIndex - dwBypassWeaponHack - 5;
			VirtualProtect((void*)(dwBypassWeaponHack + 0x1), sizeof(DWORD), dwOldProtect, NULL);
}
}
}
Call This In Present/Endscene
Code:
Bypass();

Press Thanks If I Helped
Latest Weapon Struct can be found inside of Client 28_3
Posts 1–8 of 8 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us