- 13 Gennaio 2009
- 120
- 0
- Miglior risposta
- 0
Come Creare Hack in D3D per WarRock
Salve a tutti ragazzi oggi vi voglio presentare una guida su come creare un hack per WarRock in D3D.Iniziamo.
La guida si dividerà in tre parti
1)Cos'è il D3D?
2)Come Creare un Injector
3)Come creare file .dll
Bene ecco la prima parte
Cos'è il D3D?
Il D3D ovvero Direct3D è una tecnologia antagonista allo standard OpenGL, utile ad elaborare grafiche di tipo tridimensionale.
Parte dell’API DirectX di Microsoft, Direct3D è disponibile solo per i sistemi operativi Microsoft Windows (a partire da Windows 95) ed è la base per le applicazioni grafiche della Xbox e della Xbox 360; deve il suo successo principalmente al settore dei videogiochi. Direct3D come OpenGL può accedere all'accelerazione hardware delle moderne schede grafiche, quando disponibile.
Direct3D offre inoltre una emulazione vertex (cfr. vertex shader) di tipo software ma nessuna emulazione pixel software per caratteristiche non disponibili nell'hardware. Per esempio, se un programma che usa Direct3D richiede i pixel shader e la scheda del computer non supporta la caratteristica, Direct3D non è in grado di emularla. Il programma terminerà molto spesso con un messaggio di errore.
Il D3D ovvero Direct3D è una tecnologia antagonista allo standard OpenGL, utile ad elaborare grafiche di tipo tridimensionale.
Parte dell’API DirectX di Microsoft, Direct3D è disponibile solo per i sistemi operativi Microsoft Windows (a partire da Windows 95) ed è la base per le applicazioni grafiche della Xbox e della Xbox 360; deve il suo successo principalmente al settore dei videogiochi. Direct3D come OpenGL può accedere all'accelerazione hardware delle moderne schede grafiche, quando disponibile.
Direct3D offre inoltre una emulazione vertex (cfr. vertex shader) di tipo software ma nessuna emulazione pixel software per caratteristiche non disponibili nell'hardware. Per esempio, se un programma che usa Direct3D richiede i pixel shader e la scheda del computer non supporta la caratteristica, Direct3D non è in grado di emularla. Il programma terminerà molto spesso con un messaggio di errore.
Fonte:Wikipeida
Come Creare un Injector
In questa parte useremo Visual Basic 2008 per costruire il nostro injector,quindi apritelo e selezionate l'Application Windows Form.
Inserite nella nostra form 2 texbox un timer 4 label e un button.Fatto questo passiamo ai codici.
Nel timer
codice:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Nel Public Class Form
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Una volta messi questi codici aggiungete questo sotto tutti gli altri
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
End SubBene ora il label2 mostrerà l'avanzamento dell'injector.Nel texbox1 si dovrà scrivere il processo di warrock e nel texbox2 il file .dll.Gli altri 3 label serviranno come guida su dove mettere i nomi della dll e il processo del programma.Adesso abbiamo finito l'injector ora passiamo alla dll
Come Creare file .dll
Come Creare file .dll
Requisiti:
-D3D Starter Kit V3.0
-Generatetexture Function (Texture Maker)
-Microsoft Visual C++ 2008 Express Edition
-MSDN
-D3D SDK
-Generatetexture Function (Texture Maker)
-Microsoft Visual C++ 2008 Express Edition
-MSDN
-D3D SDK
Per iniziare:
Scarichiamo lo starter kit sul nostro desktop ed apriamolo.
Coding:
Per prima cosa andremo a creare un Wallhack:
Nello starter kit andiamo su d3d8dev.ccp
Sotto i #defines
codice:
bool wallhack; //made by thimo
UINT m_Stride; //made by thimPiazziamo questo nel DrawIndexedPrimitive
UINT m_Stride; //made by thimPiazziamo questo nel DrawIndexedPrimitive
codice:
if (wallhack) //If wallhack bool is called.
{
if(m_stride == 44) //On the players model.
{
m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); //Then bring to the front
}
else
{
m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, TRUE); //Evertyhing else is normal
}
}
{
if(m_stride == 44) //On the players model.
{
m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); //Then bring to the front
}
else
{
m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, TRUE); //Evertyhing else is normal
}
}
if ((GetAsyncKeyState(VK_NUMPAD1)&1) == 1) // If get numpad 1 then
wallhack = !wallhack; //toggle wallChams:
Iniziamo con gli stessi codice sopra
Iniziamo con gli stessi codice sopra
In alto:
codice:
bool chams;
UINT m_Stride;
LPDIRECT3DTEXTURE8 texRed, texGreen; //texturesOra nel DrawIndexedPrimitive:
UINT m_Stride;
LPDIRECT3DTEXTURE8 texRed, texGreen; //texturesOra nel DrawIndexedPrimitive:
codice:
if (chams) //if cham bool is called
{
if (m_Stride == 44) //on the player models
{
m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,false); //bring to front
m_pD3Ddev->SetRenderState(D3DRS_FILLMODE,D3DFILL_SOLID); //fill it with a solid color
m_pD3Ddev->SetTexture( 0, texRed); //fill it wih red
m_pD3Ddev->DrawIndexedPrimitive(PrimitiveType, minIndex, NumVertices, startIndex, primCount);
m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);
m_pD3Ddev->SetRenderState(D3DRS_FILLMODE,D3DFILL_SOLID);
m_pD3Dde->SetTexture( 0, texGreen); //fill it with green
}
{
if (m_Stride == 44) //on the player models
{
m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,false); //bring to front
m_pD3Ddev->SetRenderState(D3DRS_FILLMODE,D3DFILL_SOLID); //fill it with a solid color
m_pD3Ddev->SetTexture( 0, texRed); //fill it wih red
m_pD3Ddev->DrawIndexedPrimitive(PrimitiveType, minIndex, NumVertices, startIndex, primCount);
m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, true);
m_pD3Ddev->SetRenderState(D3DRS_FILLMODE,D3DFILL_SOLID);
m_pD3Dde->SetTexture( 0, texGreen); //fill it with green
}
if ((GetAsyncKeyState(VK_NUMPAD2)&1) == 1) //id numpad 2 is called then
Chams = !Chams; //chams on and offOra abbiamo bisogno di settare i colori!
Ora cerchiamo
HRESULT CD3DManager::Release()
Sotto
HRESULT CD3DManager::Release()
{
return S_OK;
}
return S_OK;
}
Aggiungiamo il GenerateTexture Function
codice:
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
{
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
return E_FAIL;
{
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
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);
|(WORD)(((colour32>>12)&0xF)<<4)
|(WORD)(((colour32>>4)&0xF)<<0);
D3DLOCKED_RECT d3dlr;
(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
WORD *pDst16 = (WORD*)d3dlr.pBits;
WORD *pDst16 = (WORD*)d3dlr.pBits;
for(int xy=0; xy < 8*8; xy++)
*pDst16++ = colour16;
(*ppD3Dtex)->UnlockRect(0);
return S_OK;Ora in EndScene andremo a settare queste funzioni!
Cerchiamo EndScene
In EndScene aggiungiamo:
codice:
GenerateTexture(m_pD3Ddev, &texRed,D3DCOLOR_ARGB(255,255,0,0));
GenerateTexture(m_pD3Ddev, &texGreen,D3DCOLOR_ARGB(255,0,255,0));E nel SetStreamSource mettiamo:
GenerateTexture(m_pD3Ddev, &texGreen,D3DCOLOR_ARGB(255,0,255,0));E nel SetStreamSource mettiamo:
codice:
if( StreamNumber == 0 ){m_Stride = Stride;
Spero di esservi stato di aiuto..
FONTE:ITALIANHACK
Ultima modifica: