[Source Code] A Simple Source For Crossfire ( C++ )

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Onaylı Üye
Katılım
8 Nis 2018
Mesajlar
104
Tepki puanı
18
Ödüller
7
8 HİZMET YILI
U guys need to update some. Base on u guys crossfire version.
Requirements:

- Microsoft Summer SDK 2004
- Visual Studio 2017 -> 2019
- A little knowledges about OllyDbg ( for finding address )


Features:

1. showNameTag();
2. _SpamSpray();
3. _NoBugDamage();
4. SuperJump();
5. AllBypass();
6. GetCurrentPos();

7. ReturnCheckPointPos();


C++:
#pragma once
//Define
#define WeaponMgr 0x1C9B3CC //String: ReloadAnimRatio
//10470160   8B0D B8FE8F11    MOV ECX,DWORD PTR DS:[118FFEB8] <== 0x18FFEB8

#define NoReload 0x1320

#define NoBugDamage 0xEBBF34 //String: _DZ
//106DB8F1   68 34BFEB10      PUSH CShell.10EBBF34; ASCII "rez\Butes\%s_DZ.ltc"

#define Bypass_31_0_1 0x732D51 //0F 84 DB 03 ?? ?? B8 01 ?? ?? ?? 68
//107177B1   0F84 DB030000    JE CShell.10717B92 <== 0x7177B1

#define Bypass_31_0_2 0x73293F //80 47 19 01 83 C0 01 83 C5 30 83 C3 10 83
//1071739F   8047 19 01       ADD BYTE PTR DS:[EDI+19],1 <== 0x71739F

//#define Bypass_28_3 0x72BF6D //83 F8 FF 0F 84 ?? ?? ?? ?? 56 50 E8
//1072BF6D   . 0F84 F7010000  JE CShell.1072C16A <== 0x72BF6D

#define PlayerMgr 0x18F662C //String: MovementSpeed
//1044D72E   . A1 CC4C7611    MOV EAX,DWORD PTR DS:[11764CCC] <== 0x1764CCC

#define ModelNode 0x1ABD21C //String: ModelNode
//10459D03   8B15 D4FD8F11    MOV EDX,DWORD PTR DS:[118FFDD4] <== 0x18FFDD4

#define ShowNameTag 0x62F1D8 // 7C 24 28 00 75 1E
//10613C78   . 837C24 28 00   CMP DWORD PTR SS:[ESP+28],0 <== 0x613C78

#define Radio 0x1483668 //80 ?? ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? ?? ?? B8
////101295B6   803D 34F42D11 02 CMP BYTE PTR DS:[112DF434],2 <== 0x12DF434

#define Bunny 0x145EB20 //0F B6 05 ?? ?? ?? 11 52 50 8D 4C 24 20 51 8D
//100A1884   0FB605 88B62B11  MOVZX EAX,BYTE PTR DS:[112BB688] <== 0x12BB688

#define IsUseSpray 0x2E890 //.> 88 85 ?? ?? ?? ?? 5F 5E 5D 81 C4 ?? ?? ?? ?? C2 04 ?? CC CC CC    
//100996CB  |. 8885 D0E50200  MOV BYTE PTR SS:[EBP+2E5D0],AL <== 0x2E5D0

#define NoFlash 0xEA7CB4 //String: IMPOUI
//105CC0EA   . 68 F4C9E710    PUSH CShell.10E7C9F4;  ASCII "ImpoUI/NoiseScreen/FlashBangEfffect.dtx" <== 0xE7C9F4
// CC 83 79 ?? 00 8D 41 ?? 75 0E 50 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 C4 08 33 C0 C3 //cai 90% :d
// Khả năng cho doạn ấy = 1 thì cũng anti flash đc :v

#define PlayerClientPosition 0xD74 // PATTERN: 8B 0D ?? ?? ?? ?? 8D 44 24 ?? 50 8B 86 ?? ?? ?? ?? // Ctrl + L đến khi không được nữa thì đó là offset

#define ADDR_aLTClientShell 0x13D6210                        // PATTERN: 8B 0D ?? ?? ?? ?? 50 8D 44 24 ?? 50 81 C1 ?? ?? ?? ??
//10174446   . 8B0D 1C362311  MOV ECX,DWORD PTR DS:[1123361C]          ; |CShell.1127D1A0 <== 0x123361C

#define aCLTPlayerClient 0x15E0B60 //B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 59 C3 CC CC CC CC CC CC CC CC CC CC 6A 04 68 ?? ?? ?? ??
//10D45B40   B9 A0D12711      MOV ECX,CShell.1127D1A0 <== CLTPlayerClient 0x127D1A0

#define MsgVar1    0x75
#define MsgVar2 0x2E
#define MsgVar3 0x18D080
#define MsgVar4 0x14

/*
104802CE   6A 00            PUSH 0                     <== "vertex lock failed"
104802D0   6A 75            PUSH 75
104802D2   6A 2E            PUSH 2E
104802D4   E8 A7CDD0FF      CALL CShell.1018D080
104802D9   83C4 14          ADD ESP,14
*/

#define ADDR_GLOWESP 0x08CC40 //String: PlayerOutLineRender 1
//1008CC40   53               PUSH EBX <== 0x08CC40

#define OFFS_PLAYERVIEWMGR            0x2D0        // PATTERN: 8B 87 ?? ?? ?? ?? 55 56 8B 70 08 85 F6 75 07
//105881DF   8B87 D0020000    MOV EAX, DWORD PTR DS : [EDI + 2D0] <== 0x2D0

#define OFFS_OLDSPY                    0x8F4        // PATTERN:    D8 86 ?? ?? ?? ?? D9 5C 24 0C D9 44 24 0C D9 96 ?? ?? ?? ?? D9 86 ?? ?? ?? ?? D8 C2 D9 5C 24 0C D9 44 24 0C D9 96 ?? ?? ?? ?? D9 86 ?? ?? ?? ?? DE C3 D9 CA D9 9E
//1059F824   D886 0C090000    FADD DWORD PTR DS:[ESI+90C]    <== 90C

#define oFullBalo               0x2B5E0         //.> [8B 86 ?? ?? 00 00 8B 0D ?? ?? ?? ?? 89 81 ?? ?? ?? 00 5E C3]
//1087BD3C   8981 E0B50200    MOV DWORD PTR DS:[ECX+2B5E0],EAX    <== 0x2B5E0

#define oSpamRadio              0x16441AC       //.> [ 80 ?? ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? ?? ?? B8 ]
//10136BAE   803D AC416411 02 CMP BYTE PTR DS:[116441AC],2    <== 0x16441AC

#define aStatusGamign            0x164703C        //.> 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B 0D ?? ?? ?? ?? 85 C9 8B F0
//101829D3   A1 3C706411      MOV EAX,DWORD PTR DS:[1164703C]    <== 0x164703C

#define m_CLTPlayClient            0x78            //.> 8B 4D ?? 8B 01 8B 90 ?? ?? ?? ?? FF D2 hoặc 74 ?? 8B 4D ?? 8B 01 8B 90
//10087A45   8B4D 78          MOV ECX, DWORD PTR SS : [EBP + 78]    <== 0x78

#define m_GameType                0x744           //.> D9 95 ?? ?? ?? ?? D9 44 24 6C D9 44 24 64 D9 C0
//10C87EF2   D995 44070000    FST DWORD PTR SS:[EBP+744]    <== 0x744

#define m_PlayerPosNew            0xD74           //.> 8B 0D ?? ?? ?? ?? 8D 44 24 20 50 8B 86 ?? ?? ?? ?? = x2
//109D25FB   8B86 740D0000    MOV EAX,DWORD PTR DS:[ESI+D74]    <== 0xD74

#define m_PlayerPosOld            0x524           //.> 8B 0D ?? ?? ?? ?? 8D 44 24 20 50 8B 86 ?? ?? ?? ?? = x1
//1057821B   8B86 24050000    MOV EAX,DWORD PTR DS:[ESI+524]    <== 0x524

#define m_WeaponStateOld            0x744        
//.> 8B 44 24 04 89 81 ?? 07 00 00 C2 04 00 CC CC CC 8B 81 ?? 07 00 00 C3 = x1
#define m_WeaponStateNew            0x654        
//.> 8B 44 24 04 89 81 ?? 06 00 00 C2 04 00 CC CC CC 8B 81 ?? 06 00 00 C3 = x2

extern DWORD CShell;

C++:
struct cWeaponLite
{
    char pad_0[14];
    char WeaponName[948];
    char ModelFileName[606];
    char SkinFileName[730];
    char RenderStyleFileName[165];
    char GViewAnimName[151];
    char pad_1[2];
    char ReloadSoundName[284];
    char pad_2[4832];
    char PViewSkinFileName[428];
    char PViewModelFileName[148];
    char pad_3[444];
    char PViewRenderStyleFileName[165];
    char ShotSoundName[33];
    char MagazineClipOutSoundName[33];
    char MagazineClipInSoundName[33];
    char BlowBackSoundName[33];
    char DelBlowBackSoundName[231];
    char BigIconName[49];
    char SmallIconName[84];
    char EffectGunFire[165];
    char EffectPVGunFire[331];
    char WeaponInfoString[65];
};
struct Vector3 {
    float x, y, z;
};

struct Vector4 : public Vector3 {
    float w;
};

struct BasicPlayerInfo {
    DWORD UnkPtr00;
    float MovementSpeed;
    float MovementWalkRate;
    float MovementSideMoveRate;
    float MovementFBRunAnimRate;
    float MovementLBRunAnimRate;
    float MovementFBWalkAnimRate;
    float MovementLRBWalkAnimRate;
    float MovementAccelation;
    float MovementFriction;
    float JumpTime;
    float JumpVelocity;
    float JumpLandedWaitTime;
    float JumpLandedNoJumpTimeRate;
    float JumpRepeatPenaltyMoveRate;
    float JumpRepeatPenaltyHeightRate;
    float JumpLandedMovePenaltyTimeRate;
    float JumpLandedMovePenaltyMoveRate;
    Vector3 PVPosDefault;
    Vector3 PVRotationDefault;
    float PVOnlyMoveFlipTime;
    Vector3 PVOnlyMoveGap;
    float DamagePenaltyTime;
    float DamagePenaltyMoveRate;
    float C4PlantTime;
    float C4DefuseTime;
    float MaxCanDefuseDistance;
    float CharacterHiddenAlpha;
    float CharacterHiddenWalkAlpha;
    float CharacterHiddenRunAlpha;
    Vector4 MovementHiddenRate;
};

struct Dimension_t
{
    Dimension_t() : x(0), y(0), z(0) {}
    Dimension_t(FLOAT _x, FLOAT _y, FLOAT _z) : x(_x), y(_y), z(_z) {}
    FLOAT x, y, z;

    void operator = (FLOAT radius)
    {
        this->x = radius;
        this->y = radius;
        this->z = radius;
    }
} *Backup = new Dimension_t[1328];

struct Position
{
    float x = 0, y = 0, z = 0;
};

C++:
#pragma once
#ifndef __FIND_PATTERN_H__
#define __FIND_PATTERN_H__

#include <Windows.h>

namespace Crossfire
{
    class FindPattern
    {
    public:
        FindPattern(DWORD dwAddress, DWORD len, BYTE* bMask, char* szMask) : Base(0), Offset(0)
        {
            for (DWORD i = 0; i < len; i++)
            {
                if (bCompare((BYTE*)(dwAddress + i), bMask, szMask))
                {
                    Base = (DWORD)(dwAddress + i);
                    Offset = i;
                    break;
                }
            }
        }
        DWORD Base, Offset;
    private:
        bool bCompare(const BYTE * pData, const BYTE * bMask, const char* szMask)
        {
            for (; *szMask; ++szMask, ++pData, ++bMask)
                if (*szMask == '0' && *pData != *bMask)
                    return false;
            return (*szMask) == NULL;
        }
    };
}

#endif

C++:
#pragma once


DWORD GetInstance()
{
    if (GetModuleHandleA("CShell.dll") != NULL)
        return (DWORD)GetModuleHandleA("CShell.dll");
}
DWORD eCF()
{
    if (GetModuleHandleA("crossfire.dat") != NULL)
        return (DWORD)GetModuleHandleA("crossfire.dat");
}

bool IsGameReadyForHook()
{
    if (GetModuleHandleA("CShell.dll") != NULL && GetModuleHandleA("ClientFx.fxd") != NULL)
        return true;
    return false;
}
void ValidateString(char* string, char original)
{
    memcpy(reinterpret_cast<void*>(string), reinterpret_cast<void*>(&original), 1);
}

void OverwriteString(char* target, char* source, uint32_t length)
{
    memcpy(reinterpret_cast<void*>(target), reinterpret_cast<void*>(source), length);
    memcpy(reinterpret_cast<void*>(target + length), reinterpret_cast<void*>("\x00"), 1);
}
void InvalidateString(char* string)
{
    ValidateString(string, 0);
}

C++:
#pragma once
#include "Address.h"
#include "Functions.h"
#include "FindPattern.h"
#include <fstream>
#include "Class.h"

bool isgetaddress = false;
DWORD  *pModelNode, _aCLTPlayerClient, WeaponBase,ADDR_Bunny, _m_GameType, _m_PlayerPosNew, _m_PlayerPosOld, _aCLTPlayerClientOffset;
BYTE* ADR_AntiFlash;
BOOL * InGame;
Position Pos;

void FindAddress()
{
    if (!isgetaddress)
    {
        {
            /*Ptr ModelNode*/ {
                DWORD Temp = Crossfire::FindPattern(CShell, 0xFFFFFFF, (PBYTE)("\x8B\x15\x00\x00\x00\x00\x83\xC4\x20\x33\xED"), "00????00000").Base;
                if (Temp)
                {
                    pModelNode = reinterpret_cast<DWORD*>(*(DWORD*)(Temp + 0x2));
                }
                else return;
            }
        }

        /*cLTPlayerClient*/ {
            DWORD Temp = Crossfire::FindPattern(CShell, 0xFFFFFFF, (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"), "0????0????0????0????000000000000000").Base;
            if (Temp)
            {
                _aCLTPlayerClient = *(DWORD*)(Temp + 0x1);
                InGame = (BOOL*)(_aCLTPlayerClient + 0x74);
                _aCLTPlayerClient -= CShell;

            }
            else return;
        }

        /*Weapon Base*/ {
            DWORD Temp = Crossfire::FindPattern(CShell, 0xFFFFFFF, (PBYTE)("\x68\x00\x00\x00\x00\xD9\x9A\x00\x00\x00\x00\x53\xE8\x00\x00\x00\x00"), "0????00????00????").Base;
            if (Temp)
            {
                WeaponBase = *(DWORD*)(Temp + 0x23);
                WeaponBase -= CShell;
            }
            else return;
        }

        /*_m_GameType*/ {
            DWORD Temp = Crossfire::FindPattern(CShell, 0xFFFFFF, (PBYTE)"\xD9\x95\x00\x00\x00\x00\xD9\x44\x24\x6C\xD9\x44\x24\x64\xD9\xC0", "00????0000000000").Base;
            if (Temp) _m_GameType = *(DWORD*)(Temp + 0x2);
            else return;
        }

        /*_m_PlayerPosNew*/ {
            DWORD Temp = Crossfire::FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x8D\x44\x24\x20\x50\x8B\x86\x74\x0D\x00\x00", "00????000000000??").Base;
            if (Temp) _m_PlayerPosNew = *(DWORD*)(Temp + 0xD);
            else return;
        }

        /*_m_PlayerPosOld*/ {
            DWORD Temp = Crossfire::FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x8D\x44\x24\x20\x50\x8B\x86\x24\x05\x00\x00", "00????000000000??").Base;
            if (Temp) _m_PlayerPosOld = *(DWORD*)(Temp + 0xD);
            else return;
        }

        /*_aCLTPlayerClientOffset*/ {
            DWORD Temp = Crossfire::FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x68\x00\x00\x00\x00\x6A\x02\xFF\xD2\xEB\x5B\x8B\x4D\x00", "0????00000000?").Base;
            if (Temp) _aCLTPlayerClientOffset = *(BYTE*)(Temp + 0xD);
            else return;
        }
        isgetaddress = true;
    }
}

void _NoBugDamage()
{
    static DWORD ADDR_NoBugDamage = NULL;
    if (!ADDR_NoBugDamage)
    {
        ADDR_NoBugDamage = Crossfire::FindPattern(CShell, 0xFFFFFF, (PBYTE)("\x68\xD4\x4D\xF3\x10\x52\x89\x8E\x9C\x01\x00\x00\xFF\xD3"), "0????00000??00").Base;
        if (ADDR_NoBugDamage)
        {
            ADDR_NoBugDamage = *(DWORD*)(ADDR_NoBugDamage + 0x1);
            ADDR_NoBugDamage -= CShell;
        }
    }
    else *(uint64_t*)(CShell + ADDR_NoBugDamage + 0xA) = 0x544C2E3533304642;
}

void showNameTag()
{
    static DWORD ADDR_ShowNameTag = 0x0;
    if (!ADDR_ShowNameTag)
    {
        ADDR_ShowNameTag = Crossfire::FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x83\x7C\x24\x28\x00\x75\x1E", "0000000").Offset;
    }
    else *(DWORD*)(CShell + ADDR_ShowNameTag + 1) = 19407996;
}

void _SpamSpray()
{
    DWORD CShell = (DWORD)GetModuleHandleA("CShell.dll");
    static DWORD m_IsUseSpray = 0x0;
    if (!m_IsUseSpray)
    {
        m_IsUseSpray = Crossfire::FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x88\x85\x00\x00\x00\x00\x5F\x5E\x5D\x81\xC4\x00\x00\x00\x00\xC2\x04", "00????00000????00").Base;
        m_IsUseSpray = *(DWORD*)(m_IsUseSpray + 0x2);
    }
    else *(DWORD*)(CShell + _aCLTPlayerClient + m_IsUseSpray) = 258;
}


void Skill()
{
    DWORD pCLTPlayerClient = *(DWORD*)(CShell + _aCLTPlayerClient + _aCLTPlayerClientOffset);
    if (pCLTPlayerClient == NULL) return;
    DWORD GameType = *(DWORD*)(pCLTPlayerClient + _m_GameType);
    DWORD PlayerPos = *(DWORD*)(pCLTPlayerClient + (GameType == 1065353216 ? _m_PlayerPosNew : _m_PlayerPosOld));

    if (PlayerPos != NULL)
    {
        if (GetAsyncKeyState(VK_NUMPAD0) & 1)
        {
            *(float*)(PlayerPos + 0xE4) += 25.0f; // Position.y ==> 0xE4
        }
    }
}

void AllBypass()
{
    static DWORD _Bypass_30_0_LTB = 0x0;
    static DWORD _Bypass_30_0_DTX = 0x0;
    if (!_Bypass_30_0_DTX)
    {
        _Bypass_30_0_DTX = Crossfire::FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x80\x47\x19\x01\x83\xC0\x01\x83\xC5\x30\x83\xC3\x10\x83", "000?0000000000").Base;
    }
    if (!_Bypass_30_0_LTB)
    {
        _Bypass_30_0_LTB = Crossfire::FindPattern(CShell, 0xFFFFFF, (PBYTE)"\x0F\x84\xDB\x03\x00\x00\xB8\x01\x00\x00\x00\x68", "0000??00???0").Base;
    }
    memcpy((void*)_Bypass_30_0_DTX, "\x80\x47\x19\x00", 4);
    memcpy((void*)_Bypass_30_0_LTB, "\xE9\xDC\x03\x00\x00\x90", 6);
}

void GetCurrentPos()
{

    DWORD pCLTPlayerClient = *(DWORD*)(CShell + _aCLTPlayerClient + _aCLTPlayerClientOffset);
    if (pCLTPlayerClient == NULL) return;
    DWORD GameType = *(DWORD*)(pCLTPlayerClient + _m_GameType);
    DWORD PlayerPos = *(DWORD*)(pCLTPlayerClient + (GameType == 1065353216 ? _m_PlayerPosNew : _m_PlayerPosOld));

    if (PlayerPos != NULL)
    {
        if (GetAsyncKeyState(VK_MENU) & 1)
        {
            Pos.x = *(float*)(PlayerPos + 0xE0); // Position.x ==> 0xE0
            Pos.y = *(float*)(PlayerPos + 0xE4); // Position.y ==> 0xE4
            Pos.z = *(float*)(PlayerPos + 0xE8); // Position.z ==> 0xE8
        }
    }
}
void ReturnCheckPointPos()
{
    DWORD pCLTPlayerClient = *(DWORD*)(CShell + _aCLTPlayerClient + _aCLTPlayerClientOffset);
    if (pCLTPlayerClient == NULL) return;
    DWORD GameType = *(DWORD*)(pCLTPlayerClient + _m_GameType);
    DWORD PlayerPos = *(DWORD*)(pCLTPlayerClient + (GameType == 1065353216 ? _m_PlayerPosNew : _m_PlayerPosOld));

    if (PlayerPos != NULL)
    {
        if (GetAsyncKeyState(VK_NUMPAD1) & 1)
        {
            *(float*)(PlayerPos + 0xE0) = Pos.x; // Position.x ==> 0xE0
            *(float*)(PlayerPos + 0xE4) = Pos.y; // Position.y ==> 0xE4
            *(float*)(PlayerPos + 0xE8) = Pos.z; // Position.z ==> 0xE8
        }
    }
}

/*
Dimension_t& GetDimensionByIndex(UINT16 Index)
{
    return *(Dimension_t*)(*pModelNode + 0x9C * Index + 0x38);
}

void IncreaseDimension(bool& once)
{
    if (*pModelNode)
    {
        if (!once)
        {
            for (UINT16 i = 0; i < 1328; i++)
            {
                Backup[i] = GetDimensionByIndex(i);
            }
            once = true;
        }
        else
        {
            if (*InGame)
            {
                GetDimensionByIndex(6) = 27.5f;
                GetDimensionByIndex(7) = 27.5f;
                GetDimensionByIndex(8) = 27.5f;
            }
            else
            {
                for (UINT16 i = 0; i < 1328; i++)
                {
                    GetDimensionByIndex(i) = Backup[i];
                }
            }
        }
    }
}
*/

/*
void WeaponLogger()
{
    std::ofstream oFile("WeaponLogger.log");
    DWORD aWeaponMgr = *(DWORD*)(CShell + WeaponBase);
    if (aWeaponMgr)
    {
        for (int i = 0; i < 0x1000; i++)
        {
            DWORD dwWeapon = *(DWORD*)(aWeaponMgr + (4 * i));
            if (dwWeapon)
            {
                oFile << "ID : " << i << "\nName: " << ((cWeaponLite*)dwWeapon)->WeaponName << "\n\n";
            }
        }
        oFile.close();
        ExitProcess(1);
    }
}



void ChangeSkinByID(int oldID, int newID)
{
    DWORD aWeaponMgr = *(DWORD*)(CShell + WeaponBase);
    if (aWeaponMgr)
    {
        DWORD dwOldWeapon = *(DWORD*)(aWeaponMgr + (4 * oldID));
        DWORD dwNewWeapon = *(DWORD*)(aWeaponMgr + (4 * newID));
        if (dwOldWeapon && dwNewWeapon)
        {
            //Skin
            memcpy(((cWeaponLite*)dwOldWeapon)->ModelFileName, ((cWeaponLite*)dwNewWeapon)->ModelFileName, 128);
            memcpy(((cWeaponLite*)dwOldWeapon)->SkinFileName, ((cWeaponLite*)dwNewWeapon)->SkinFileName, 128);
            memcpy(((cWeaponLite*)dwOldWeapon)->PViewSkinFileName, ((cWeaponLite*)dwNewWeapon)->PViewSkinFileName, 128);
            memcpy(((cWeaponLite*)dwOldWeapon)->PViewModelFileName, ((cWeaponLite*)dwNewWeapon)->PViewModelFileName, 128);

            //Sound
            memcpy(((cWeaponLite*)dwOldWeapon)->BlowBackSoundName, ((cWeaponLite*)dwNewWeapon)->BlowBackSoundName, 33);
            memcpy(((cWeaponLite*)dwOldWeapon)->DelBlowBackSoundName, ((cWeaponLite*)dwNewWeapon)->DelBlowBackSoundName, 33);
            memcpy(((cWeaponLite*)dwOldWeapon)->MagazineClipInSoundName, ((cWeaponLite*)dwNewWeapon)->MagazineClipInSoundName, 33);
            memcpy(((cWeaponLite*)dwOldWeapon)->MagazineClipOutSoundName, ((cWeaponLite*)dwNewWeapon)->MagazineClipOutSoundName, 33);
            memcpy(((cWeaponLite*)dwOldWeapon)->ReloadSoundName, ((cWeaponLite*)dwNewWeapon)->ReloadSoundName, 33);
            memcpy(((cWeaponLite*)dwOldWeapon)->ShotSoundName, ((cWeaponLite*)dwNewWeapon)->ShotSoundName, 33);
            //GUI
            memcpy(((cWeaponLite*)dwOldWeapon)->WeaponName, ((cWeaponLite*)dwNewWeapon)->WeaponName, 65);
            memcpy(((cWeaponLite*)dwOldWeapon)->BigIconName, ((cWeaponLite*)dwNewWeapon)->BigIconName, 49);
            memcpy(((cWeaponLite*)dwOldWeapon)->SmallIconName, ((cWeaponLite*)dwNewWeapon)->SmallIconName, 84);

        }
    }
}
*/

/*
bool NVH = false;
void HookFunction()
{
    NVH = true;
}

void FastAndFarDefuse()//de tui chinh che do cua so cho do lag
{
    static bool isHooked = false;
    if (!isHooked)
    {
        BYTE old[7] = { 0 };//cai nay 28_3 ma` um ma chua hoan` thien
        DWORD oldProtect;
        VirtualProtect((void*)(CShell + 0x489FD0), 12, PAGE_EXECUTE_READWRITE, &oldProtect);// bi lag
        memcpy(old, (void*)(CShell + 0x489FD0), 7);
        *(BYTE*)(CShell + 0x489FD0) = 0xE9;
        *(DWORD*)(CShell + 0x489FD1) = (DWORD)HookFunction - (DWORD)(CShell + 0x489FD0) - 5;
        memcpy((void*)(CShell + 0x489FD5), old, 7);
        VirtualProtect((void*)(CShell + 0x489FD0), 12, oldProtect, &oldProtect);
        isHooked = true;//ngu ong ei me tui keu vkl v: ok ok :V mai lam tiep vay mai ong p giang tui r lam tu nay den h meo hieu gi v; : v bye bye ok ngu ngon
    }day day sao ay' ??

    DWORD* pBasicPlayerInfo = (DWORD*)(CShell + WeaponBase); //?? Weapon :v htrc co Replace ok ok nen no replay het nhung thg n
    if (*pBasicPlayerInfo && NVH)
    {
        BasicPlayehrInfo* pRef = (BasicPlayerInfo*)(*pBasicPlayerInfo);
        pRef->C4DefuseTime = 0.0f;
        pRef->MaxCanDefuseDistance = 99999.0f; h ong lam cai spam sray vs show name tag di roi` gui tui code test thu chu code tui ko bt sai o dau meo vo game dc. h tui di co vc tat teamview ty ty share het code  ra dayluc nao rnah lam cho ca bypass nua. ty ong gui tui trc cai show name tag vs spam spray dc ko ok
        pRef->MovementWalkRate = 20.0f;

        MessageBoxA(0, "ON", 0, MB_OK);
    }
}
*/

C++:
#pragma warning(disable : 4996)


#include <d3d9.h>
#include <d3dx9.h>
#include <stdint.h>
#include "Hacks.h"
#include <iostream>
DWORD CShell;

void HackStart()
{
 
    showNameTag();
    _SpamSpray();
    _NoBugDamage();
    Skill();
    AllBypass();
    GetCurrentPos();
    ReturnCheckPointPos();
    Sleep(10);
}

void Engine()
{
    while (!IsGameReadyForHook()) {
        Sleep(200);
    }
    while (true)
    {
        CShell = (DWORD)GetModuleHandleA("CShell.dll");
        HackStart();
    }
}


extern "C" __declspec(dllexport) BOOL WINAPI DllMain(HMODULE hDLL, DWORD dwReason, LPVOID lpvRe)
{

    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hDLL);
        MessageBoxA(NULL, "Welcome to G4Glitcher !!!", "Developed by CoderDuc !!!", MB_OK);
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Engine, 0, 0, 0);
        break;
    case DLL_PROCESS_DETACH:
        break;
    }
    return true;
}

Like this thread If i can help you <3
 
●★★●★★●★★●★★●
Süper Üye
Katılım
10 Şub 2020
Mesajlar
763
Çözümler
1
Tepki puanı
22
Ödüller
6
6 HİZMET YILI
nice job man thanks yout for sharing
 
Technomagi
Seçkin Üye
Katılım
16 Kas 2018
Mesajlar
315
Çözümler
3
Tepki puanı
22
Ödüller
7
Yaş
27
7 HİZMET YILI
Thanks for contribution, this may one day be useful for anyone out here.
 
Onaylı Üye
Katılım
8 Nis 2018
Mesajlar
104
Tepki puanı
18
Ödüller
7
8 HİZMET YILI
Hack Is My Life
Süper Üye
Katılım
11 May 2019
Mesajlar
1,289
Çözümler
3
Tepki puanı
124
Ödüller
6
Yaş
36
7 HİZMET YILI
Nice source for newb lerning hacking
 
Süper Üye
Katılım
7 Şub 2019
Mesajlar
601
Çözümler
3
Tepki puanı
49
Ödüller
6
Yaş
30
7 HİZMET YILI
Pretty good. I am amazed by your work. keep it up <3
 
Seçkin Üye
Katılım
30 Eki 2018
Mesajlar
306
Tepki puanı
12
Ödüller
7
Yaş
36
7 HİZMET YILI
This Source have bypass include or not?
Thanks for sharing
 
Your Friendly Neighbor
Süper Üye
Katılım
1 Eyl 2019
Mesajlar
630
Çözümler
2
Tepki puanı
46
Ödüller
5
Yaş
27
6 HİZMET YILI
You are pretty good at this man.. I was trying but couldnt bypass it
 
Seçkin Üye
Katılım
3 Şub 2018
Mesajlar
331
Çözümler
2
Tepki puanı
20
Ödüller
6
Yaş
31
8 HİZMET YILI
thank for sharing source.but i can't bypass xincode can you share bypass xincode plz
 
Onaylı Üye
Katılım
15 Şub 2020
Mesajlar
66
Tepki puanı
5
Ödüller
3
Yaş
27
6 HİZMET YILI
nice source Thanks for sharing
 
Üye
Katılım
11 Nis 2017
Mesajlar
36
Tepki puanı
1
9 HİZMET YILI
U guys need to update some. Base on u guys crossfire version.
Requirements:
 
Bardzz
Süper Üye
Katılım
26 Mar 2018
Mesajlar
646
Çözümler
1
Tepki puanı
33
Ödüller
8
Yaş
28
8 HİZMET YILI
Pretty good. Is it detected?
 
Onaylı Üye
Katılım
28 Şub 2020
Mesajlar
55
Tepki puanı
3
Ödüller
3
Yaş
24
6 HİZMET YILI
Crossfire ? This game still have an playerbase lol
 
Üye
Katılım
7 Ağu 2017
Mesajlar
40
Çözümler
1
Tepki puanı
2
Yaş
36
8 HİZMET YILI
nice job. Thank you for sharing source !
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...