Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

..::Пишем свой читы для CF::..

-

Общение и обсуждение CrossFire

- Общение и обсуждение по темам CrossFire

Ответ
 
Опции темы
Старый 28.12.2011, 16:52   #1
Заблокирован
 Пехотинец
Аватар для NeGaTiV™
 
NeGaTiV™ определенно авторитетная личностьNeGaTiV™ определенно авторитетная личностьNeGaTiV™ определенно авторитетная личностьNeGaTiV™ определенно авторитетная личностьNeGaTiV™ определенно авторитетная личностьNeGaTiV™ определенно авторитетная личностьNeGaTiV™ определенно авторитетная личностьNeGaTiV™ определенно авторитетная личностьNeGaTiV™ определенно авторитетная личность
Регистрация: 23.11.2011
Сообщений: 77
Популярность: 1124
Сказал(а) спасибо: 101
Поблагодарили 319 раз(а) в 129 сообщениях
Отправить сообщение для NeGaTiV™ с помощью ICQ Отправить сообщение для NeGaTiV™ с помощью Skype™
 
Thumbs up ..::Пишем свой читы для CF::..

Для начала нам понадобится:
DirectX SDK: Найти в Яндексе

Немного знаний 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,MinVe rt 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
};

Можно использовать и другие цвета, на ваш вкус, байты которых можно найти в гугле, в частности, они есть здесь:
.....&mode=threaded … 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.

Последний раз редактировалось NeGaTiV™; 28.12.2011 в 17:18.
  Ответить с цитированием
Старый 28.12.2011, 17:23   #2
Заблокирован
 Сержант
Аватар для maloia
 
maloia блестящий пример для подражанияmaloia блестящий пример для подражанияmaloia блестящий пример для подражанияmaloia блестящий пример для подражанияmaloia блестящий пример для подражанияmaloia блестящий пример для подражанияmaloia блестящий пример для подражанияmaloia блестящий пример для подражанияmaloia блестящий пример для подражанияmaloia блестящий пример для подражанияmaloia блестящий пример для подражания
Регистрация: 05.10.2011
Сообщений: 121
Популярность: 2204
Сказал(а) спасибо: 513
Поблагодарили 125 раз(а) в 80 сообщениях
Отправить сообщение для maloia с помощью Skype™
 
По умолчанию Re: ..::Пишем свой читы для CF::..

Цитата:
Сообщение от NeGaTiV™Посмотреть сообщение
Для начала нам понадобится:
DirectX SDK: Найти в Яндексе

Немного знаний 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,MinVe rt 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
};

Можно использовать и другие цвета, на ваш вкус, байты которых можно найти в гугле, в частности, они есть здесь:
.....&mode=threaded … 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.

Ты сам то чё то сделал?
  Ответить с цитированием
Старый 28.12.2011, 18:05   #3
 Разведчик
Аватар для sekretik
 
sekretik вызывает надежду
Регистрация: 05.12.2011
Сообщений: 0
Популярность: -19
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: ..::Пишем свой читы для CF::..

слушай NeGaTiV™ ты есть в скайпе если есть напиши свой скайп
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Руководство] Пишем свой тренер для игр на c# object C# 57 06.09.2012 21:47
[Статья] >>>Пишем свой макрос (X7)<<< AloneDance Скрипты и прочий софт для Point Blank 8 24.12.2011 19:34
[Статья] Пишем свой криптор Хаддан Pascal/Delphi 0 02.12.2010 20:52

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 15:40.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net