Загрузка...

[DETECTED] [Гайд] Делаем Chams для Warface

Тема в разделе Читы Warface создана пользователем Shimakaze 27 мар 2018. 6051 просмотр

Загрузка...
  1. Shimakaze
    Shimakaze Автор темы 27 мар 2018
    И так, для начала разберемся, что такое Chams:
    Chams - на всех игроках появляется как бы аура определённого цвета. Эта функция делится на 2 вида:
    1) Если игрок в зоне поражения (то есть у вас есть шанс нанести ему урон даже через стену), то он одного цвета, как только нанести урон противнику станет невозможно, он будет другого цвета;
    2) Этот вид очень помогает любителям WallHack`a. Если ВХ не очень хорошее, то не всегда можно разобрать, когда игрок находится непосредственно перед вами, а когда стоит за стеной, такой ESP спасёт ситуацию. Если игрок в поле видимости (нормальном, без чита), тогда он одного цвета, а если нет (за стеной или дверью), тогда другого.

    Шаг #1:
    Для начала, Вам понадобится Visual Studio, рекомендовано использовать Visual Studio 2015-го года.
    После завершения установки, Вам так же потребуется установить DirectX SDK и Detours 1.5 (пароль для скачивания: lolzteam.org)

    Шаг #2:
    Начинаете новые проект, как указано на скриншоте.

    Вверху в Visual Studio перепроверьте, что указано "Release" и "х86"

    Нажимаем правой кнопкой мыши на свой проект в "Обозревателе решений" ("Solution Explorer")

    [IMG]

    Выбираете "Свойства" (Properties) и должны попасть на страницу, что и ниже на скриншоте.
    [IMG]

    Изменяете "Тип конфигурации" (Cofiguration Type) на "Dynamic Library (.dll)".
    [IMG]

    Затем, открываете "Linker", что находится в "Свойствах конфигурации" (Configuration Properties), потом "Дополнительно" (Advanced) и прокрутите в самый низ. Должно выглядеть так:

    [IMG]

    Если всё, как и на скриншоте, обратите внимание на самую последнюю запись, в ней говориться: "Image Has Safe Exception Handlers". Вам нужно изменить её на ""No (/SAFESEH:NO)". После всё должно выглядеть так:

    [IMG]

    Не забудьте нажать "ОК" (Apply)

    После переходим в раздел "VC++ Directories", он находиться выше раздела "Linker". Должно быть так:

    [IMG]
    Далее переходим в "Include Directories", нажимаете на маленькую стрелочку и после на "Edit...>":

    [IMG]
    Должно выглядеть так:

    [IMG]

    Нажмите на эту маленькую папку в верхнем левом углу, а затем на три точки.

    Теперь укажите путь к папке, в которую вы установили DirectX SDK. В этой папке выберите папку «Includes» и нажмите «Выбрать папку»:

    [IMG]

    Теперь повторите всё тоже с маленькой папкой и тремя точками:
    После, укажите путь, где вы установили "Detours" и выберите папку «inc»:

    [IMG]

    Нажмите «ОК», а затем нажмите «Применить» в нижнем правом углу.

    Теперь переходим в «Library Directories», нажмите на маленькую стрелку снова, а затем на редактирование.
    Нажмите на маленькую папку в верхнем левом углу, а затем на три точки снова.
    На этот раз переходим в папку, в которой вы установили DirectX SDK, но теперь перейдите в папку с именем «Lib» и там выберите папку «x86»:

    [IMG]


    Затем сделайте то же самое для Detours. В папке Detours выберите папку «inc»:
    Не забудьте снова нажать «ОК» и «Применить».

    Теперь закройте страницу свойств (Properties Page) и снова просмотрите проводник решений (solution explorer).
    Щелкните правой кнопкой мыши на «Исходные файлы» (Source Files) в проводнике решений (solution explorer) и нажмите «Добавить -> Новый элемент» (Add -> New Item) или нажмите Ctrl + Shift + A:

    [IMG]

    Выберите «.cpp» и назовите его, как хотите. Дважды щелкните на новом файле в проводнике решений (solution explorer) и приступаем к следующей части.

    Шаг #3.
    Создаем DllMain:
    Начнем с создания точки входа dll:
    Код
    BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
    {
    if (dwReason == DLL_PROCESS_ATTACH)
    {

    }
    else if (dwReason == DLL_PROCESS_DETACH)
    {

    }

    return TRUE;
    }
    В этом коде будет выдавать много ошибок, потому что мы не включили существенный материал.
    Так что давайте сделаем это. Перейдите в начало скрипта и добавьте следующее:

    Код
    #include "Windows.h"
    #include "intrin.h"
    #include "d3d9.h"
    #include "d3dx9.h"
    #include "Detours.h"
    Таким образом, мы включаем Detours, DirectX SDK, intrin для адреса возврата и заголовок Windows почти для всего.
    Теперь давайте также сделаем с библиотеками Detours и DirectX:
    Код
    #pragma comment(lib, "d3d9.lib")
    #pragma comment(lib, "d3dx9.lib")
    #pragma comment(lib, "Detours.lib")
    С этим материалом, мы так же можем добавить:
    Код
    #pragma intrinsic(_ReturnAddress)
    Так мы можем получить обратные адреса процесса, в котором мы находимся.

    Теперь у нас есть то, что позволяет вернуться к нашей функции DllMain.
    Теперь мы хотим добавить, что происходит, когда наша dll привязана к процессу.
    Мы хотим инициализировать или перехватывать, поэтому давайте сделаем это.
    Сначала мы создать bool с именем «bInit» для проверки, не инициализируем ли мы все, или если это уже сделано.
    Весь наш код должен выглядеть примерно так:

    Код
    #include "Windows.h"
    #include "intrin.h"
    #include "d3d9.h"
    #include "d3dx9.h"
    #include "Detours.h"

    #pragma comment(lib, "d3d9.lib")
    #pragma comment(lib, "d3dx9.lib")
    #pragma comment(lib, "Detours.lib")

    #pragma intrinsic(_ReturnAddress)

    bool bInit = false;

    BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
    {
    if (dwReason == DLL_PROCESS_ATTACH)
    {

    }
    else if (dwReason == DLL_PROCESS_DETACH)
    {

    }

    return TRUE;
    }
    Теперь давайте перейдем к «if (dwReason == DLL_PROCESS_ATTACH)» и добавим еще один if.

    Код
    if (!bInit){

    }
    Теперь перейдем к hooks.

    Шаг #4.
    DirectX Hooks с Detours:
    Теперь мы можем инициализировать хуки. Для начала создаем прототипы подключенных функций:
    Код
    typedef HRESULT(WINAPI *Prototype_Present)(LPDIRECT3DDEVICE9, CONST RECT*, CONST RECT*, HWND, CONST RGNDATA*);
    typedef HRESULT(WINAPI *Prototype_DrawIndexedPrimitive)(LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE, INT, UINT, UINT, UINT, UINT);
    Вы задаётесь вопросом: «Что это такое?» Это прототипы для функций DirectX с их параметрами, которые мы будем подключать.
    Итак, теперь подключаем ссылку на наши недавно созданные прототипы:

    Код
    Prototype_Present Original_Present;
    Prototype_DrawIndexedPrimitive Original_DrawIndexedPrimitive;
    Теперь, когда мы сделали это, мы можем создать наши Hook функции:

    Код
    HRESULT WINAPI Hooked_Present(LPDIRECT3DDEVICE9 Device, CONST RECT *pSrcRect, CONST RECT *pDestRect, HWND hDestWindow, CONST RGNDATA *pDirtyRegion);
    HRESULT WINAPI Hooked_DrawIndexedPrimitive(LPDIRECT3DDEVICE9 Device, D3DPRIMITIVETYPE PrimType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount);
    Это наши описания функций для подключенных функций. Как Вы можете заметить, выбивает предупреждение. Это из-за того, что мы добавили лишь описание и не указали путь.
    Так что давайте сделаем это. Добавьте их под функцию DllMain:

    Код
    HRESULT WINAPI Hooked_Present(LPDIRECT3DDEVICE9 Device, CONST RECT *pSrcRect, CONST RECT *pDestRect, HWND hDestWindow, CONST RGNDATA *pDirtyRegion) {

    }

    HRESULT WINAPI Hooked_DrawIndexedPrimitive(LPDIRECT3DDEVICE9 Device, D3DPRIMITIVETYPE PrimType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) {

    }
    Переходим в "if", который мы создали ранее, и добавляем следующее:

    [CODE]Original_Present = (Prototype_Present)DetourFunction((PBYTE)GetDeviceAddress(17), (PBYTE)Hooked_Present);
    Original_DrawIndexedPrimitive = (Prototype_DrawIndexedPrimitive)DetourFunction((PBYTE)GetDeviceAddress(82), (PBYTE)Hooked_DrawIndexedPrimitive);
    bInit = true;[/CODE]В нем мы используем Detours для подключения функций. Вы снова увидите, что выбивает ошибку «GetDeviceAddress».
    Добавьте следующее: DllMain:

    [CODE]DWORD FindDevice(DWORD Len)
    {
    DWORD dwObjBase = 0;

    dwObjBase = (DWORD)LoadLibrary("d3d9.dll");
    while (dwObjBase++ < dwObjBase + Len)
    {
    if ((*(WORD*)(dwObjBase + 0x00)) == 0x06C7 && (*(WORD*)(dwObjBase + 0x06)) == 0x8689 && (*(WORD*)(dwObjBase + 0x0C)) == 0x8689) {
    dwObjBase += 2; break;
    }
    }
    return(dwObjBase);
    }

    DWORD GetDeviceAddress(int VTableIndex)
    {
    PDWORD VTable;
    *(DWORD*)&VTable = *(DWORD*)FindDevice(0x128000);
    return VTable[VTableIndex];
    }[/CODE]Теперь мы видим, что наброски хуков работают некорректно. Потому что, при переключении на нашу функцию, она не возвращается к оригиналу. И это приводит к крашу игры. Давайте его пофиксим. Добавляем следующий insinde из "else if (dwReason == DLL_PROCESS_DETACH)"

    [CODE]DetourRemove((PBYTE)Original_Present, (PBYTE)Hooked_Present);
    DetourRemove((PBYTE)Original_DrawIndexedPrimitive, (PBYTE)Hooked_DrawIndexedPrimitive);[/CODE]Теперь игра не будет крашиться, но мы по-прежнему не возвращаемся к исходным функциям.
    Чтобы исправить это, просто добавьте следующие строки в конце наших подключенных функций:

    [CODE]return Original_Present(Device, pSrcRect, pDestRect, hDestWindow, pDirtyRegion);[/CODE][CODE]return Original_DrawIndexedPrimitive(Device, PrimType, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);[/CODE]С хуками закончили. Наш целый код должен выглядеть так:

    [CODE]#include "Windows.h"
    #include "intrin.h"
    #include "d3d9.h"
    #include "d3dx9.h"
    #include "Detours.h"

    #pragma comment(lib, "d3d9.lib")
    #pragma comment(lib, "d3dx9.lib")
    #pragma comment(lib, "Detours.lib")

    #pragma intrinsic(_ReturnAddress)

    bool bInit = false;

    typedef HRESULT(WINAPI *Prototype_Present)(LPDIRECT3DDEVICE9, CONST RECT*, CONST RECT*, HWND, CONST RGNDATA*);
    typedef HRESULT(WINAPI *Prototype_DrawIndexedPrimitive)(LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE, INT, UINT, UINT, UINT, UINT);

    Prototype_Present Original_Present;
    Prototype_DrawIndexedPrimitive Original_DrawIndexedPrimitive;

    HRESULT WINAPI Hooked_Present(LPDIRECT3DDEVICE9 Device, CONST RECT *pSrcRect, CONST RECT *pDestRect, HWND hDestWindow, CONST RGNDATA *pDirtyRegion);
    HRESULT WINAPI Hooked_DrawIndexedPrimitive(LPDIRECT3DDEVICE9 Device, D3DPRIMITIVETYPE PrimType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount);

    DWORD FindDevice(DWORD Len)
    {
    DWORD dwObjBase = 0;

    dwObjBase = (DWORD)LoadLibrary("d3d9.dll");
    while (dwObjBase++ < dwObjBase + Len)
    {
    if ((*(WORD*)(dwObjBase + 0x00)) == 0x06C7 && (*(WORD*)(dwObjBase + 0x06)) == 0x8689 && (*(WORD*)(dwObjBase + 0x0C)) == 0x8689) {
    dwObjBase += 2; break;
    }
    }
    return(dwObjBase);
    }

    DWORD GetDeviceAddress(int VTableIndex)
    {
    PDWORD VTable;
    *(DWORD*)&VTable = *(DWORD*)FindDevice(0x128000);
    return VTable[VTableIndex];
    }

    BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
    {
    if (dwReason == DLL_PROCESS_ATTACH)
    {
    if (!bInit) {
    Original_Present = (Prototype_Present)DetourFunction((PBYTE)GetDeviceAddress(17), (PBYTE)Hooked_Present);
    Original_DrawIndexedPrimitive = (Prototype_DrawIndexedPrimitive)DetourFunction((PBYTE)GetDeviceAddress(82), (PBYTE)Hooked_DrawIndexedPrimitive);
    bInit = true;
    }
    }
    else if (dwReason == DLL_PROCESS_DETACH)
    {
    DetourRemove((PBYTE)Original_Present, (PBYTE)Hooked_Present);
    DetourRemove((PBYTE)Original_DrawIndexedPrimitive, (PBYTE)Hooked_DrawIndexedPrimitive);
    }

    return TRUE;
    }

    HRESULT WINAPI Hooked_Present(LPDIRECT3DDEVICE9 Device, CONST RECT *pSrcRect, CONST RECT *pDestRect, HWND hDestWindow, CONST RGNDATA *pDirtyRegion) {



    return Original_Present(Device, pSrcRect, pDestRect, hDestWindow, pDirtyRegion);
    }

    HRESULT WINAPI Hooked_DrawIndexedPrimitive(LPDIRECT3DDEVICE9 Device, D3DPRIMITIVETYPE PrimType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) {



    return Original_DrawIndexedPrimitive(Device, PrimType, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
    }[/CODE]
    Шаг #5.
    Переходим к Chams.
    Для сначала нужно несколько переменных.
    Нам нужны ReturnAddress игроков. Текущий:

    [CODE]#define Player 0x68EBA1[/CODE]Код для активации и деактивации "чамсов":

    [CODE]bool bChams = true;[/CODE]и так, потребуется текстура для разрисовки

    [CODE]LPDIRECT3DTEXTURE9 texRed = NULL;[/CODE]Для создания текстуры, нам потребуется функция «GenerateTexture»:
    [CODE]HRESULT GenerateTexture(LPDIRECT3DDEVICE9 pDevice, IDirect3DTexture9 **ppD3Dtex, DWORD colour32)
    {
    if (FAILED(pDevice->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex, NULL)))
    return E_FAIL;

    WORD colour16 = ((WORD)((colour32 >> 28) & 0xF) << 12)
    | (WORD)(((colour32 >> 20) & 0xF) << 8)
    | (WORD)(((colour32 >> 12) & 0xF) << 4)
    | (WORD)(((colour32 >> 4) & 0xF) << 0);

    D3DLOCKED_RECT d3dlr;
    (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
    WORD *pDst16 = (WORD*)d3dlr.pBits;

    for (int xy = 0; xy < 8 * 8; xy++)
    *pDst16++ = colour16;

    (*ppD3Dtex)->UnlockRect(0);

    return S_OK;
    }[/CODE]Теперь в Hooked_Present мы добавим еще один оператор if:
    [CODE]if (texRed == NULL) {

    }[/CODE]Этот оператор if проверяет, является ли текстура пустой и будет ли на текстуре что-то образовываться.

    [CODE]GenerateTexture(Device, &texRed, D3DCOLOR_ARGB(255, 255, 0, 0));[/CODE]Теперь, когда у нас есть текстура, нам нужно нарисовать текстурку появляющегося игрока.
    Заходим в "Hooked DrawIndexedPrimitive» и добавляем следующее:

    [CODE]void* ReturnAddress = _ReturnAddress();[/CODE]После, создаем другой if:

    [CODE]if (ReturnAddress == (void*)Player && bChams) {

    }[/CODE]Этот код проверяет, является ли отображаемый ReturnAddress нашим игроком и активированы ли Chams.
    Затем нам нужно отключить z-buffer игроков, чтобы мы могли видеть их сквозь стены:

    [CODE]Device->SetRenderState(D3DRS_ZENABLE, FALSE);[/CODE]Теперь мы хотим придать нашему игроку настоящие Chams:

    [CODE]Device->SetTexture(0, texRed);[/CODE]Затем мы вызываем исходный drawindexedprimitive, чтобы снова нарисовать все нормально:

    [CODE]Original_DrawIndexedPrimitive(Device, PrimType, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);[/CODE]После мы хотим снова включить z-буфер:

    [CODE]Device->SetRenderState(D3DRS_ZENABLE, TRUE);[/CODE]И, в конце мы хотим сделать его красным цветом:

    [CODE]Device->SetTexture(0, texRed);[/CODE]В конце, Ваш код должен быть похож примерно на этот:

    [CODE]#include "windows.h"
    #include "intrin.h"
    #include "d3d9.h"
    #include "d3dx9.h"
    #include "Detours.h"

    #pragma comment(lib, "d3d9.lib")
    #pragma comment(lib, "d3dx9.lib")
    #pragma comment(lib, "Detours.lib")

    #pragma intrinsic(_ReturnAddress)

    #define Player 0x68EBA1
    bool bInit = false;
    bool bChams = true;
    LPDIRECT3DTEXTURE9 texRed = NULL;

    typedef HRESULT(WINAPI *Prototype_Present)(LPDIRECT3DDEVICE9, CONST RECT*, CONST RECT*, HWND, CONST RGNDATA*);
    typedef HRESULT(WINAPI *Prototype_DrawIndexedPrimitive)(LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE, INT, UINT, UINT, UINT, UINT);

    Prototype_Present Original_Present;
    Prototype_DrawIndexedPrimitive Original_DrawIndexedPrimitive;

    HRESULT WINAPI Hooked_Present(LPDIRECT3DDEVICE9 Device, CONST RECT *pSrcRect, CONST RECT *pDestRect, HWND hDestWindow, CONST RGNDATA *pDirtyRegion);
    HRESULT WINAPI Hooked_DrawIndexedPrimitive(LPDIRECT3DDEVICE9 Device, D3DPRIMITIVETYPE PrimType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount);

    DWORD FindDevice(DWORD Len)
    {
    DWORD dwObjBase = 0;

    dwObjBase = (DWORD)LoadLibrary("d3d9.dll");
    while (dwObjBase++ < dwObjBase + Len)
    {
    if ((*(WORD*)(dwObjBase + 0x00)) == 0x06C7 && (*(WORD*)(dwObjBase + 0x06)) == 0x8689 && (*(WORD*)(dwObjBase + 0x0C)) == 0x8689) {
    dwObjBase += 2; break;
    }
    }
    return(dwObjBase);
    }

    DWORD GetDeviceAddress(int VTableIndex)
    {
    PDWORD VTable;
    *(DWORD*)&VTable = *(DWORD*)FindDevice(0x128000);
    return VTable[VTableIndex];
    }

    HRESULT GenerateTexture(LPDIRECT3DDEVICE9 pDevice, IDirect3DTexture9 **ppD3Dtex, DWORD colour32)
    {
    if (FAILED(pDevice->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex, NULL)))
    return E_FAIL;

    WORD colour16 = ((WORD)((colour32 >> 28) & 0xF) << 12)
    | (WORD)(((colour32 >> 20) & 0xF) << 8)
    | (WORD)(((colour32 >> 12) & 0xF) << 4)
    | (WORD)(((colour32 >> 4) & 0xF) << 0);

    D3DLOCKED_RECT d3dlr;
    (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
    WORD *pDst16 = (WORD*)d3dlr.pBits;

    for (int xy = 0; xy < 8 * 8; xy++)
    *pDst16++ = colour16;

    (*ppD3Dtex)->UnlockRect(0);

    return S_OK;
    }

    BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
    {
    if (dwReason == DLL_PROCESS_ATTACH)
    {
    if (!bInit) {
    Original_Present = (Prototype_Present)DetourFunction((PBYTE)GetDeviceAddress(17), (PBYTE)Hooked_Present);
    Original_DrawIndexedPrimitive = (Prototype_DrawIndexedPrimitive)DetourFunction((PBYTE)GetDeviceAddress(82), (PBYTE)Hooked_DrawIndexedPrimitive);
    bInit = true;
    }
    }
    else if (dwReason == DLL_PROCESS_DETACH)
    {
    DetourRemove((PBYTE)Original_Present, (PBYTE)Hooked_Present);
    DetourRemove((PBYTE)Original_DrawIndexedPrimitive, (PBYTE)Hooked_DrawIndexedPrimitive);
    }

    return TRUE;
    }

    HRESULT WINAPI Hooked_Present(LPDIRECT3DDEVICE9 Device, CONST RECT *pSrcRect, CONST RECT *pDestRect, HWND hDestWindow, CONST RGNDATA *pDirtyRegion) {

    if (texRed == NULL) {
    GenerateTexture(Device, &texRed, D3DCOLOR_ARGB(255, 255, 0, 0));
    }

    return Original_Present(Device, pSrcRect, pDestRect, hDestWindow, pDirtyRegion);
    }

    HRESULT WINAPI Hooked_DrawIndexedPrimitive(LPDIRECT3DDEVICE9 Device, D3DPRIMITIVETYPE PrimType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) {

    void* ReturnAddress = _ReturnAddress();

    if (ReturnAddress == (void*)Player && bChams) {
    Device->SetRenderState(D3DRS_ZENABLE, FALSE);
    Device->SetTexture(0, texRed);
    Original_DrawIndexedPrimitive(Device, PrimType, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
    Device->SetRenderState(D3DRS_ZENABLE, TRUE);
    Device->SetTexture(0, texRed);
    }

    return Original_DrawIndexedPrimitive(Device, PrimType, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
    }[/CODE]Шаг #6.
    Проверка нашего софта.
    Когда всё сделано, Вы можете сохранить свой проект и нажмите f5, чтобы скомпилировать его.
    Если он не компилируется, убедитесь, что вы все сделали правильно.
    Запускаете инжектор, добавляете dll, который находится в папке, в которой сохранен Ваш проект.
    Инжектите, когда игра полностью запущена.

    В результате, должно получиться так:
    [IMG]

    Как сделать No Smoke:

    [CODE]#define Smoke 0x68AC64

    //In DIP:
    if (ReturnAddress == (void*)Smoke)
    return 0;[/CODE]
    warface, чит для варфейса, читы, чит, чит для варфейса без вирусов, варфейс, чит для варфейс без бана, чит для варфейс 2018, варфейс читы скачать, читы на варфейс с яндекс диска, warface вх, warface автошот, есп для варфейс, аимбот для варфейс, антиотдача для варфейс, варфейс читы 2017, warface аим, аим для варфейс, лучший чит для варфейс как создавать читы, урок по созданию читов, создание читов, без знаний программирования, онлайн игры, гайд

    Ссылка на источник (кликабельно)

    ВНИМАНИЕ!!!

    За все читы банят! Не важно, приват это или паблик, рано или поздно вас могут забанить. Также могут дать бан по HWID.
     
    27 мар 2018 Изменено
  2. SilowHD
    SilowHD 28 мар 2018 Заблокирован(а) 53 10 фев 2018
    годно
     
  3. Montic_156058
    Montic_156058 28 мар 2018 Заблокирован(а) 44 16 авг 2017
    Ща попробуем сделать и чекнуть)
     
  4. ALQAEDA
    ALQAEDA 28 мар 2018 488 24 сен 2016

    А так годно
     
  5. Diskreis
    Diskreis 28 мар 2018 11 16 окт 2016
    Как можно быть таким крутым?
     
  6. MagaAMG
    MagaAMG 28 мар 2018 156 7 мар 2018
    Кто сделает отпишитесь пожалуйста
     
  7. SilowHD
    SilowHD 28 мар 2018 Заблокирован(а) 53 10 фев 2018
    все робит
     
  8. ТРИ777
    ТРИ777 28 мар 2018 Заблокирован(а) 138 23 мар 2018
    Кто не будь сделал?
     
  9. Dim1k
    Dim1k 28 мар 2018 30 1 фев 2018
    спасибо, но лучше бы ты под спойлеры накидал, страница огромная по размеру
     
  10. MagaAMG
    MagaAMG 28 мар 2018 156 7 мар 2018
    А когда чел за стеной каким цветом показывается?
     
  11. Shimakaze
    Shimakaze Автор темы 28 мар 2018
    Игрок за стеной будет отображаться красным цветом, как указано в коде
     
  12. Shimakaze
    Shimakaze Автор темы 28 мар 2018
    Статус - DETECTED.

    Обновленный код:
    Код
    #define InGameFramework 0x191B894
    #define Smoke 0xC83034
    #define Player 0xC86F71
    #define World 0xC86F1E
    #define Lighting 0xA5112E
    #define SSystemGlobalEnvironment 0x1BC0858
    Если перестает работать, нужно обновлять переменные, адреса, добавлять код.

    ----------------------------------------------------------------------------------------------------------------------------------
    ВНИМАНИЕ!!!

    За все читы банят! Не важно, приват это или паблик, рано или поздно вас могут забанить. Также могут дать бан по HWID.
     
  13. Shimakaze
    Shimakaze Автор темы 29 мар 2018
    Обновленный на 28.03.18
    Код
    Player: 0x571391
    Smoke: 0x56D454
    Lighting: 0xD8F5B5
    World: 0x57133E
     
  14. Shimakaze
    Shimakaze Автор темы 2 апр 2018
    Делаем невидимого противника (который находится за стеной) другим цветом:

    Код
    if (ReturnAddress == (void*)Player && bChams) {
    Device->SetRenderState(D3DRS_ZENABLE, FALSE);
    Device->SetTexture(0, OTHER_COLOR_HERE); //*другой цвет тут*
    Original_DrawIndexedPrimitive(Device, PrimType, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
    Device->SetRenderState(D3DRS_ZENABLE, TRUE);
    Device->SetTexture(0, texRed);
    }
     
  15. SSIO
    SSIO 2 апр 2018 Ага, ну 259 21 мар 2017
    А где ссылка на оригинал статью?
     
  16. BAGGER_-_
    BAGGER_-_ 4 апр 2018 @bgrprojects_bot 45 25 мар 2018
    Вроде сделал всё правельно, но не работает:(
     
  17. Monter2018
    написано же что detected
     
  18. Jabody
    Jabody 4 апр 2018 fuck ya 18 19 ноя 2017
    Помогите плиз, как установить хук детурс, там 3 файла, я не понимаю как его установить?
     
  19. LowUser
    LowUser 31 май 2018 Заблокирован(а) 1 25 май 2018
    Кто может дать готовую?
    Пожалуйста
     
  20. BlackKarai
    Как обновлять сигнатуры? И вообще если это .dll то нужен инжектор так? И ещё записывается ли чит в процесс или память? Если да то как замусорить этот код?
     
Top