|  | 
	
		
	
	
		| ..::Пишем свой читы для CF::..-Общение и обсуждение CrossFire- Общение и обсуждение по темам CrossFire |  
	
	
		
	
	
    
        |  28.12.2011, 17:52 | #1 |  
    | 
  
    |  |  
    |  |  |  
    |     Пехотинец |    
            
                 Регистрация: 23.11.2011
                 Сообщений: 77
                 Популярность: 1124  
	 Сказал(а) спасибо: 101
		
			
				Поблагодарили 319 раз(а) в 129 сообщениях
			
		
	   | 
                 ..::Пишем свой читы для 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 в 18:18.
                    
                    
                
             |  
    |  |   |  
	
		
	
	
    
        |  28.12.2011, 18:23 | #2 |  
    | 
  
    |  |  
    |  |  |  
    |     Сержант |    
            
                 Регистрация: 05.10.2011
                 Сообщений: 121
                 Популярность: 2204  
	 Сказал(а) спасибо: 513
		
			
				Поблагодарили 125 раз(а) в 80 сообщениях
			
		
	   | 
                 Re: ..::Пишем свой читы для 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.
 |  |  
                |  |  |  |  |  Ты сам то чё то сделал?
     
         |  
    |  |   |  
	
		
	
	
    
        |  28.12.2011, 19:05 | #3 |  
    | 
  
    |  |  
    |  |  |  
    |     Разведчик |    
            
                 Регистрация: 05.12.2011
                 Сообщений: 0
                 Популярность: -19  
	 Сказал(а) спасибо: 0
		
			Поблагодарили 1 раз в 1 сообщении
		
	   | 
                 Re: ..::Пишем свой читы для CF::.. 
 
            
               
    слушай NeGaTiV™ ты есть в скайпе если есть напиши свой скайп
     
         |  
    |  |   |  
	
		
	
	
	
	
Заявление об ответственности / Список мошенников
	| 
	|  Ваши права в разделе |  
	| 
		
		Вы не можете создавать новые темы Вы не можете отвечать в темах Вы не можете прикреплять вложения Вы не можете редактировать свои сообщения 
 HTML код Выкл. 
 |  |  |  Часовой пояс GMT +4, время: 17:59. |  |