как сделать WH !!!

Тема в разделе "Закрытый архив", создана пользователем DoKtOrRr, 28 окт 2010.

  1. DoKtOrRr

    DoKtOrRr New Member

    Репутация:
    0
    Регистрация:
    9 окт 2010
    Сообщения:
    444
    Симпатии:
    0
    Для начала нам понадобится:
    DirectX SDK: _http://microsoft.ru/

    Логгер текстур: _<span style="color:#FF0000"></span>

    Direct3D StarterKit v3.0b (by Azorbix): или <span style="color:#000080">D3D</span> _<span style="color:#FF0000"></span>

    Microsoft Visual Studio: _<span style="color:#FF0000"></span>

    Немного знаний C++, D3D - _Google_

    Настройка D3D
    Первым делом устанавливаем Microsoft Visual Studio и DirectX SDK

    Запускаем программу и идём в Tools->Options->Projects and Solutions>VC++ Directories

    Во вкладке Show directories for: Выбираем Include files и добавляем путь к нашему DirectX SD K к папке \Include

    Делаем тоже самое для Library Files (..\Lib\x86), Executable files(..\)

    Всё, теперь мы сможем откомпилить наш Direct3D StarterKit v3.0b

    Настройка Injector'а:

    В main.cpp нужно изменить только 1 строчку:
    Код:

    #define APP_EXE "target_application.exe"

    Где target_application.exe прописываем название вашей игры

    Например:

    xrEngine.exe, crossfire.exe, pointblank.exe.

    Важно!

    Название .dll файла и инжектора должны быть одинаковыми.

    Как сделать обычный валлхак

    1. Ищем текстуры которые нам нужны используя логгер текстур.

    2. Прописываем их в нашем Direct3D StarterKit v3.0b в d3d9dev.cpp в начале файла

    Пример:
    Код:

    #define MyWallhack ((NumVertices == xx && primCount == xx) || (NumVertices == xx && primCount == xx))

    bool bWallHack = false;

    3. Теперь идём в DrawIndexedPrimitive

    и добавляем:
    Код:

    if (bWallHack)
    {
    if (MyWallhack)
    {
    DWORD dwOldZEnable;
    m_pD3Ddev->GetRenderState(D3DRS_ZENABLE,&dwOldZEnable);
    m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE);
    m_pD3Ddev->DrawIndexedPrimitive(Type,BaseVertexIndex,MinVert exIndex,NumVertices,startIndex,primCount);
    m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,dwOldZEnable);
    }
    }

    4. Идём в EndScene и ставим валлхак на кнопку включить\выключить:
    Код:

    if(GetAsyncKeyState( VK_NUMPAD1 ) &1 )
    bWallHack = !bWallHack;

    5. Компилим, инжектим, заходим в игру жмём NUMPAD 1 и видим результат.

    Как убрать стены в игре

    Тут всё ещё проще.

    С верху файла добавляем:
    Код:

    bool bFog = false;

    Код:

    Идём в DrawIndexedPrimitive и добавляем такую строчку:
    if(bFog)
    {
    m_pD3Ddev->SetRenderState( D3DRS_FOGENABLE , false );
    }

    Теперь в EndScene
    Код:

    if(GetAsyncKeyState( VK_NUMPAD2 ) &1 )
    bFog = !bFog;

    Всё готово! При нажатии в игре на кнопку NUMPAD2, опция будет включатся и выключатся.

    credits: _www.aden-territory.com and qwe

    Теперь собственно то, что нужно сделать, что бы Wallhack работал желаемым образом:
    В самом начале кода d3d9dev.cpp вставляем:
    Код:

    unsigned int m_Stride;

    Далее, идем в SetStreamSource и прописываем там перед return m_pD3Ddev->SetStreamSource:
    Код:

    if(StreamNumber==0) m_Stride=Stride;

    Теперь вместо строчки вначале кода #define MyWallhack ((NumVertices == xx && primCount == xx) || (NumVertices == xx && primCount == xx)) вставляем строчку:
    Код:

    #define MyWallhack ((m_Stride == 28))

    Вот и всё! Вы будете видеть других игроков сквозь стены!
    Теперь о том, как сделать из Wallhack'a Chams:
    В начале d3d9dev.cpp прописываем:
    Код:

    int a=1;

    Далее после всех bool'ов вставляем этот код:
    Код:

    LPDIRECT3DTEXTURE9 Pink;
    const BYTE bPink[58] =
    {
    0x42, 0x4D, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
    0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
    0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x80, 0x00, 0xFF, 0x00
    };
    LPDIRECT3DTEXTURE9 Blue;
    const BYTE bBlue[60] =
    {
    0x42, 0x4D, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
    0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
    0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00
    };

    Можно использовать и другие цвета, на ваш вкус, байты которых можно найти в гугле, в частности, они есть здесь:
    Для просмотра внешних ссылок необходимо зарегистрироваться либо авторизоваться … e=threaded
    Идём в BeginScene() и вставляем такие строки перед return m_pD3Ddev->BeginScene(); :
    Код:

    if (a==1)
    {
    D3DXCreateTextureFromFileInMemory(m_pD3Ddev,(LPCVO ID)&bPink,58,&Pink);
    D3DXCreateTextureFromFileInMemory(m_pD3Ddev,(LPCVO ID)&bBlue,60,&Blue);
    a=0;
    }

    Теперь идем в DrawIndexedPrimitive, к нашему волхаку и после строчки m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE); вставляем такую:
    Код:

    m_pD3Ddev->SetTexture(0,Pink);

    А после m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,dwOldZEnable2); такую:
    Код:

    m_pD3Ddev->SetTexture(0,Blue);

    Вот собственно и всё! Chams готов! xrEngine.exe dll - это либа, которая компилится из D3D (TatniumD3D.vcproj) Инжектор - это прога, которая инжектит либу в игру(main.cpp/TatniumInjector.vcproj) В общем у вас должно быть откомпилино: 1 либа, которую называешь TatniumD3D.dll и 1 екзешник, который обзываешь TatniumD3D.exe, ложешь их рядом(в одну папку пофиг куда) и запускаешь TatniumD3D.exe, нажимаешь ОК, запускаешь игру, нажимаешь 1 на дополнительной(цифровой) клавиатуре, только не забудь включить NumLock.


    PS. тему скопипастил с pb-4it.at.ua
    скопипастил потому что на этом сайте ее нету!!!!!
     
  2. ExsNaGiBaToR

    ExsNaGiBaToR New Member Заблокированные

    Репутация:
    0
    Регистрация:
    1 мар 2010
    Сообщения:
    2.744
    Симпатии:
    0
    а они с жука
     
  3. DoKtOrRr

    DoKtOrRr New Member

    Репутация:
    0
    Регистрация:
    9 окт 2010
    Сообщения:
    444
    Симпатии:
    0
    наверно!?

    Добавлено (28.10.2010, 13:00)
    ---------------------------------------------
    коментим!!!
     
  4. Joni_Tren

    Joni_Tren New Member

    Репутация:
    0
    Регистрация:
    27 июн 2010
    Сообщения:
    531
    Симпатии:
    0
    нормач так создал и гамай с вх
     
  5. McModer

    McModer New Member Заблокированные

    Репутация:
    0
    Регистрация:
    24 окт 2010
    Сообщения:
    347
    Симпатии:
    0
    у меня какаета шняга получилась...
     
  6. vordkok

    vordkok New Member Заблокированные

    Репутация:
    0
    Регистрация:
    16 окт 2010
    Сообщения:
    322
    Симпатии:
    0
    Я чёт нахимичил и Норм получилось Для Кроса и для Поинта а так норм тема !!
     
  7. DoKtOrRr

    DoKtOrRr New Member

    Репутация:
    0
    Регистрация:
    9 окт 2010
    Сообщения:
    444
    Симпатии:
    0
    vordkok, жду +
     
  8. SpeeDDark

    SpeeDDark New Member

    Репутация:
    0
    Регистрация:
    1 ноя 2010
    Сообщения:
    8
    Симпатии:
    0
  9. Charlie_Chaplin_2212

    Charlie_Chaplin_2212 New Member

    Репутация:
    0
    Регистрация:
    31 окт 2010
    Сообщения:
    1.143
    Симпатии:
    0
    Этот способ реально работает?
    vordkok,Долго делал?
     
  10. [REAL]Cpecific

    [REAL]Cpecific New Member

    Репутация:
    0
    Регистрация:
    2 окт 2010
    Сообщения:
    725
    Симпатии:
    0
    мб в подполье?
     
  11. pointkung

    pointkung New Member

    Репутация:
    0
    Регистрация:
    5 мар 2010
    Сообщения:
    806
    Симпатии:
    0
    зачем всё равно слита с другого сайта
     
  12. BIGNIK1998

    BIGNIK1998 New Member

    Репутация:
    0
    Регистрация:
    9 авг 2010
    Сообщения:
    673
    Симпатии:
    0
    SpeeDDark, ты не сможешь сделать слишком мал. [​IMG]
     
  13. REkair4ek

    REkair4ek New Member Заблокированные

    Репутация:
    0
    Регистрация:
    12 июн 2010
    Сообщения:
    1.370
    Симпатии:
    0
    [REAL]Cpecific, не,это не все смогут зделать !!! криворукие и так до этого не доберутся!!
     
  14. QqwerR

    QqwerR New Member

    Репутация:
    0
    Регистрация:
    5 июл 2010
    Сообщения:
    184
    Симпатии:
    0
    класс ща попробуем
     
  15. [I]LY@

    [I][email protected] New Member Заблокированные

    Репутация:
    0
    Регистрация:
    1 окт 2010
    Сообщения:
    82
    Симпатии:
    0
    у мя не робит
     
  16. vordkok

    vordkok New Member Заблокированные

    Репутация:
    0
    Регистрация:
    16 окт 2010
    Сообщения:
    322
    Симпатии:
    0
    DoKtOrRr )))слухай я б + поставил но пишет неверный код безопасности хотя ввел правильно !!! =( чё делать ?
     
  17. 7kilO

    7kilO New Member

    Репутация:
    0
    Регистрация:
    30 июл 2010
    Сообщения:
    60
    Симпатии:
    0
    нефига

    Добавлено (03.11.2010, 20:27)
    ---------------------------------------------
    vordkok, знач комуто уже поставил по поже попробуй
     
  18. QqwerR

    QqwerR New Member

    Репутация:
    0
    Регистрация:
    5 июл 2010
    Сообщения:
    184
    Симпатии:
    0
    о получилось зделал вх терь гамаю
     
  19. Wоlf

    Wоlf New Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    432
    Симпатии:
    0
    да на жуке такая же тема я видел))
     
  20. agisal0478

    agisal0478 New Member

    Репутация:
    0
    Регистрация:
    11 окт 2010
    Сообщения:
    152
    Симпатии:
    0
    А не проще ли в файле d3d9dev.cpp всего лишь изменить этот текст.....
    HRESULT APIENTRY hkIDirect3DDevice9::DrawIndexedPrimitive (D3DPRIMITIVETYPE Type,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount)

    {

    return m_pD3Ddev->DrawIndexedPrimitive(Type,BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);

    }
    на ................
    HRESULT APIENTRY hkIDirect3DDevice9::DrawIndexedPrimitive (D3DPRIMITIVETYPE Type,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount)

    {

    DWORD dwOldZEnable = D3DZB_TRUE;

    m_pD3Ddev->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);

    m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

    m_pD3Ddev->DrawIndexedPrimitive(Type,BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);

    m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);

    return m_pD3Ddev->DrawIndexedPrimitive(Type,BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);

    }
    правда правда все обьекты прорисовывать будет на подобии зеленки wh
     

Поделиться этой страницей