Philippine Online Games
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Philippine Online Games

The No.1 Community Forum in The Philippines
 
HomeGalleryLatest imagesSearchRegisterLog in
If this is your first visit? be sure to check out the FAQ by clicking the link above. You may have to register before you can post and Download. Click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

 

 tutorial in making a wallhack

Go down 
2 posters
AuthorMessage
paulajoseph




Posts : 2
Reputation : 0
Join date : 2010-03-06

tutorial in making a wallhack Empty
PostSubject: tutorial in making a wallhack   tutorial in making a wallhack I_icon_minitimeSat 20 Mar 2010 - 20:31

Im just going to point out stuff you should want to know.

D3D, believe it or not you can color anything in, you want to make a fun little project?

Color the Wallz in Yellow , Red , Green Whatever!

How you say?
Code:
Globals:
Int color walls;
Code:
If(colored walls)//your bool statement in globals

texnum = (nNumVertices*100000)+nPrimitiveCount;//having it in texnums never hurts, unless its just a stride

if(m_Stride == model_rec)//Model Recognition, this recognizes what you want to color in, so we would have to get a Model Recognition logger, go in game and find the Stride for the wall/floor
{

{
pDevice->SetTexture( 0, Red ); //we colored it red. How'd we get to color it check out the next shizznet under this, chams..
}
return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
}Theres our colored, whatever Razz

Chams however work differently, you have point out whether the person is behind the wall or not, and when in front, and then give it colors... when behind something.

Here, this is how i color in my chams.

SO it would be:
Code:
//==================================Defines============================================
#define ForceRecon (nNumVertices == 83 && nPrimitiveCount == 137 || nNumVertices == 79 && nPrimitiveCount == 105 || nNumVertices == 142 && nPrimitiveCount == 174 || nNumVertices == 278 && nPrimitiveCount == 462 || nNumVertices == 263 && nPrimitiveCount == 290 || nNumVertices == 316 && nPrimitiveCount == 556)
#define ForceReconAddons (nNumVertices == 432 && nPrimitiveCount == 354 || nNumVertices == 144 && nPrimitiveCount == 136 || nNumVertices == 299 && nPrimitiveCount == 311 || nNumVertices == 167 && nPrimitiveCount == 252 || nNumVertices == 298 && nPrimitiveCount == 506 || nNumVertices == 168 && nPrimitiveCount == 254 || nNumVertices == 860 && nNumVertices == 778 || nNumVertices == 648 && nPrimitiveCount == 710 || nNumVertices == 113 && nPrimitiveCount == 189 || nNumVertices == 142 && nPrimitiveCount == 172 || nNumVertices == 87 && nPrimitiveCount == 90 || nNumVertices == 79 && nPrimitiveCount == 105 || nNumVertices == 84 && nPrimitiveCount == 110 || nNumVertices == 70 && nPrimitiveCount == 70 || nNumVertices == 860 && nPrimitiveCount == 778 || nNumVertices == 85 && nPrimitiveCount == 137)
#define Mulan (nNumVertices == 118 && nPrimitiveCount == 126|| nNumVertices == 121 && nPrimitiveCount == 180|| nNumVertices == 124 && nPrimitiveCount == 126|| nNumVertices == 295 && nPrimitiveCount == 482|| nNumVertices == 299 && nPrimitiveCount == 452|| nNumVertices == 474 && nPrimitiveCount == 728)
#define MulanAddons (nNumVertices == 162 && nPrimitiveCount == 200|| nNumVertices == 120 && nPrimitiveCount == 188|| nNumVertices == 167 && nPrimitiveCount == 276|| nNumVertices == 108 && nPrimitiveCount == 198|| nNumVertices == 512 && nPrimitiveCount == 728|| nNumVertices == 790 && nPrimitiveCount == 881|| nNumVertices == 619 && nPrimitiveCount == 800|| nNumVertices == 399 && nPrimitiveCount == 532|| nNumVertices == 402 && nPrimitiveCount == 580|| nNumVertices == 102 && nPrimitiveCount == 170|| nNumVertices == 125 && nPrimitiveCount == 98|| nNumVertices == 116 && nPrimitiveCount == 128|| nNumVertices == 160 && nPrimitiveCount == 174)
//========================================================
This goes in our defines, new character model recognitions, useful.

Globals: We have to declare something , so the codes know what we're talking about//========================================================
Code:
Code:
int m_Stride;
int texnum;
int nNumVertices;
int nPrimitiveCount;
LPDIRECT3DTEXTURE8 Red;
LPDIRECT3DTEXTURE8 Yellow;
LPDIRECT3DTEXTURE8 Green;
LPDIRECT3DTEXTURE8 Blue;
LPDIRECT3DTEXTURE8 Purple;
LPDIRECT3DTEXTURE8 Orange;
LPDIRECT3DTEXTURE8 Pink
;
LPDIRECT3DTEXTURE8 White;
LPDIRECT3DTEXTURE8 Black;
bool chams = false;
bool Color = true; Now, i should've said this before, but when we color in anything we have to declare the colors too.... But whats going to generate these colors??? I mean just because we say it, doesnt mean we have it right?

So to demonstrate how to generate these colors we would use this function:
Code
//======================================================================================================================================================================================================================================================================================================================//
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
{
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)<<Cool
|(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;
}
//==============================================================================================================
But wait theres more(R.I.P Billy Mayes), you generate the colors but we still dont have it..

this is where
Code
bool Color = true;
In Endscene, which is another D3D function we must define these colors Razz
Code:
Code
typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
oEndScene pEndScene;

HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
{
if(Color)
{
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
GenerateTexture(pDevice, &Black, D3DCOLOR_ARGB (255 , 0 , 0 , 0 ));
GenerateTexture(pDevice, &White, D3DCOLOR_ARGB (255 , 255 , 255 , 255 ));
Color=false;
}

return pEndScene(pDevice);
}see how we used GenerateTexture, now you have all your colors(could addd more if you find them(Google))
Btw we will be adding more to endscene.


Now where do we draw this? I might have not pointed this out before, but we would color shit in a D3D Function, known as DrawIndexedPrimitive. All the drawing takes place, like our Colored floors and walls.
Cham Code
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
oDrawIndexedPrimitive pDrawIndexedPrimitive;

HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
{

if(chams)
{
texnum = (nNumVertices*100000)+nPrimitiveCount;
if(m_Stride==40 &&
(texnum==34900580)|| // Delta Force Head
(texnum==36100604)|| // Spetsnaz Head
(texnum==38000658)|| // Spetsnaz Legs
(texnum==18300268)|| // Spetsnaz Body
(texnum==36200604)|| // GIGN Head
(texnum==21200306)|| // GIGN Body
(texnum==35500568)|| // GSG9 Head
(texnum==2200024)|| // GSG9 Bangs
(texnum==8800105)|| // GSG9 Feet
(texnum==36900650)|| // GSG9 Legs
(texnum==19600314)|| // GSG9 Body
(texnum==36700612)|| // SAS Head
(texnum==8500105)|| // SAS Feet
(texnum==37000650)|| // SAS Legs
(texnum==18000274)|| // SAS Body
(texnum==35300556)|| // KSF Head
(texnum==7500121)|| // KSF Arms
(texnum==9200115)|| // KSF Feet
(texnum==12400168)|| // KSF Hands
(texnum==30100522)|| // KSF Legs
(texnum==18700288)|| // KSF Body
(texnum==40900594)|| // ARTC Head
(texnum==11700190)|| // ARTC Arms
(texnum==9100118)|| // ARTC Feet
(texnum==12500170)|| // ARTC Hands
(texnum==37000634)|| // ARTC Legs
(texnum==41700516)|| // ARTC Body
(texnum==19400260)|| // ROKMC Body
(texnum==37900592)|| // ROKMC Head
(texnum==36500642)|| // ROKMC Legs
(texnum==44800776)|| // SRG Head
(texnum==15900200)|| // SRG Left Arm
(texnum==10500168)|| // SRG Right Arm
(texnum==80401016)|| // SRG Body
(texnum==10000121)|| // SRG Feet
(texnum==13200180)|| // SRG Hands
(ForceRecon)|| // ForceRecon
(Mulan)||
(texnum==33800534)) // SRG Leg

{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0,Yellow);
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0,Red);
}

if (nNumVertices == 213 && nPrimitiveCount == 174) // M67 Grenade =============== //
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0,Red);
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0,Green);
}
if (nNumVertices == 158 && nPrimitiveCount == 131) // Flashbang =============== //
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0,Red);
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0,Green);
}
if (nNumVertices == 171 && nPrimitiveCount == 143) // Smoke Grenade =============== //
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0,Red);
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0,Blue);
}
if (nNumVertices == 271 && nPrimitiveCount == 257) // VX Grenade =============== //
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0,Red);
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0,Blue);
}
if (nNumVertices == 338 && nPrimitiveCount == 339) // RGD-5 Grenade =============== //
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0,Red);
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0,Yellow);
}



if (m_Stride==40 && // Equipment =============== //
(texnum==13200212)|| // Delta Force Helmet
(texnum==13200212)|| // Delta Force Helmet 2
(texnum==34700538)|| // Delta Force Gas Mask
(texnum==19500352)|| // Delta Force Balaclava
(texnum==84900778)|| // Delta Force Clan BDU
(texnum==27500442)|| // Delta Force Body Armor
(texnum==42800576)|| // Delta Force Body Armor 2
(texnum==52100658)|| // Delta Force Tactical Vest
(texnum==12200196)|| // Spetsnaz Helmet
(texnum==27100464)|| // Spetsnaz Gas Mask
(texnum==33600552)|| // Spetsnaz Body Armor
(texnum==44100646)|| // Spetsnaz Tactical Vest
(texnum==17800292)|| // GIGN Red Bandana
(texnum==21300290)|| // GIGN Helmet
(texnum==2800036)|| // GIGN Helmet Lens
(texnum==35700558)|| // GIGN Gas Mask
(texnum==22100396)|| // GIGN Balaclava
(texnum==29700492)|| // GIGN Body Armor
(texnum==11200188)|| // ROKMC Beret
(texnum==12000194)|| // ROKMC Helmet
(texnum==29800450)|| // ROKMC Gas Mask
(texnum==27100394)|| // ROKMC Body Armor
(texnum==28700374)|| // ROKMC X Harness
(texnum==34700470)|| // ROKMC X Harness
(texnum==5100056)|| // ROKMC Pouch
(texnum==9900163)|| // ROKMC Left Arm
(texnum==18300163)|| // ROKMC Right Arm
(texnum==16400266)|| // GSG9 Red Bandana
(texnum==16200243)|| // GSG9 Helmet
(texnum==31900466)|| // GSG9 Gas Mask
(texnum==19300342)|| // GSG9 Balaclava
(texnum==83600752)|| // GSG9 Clan BDU
(texnum==33400477)|| // GSG9 Body Armor
(texnum==10500163)|| // GSG9 Rolled Up Sleeves
(texnum==38100666)|| // GSG9 Tactical Knee Pads
(texnum==9600172)|| // SAS Boonie Hat
(texnum==14200236)|| // SAS Helmet
(texnum==37800552)|| // SAS Gas Mask
(texnum==28100486)|| // SAS Balaclava
(texnum==62400752)|| // SAS Clan BDU
(texnum==27900456)|| // SAS Body Armor
(texnum==45700654)|| // SAS Tactical Vest
(texnum==39800532)|| // SAS Tactical Vest 2
(texnum==9200100)|| // SAS Holster
(texnum==4800040)|| // SAS Magazine Pouch
(texnum==4000044)|| // SAS Pouch
(texnum==6500110) || // KSF Boonie Hat
(texnum==12900208)|| // KSF Helmet
(texnum==29600448)|| // KSF Gas Mask
(texnum==31100398)|| // KSF Sunglasses
(texnum==84700776)|| // KSF Clan BDU
(texnum==600004)|| // KSF Clan BDU Logo
(texnum==36500606)|| // KSF Body Armor
(texnum==63100646)|| // KSF Tactical Vest
(texnum==19800163)|| // KSF Rolled Up Sleeves
(texnum==7000066)|| // KSF Holster
(texnum==10400190)|| // SRG Beret
(texnum==23800294)|| // SRG Deer Head
(texnum==11600180)|| // SRG NIJ IIIA Helmet
(texnum==17100278)|| // SRG Red Bandana
(texnum==14600198)|| // SRG Battle Cap
(texnum==18200266)|| // SRG Helmet
(texnum==19100106)|| // SRG Gas Mask
(texnum==54300350)|| // SRG Sunglasses
(texnum==30800380)|| // SRG Mid Class Sunglasses
(texnum==79300995)|| // SRG Clan BDU 1
(texnum==13300138)|| // SRG Clan BDU 2
(texnum==300001)|| // SRG Clan BDU 3
(texnum==1200012)|| // SRG Clan BDU Logo
(texnum==10900110)|| // SRG Bulletproof Vest
(texnum==6200064)|| // SRG Holster
(ForceReconAddons)||
(MulanAddons)||
(texnum==22700250)) // SRG Pouch
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0,Green);
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0,Blue);
}
if (m_Stride==40 && // Guns =============== //
(texnum==187200968)|| // GALIL
(texnum==187200968)|| // GALIL 2
(texnum==149701124)|| // UZI
(texnum==193701304)|| // M249
(texnum==232501431)|| // SIG551
(texnum==161500751)|| // FA-MAS
(texnum==107400724)|| // FR-F2
(texnum==141600900)|| // AN94
(texnum==145900805)|| // G36C
(texnum==42200339)|| // K1
(texnum==23400116)|| // K1 2
(texnum==17500073)|| // K1 3
(texnum==3200012)|| // K1 4
(texnum==2300012)|| // K1 5
(texnum==71900459)|| // MP5
(texnum==1800008)|| // MP5 2
(texnum==20300084)|| // MP5 3
(texnum==16700083)|| // MP5 4
(texnum==79100469)|| // M4A1
(texnum==12000044)|| // M4A1 2
(texnum==16800062)|| // M4A1 3
(texnum==2400008)|| // M4A1 4
(texnum==600002)|| // M4A1 5
(texnum==12800050)|| // M4A1 6
(texnum==2600010)|| // M4A1 7
(texnum==4200014)|| // M4A1 8
(texnum==1400008)|| // M4A1 9
(texnum==80600442)|| // M16A2
(texnum==13400052)|| // M16A2 2
(texnum==17600066)|| // M16A2 3
(texnum==5400018)|| // M16A2 4
(texnum==46200348)|| // STEYR_AUG
(texnum==27000133)|| // STEYR_AUG 2
(texnum==4100025)|| // STEYR_AUG 3
(texnum==1200006)|| // STEYR_AUG 4
(texnum==400002)|| // STEYR_AUG 5
(texnum==46800367)|| // PSG-1
(texnum==9600042)|| // PSG-1 2
(texnum==18800092)|| // PSG-1 3
(texnum==16900071)|| // PSG-1 4
(texnum==3400012)|| // PSG-1 5
(texnum==800004)|| // PSG-1 6
(texnum==40500383)|| // K2
(texnum==15800089)|| // K2 2
(texnum==2200012)|| // K2 3
(texnum==7000034)|| // K2 4
(texnum==60700349)|| // P90
(texnum==5500033)|| // P90 2
(texnum==47700227)|| // P90 3
(texnum==10300047)|| // P90 4
(texnum==3800014)|| // P90 5
(texnum==50300349)|| // AK-74
(texnum==14700071)|| // AK-74 2
(texnum==13100061)|| // AK-74 3
(texnum==194501145)|| // MG36
(texnum==116000670)|| // DESERT EAGLE
(texnum==182101089)|| // MR73
(texnum==62500454)|| // REMINGTON M870
(texnum==95200571)|| // BENELLI M1
(texnum==40700334)|| // GLOCK 23
(texnum==71500449)|| // BERETTA M92F
(texnum==11000044)|| // BERETTA M92F 2
(texnum==16500075)|| // BERETTA M92F 3
(texnum==4400020)|| // BERETTA M92F 4
(texnum==2800014)|| // BERETTA M92F 5
(texnum==92000543)|| // COLT 45
(texnum==239001276)) // DRAGONUV
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0,Blue);
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0,Green);
}
}
return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
}
Now ill be explaining a lot... Razz

Remember these
Code
int m_Stride;
int texnum;
int nNumVertices;
int nPrimitiveCount;
bool chamsThe first 4 are different types of model recognitions... Every model, like a player body has a stride, or a Numvertices or Primcount. In Soldierfront case, the Stride is 40, when the Stride is 40, everything would be chammed... but we use numvertices and primcount to point out the things we want colored in. and in all of that, we simplify it to texnums Smile. Most games dont have a stride which recognizes everything like soldierfront and you wont need numverts and primcounts... like crossfire, the player modelrecognition is Stride == 40.
So texnum is
So texnum is
Code
texnum = (nNumVertices*100000)+nPrimitiveCount;
only use this function when you are useing nNumvertices and primcout.

Now we recognize everything with our texnums and shit... Very Happy and in globals we mention chams so it knew what we are talking about...Razz
Then you get to this
Code
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0,Yellow);
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

pDevice->SetTexture(0,Red);
This is the wallhack code, all you guys need to know is that we enable buffers and switch them enable to see people behind walls.. and

you see
Code
pDevice->SetTexture(0,Yellow);
code
pDevice->SetTexture(0,Red);
a This is how we color our texnums(Model Recognition in)

The first one is behind walls color, the second one, is in front of walls color.. You can change it to any colors we've mentioned in our globals.. since we generated it and declared it.

The Colors(Just in case you forgot):
code
LPDIRECT3DTEXTURE8 Red;
LPDIRECT3DTEXTURE8 Yellow;
LPDIRECT3DTEXTURE8 Green;
LPDIRECT3DTEXTURE8 Blue;
LPDIRECT3DTEXTURE8 Purple;
LPDIRECT3DTEXTURE8 Orange;
LPDIRECT3DTEXTURE8 Pink;
LPDIRECT3DTEXTURE8 White;
LPDIRECT3DTEXTURE8 Black;
Now thats our chams, oh and the guns, you can just modify there colors on the wallhack code right under it.. Razz

SO what i'm trying to say is you can color anything in as long as you have its model recognition.

Moving on!

//================================================== ================================================== ================================================== ================================================== ================================================== ================================================== =========/
Now we have our chams... and anything really.... that we want to color in.. but our recognition comes from a different place SetStreamSource Razz another d3d Function
Code
typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
oSetStreamSource pSetStreamSource;

HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)
{
if(nStreamNumber==0)
m_Stride = nStride;

return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
}
see, the code that says m_Stride = nStride?

Well nStride is apart of a modelrecognition, and we used m_Stride, by saying that they equal each other.. m_Stride in our chams code = nStride.. now you say, why dontwe just use nStride instead? Well we have to use this function to identify or use the model recognition system Razz

Now we're almost done, we have to assign it a hotkey.. Razz

Back to endscene... Now why is Endscene so important? Because it renders every frame per second Razz
To add a hotkey. we would do it like this
Code
if (GetAsyncKeyState(VK_F1)&1) // if we click f1
{ chams = !chams; } // chams = on
Now the hotkeys name has to be exactly like it is.. remember we also use if(colored walls) before?
Code
if (GetAsyncKeyState(VK_F2)&1) // if we click f2
{ colored walls = !colored walls; } // colored walls = on
The hotkeys name has to be the same as the if function and as it is in the globals, thats why we define shit like

bool chams = false;

so we can add a hotkey to chams and recognize it Razz


phew that was alot Very Happy
But theres more(Dam billy mayes)

Want no fog, xray , fullbright?

declare them first like chams.. Razz
Code
int nofog;
int xray;
int fullbright;
Now where we could put this, in DIP, or another D3D function SetRenderState... so you have two options.. put it in dip or SRS Razz.. DIP is detected on most games so i'd put it in SetRenderstate, it will help you get used to other functions..
Code
typedef HRESULT ( WINAPI* oSetRenderState ) ( LPDIRECT3DDEVICE8 pDevice, D3DRENDERSTATETYPE State, DWORD Value);
oSetRenderState pSetRenderState;
HRESULT WINAPI mySetRenderState(LPDIRECT3DDEVICE8 pDevice, D3DRENDERSTATETYPE State, DWORD Value)
{
if(fullbright)
{
pDevice->SetRenderState(D3DRS_LIGHTING, false); //d3d lighting off
pDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_ARGB(255,255,255,255)); // use all colors to glow up the lighting ingame
}


if(nofog) // if nofog on
{ // then
pDevice->SetRenderState(D3DRS_FOGENABLE, false); // Disable the Fog
} // end of then
if(xray)
{
if(m_Stride == Modelrecognition) //you can define the stride like this to
{
m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
}
}

return pSetRenderState(pDevice,State, Value);
}
Now we have three different hacks in SRS(SetRenderState)!
Like before we just have to set a hotkey for it... IN ENDSCENE!
Code
if (GetAsyncKeyState(VK_F3)&1) // if we click f3
{ //then
nofog = !nofog; //nofog = on
} //end of then
and the same applys to xray and fullbright Very Happy

phew a lot of hacks..

What we've nailed down..

-Wallhack
-Chams
-NoFog
-Xray
-FullBright

whats left?

Crosshair Razz

in globals we put:
code
float ScreenCenterX = 0.0f;
float ScreenCenterY = 0.0f;
bool xhair = false;
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
Centering and declaring the xhair.. also giving it the color of red(You also just use the regular red,or whatever color)

SO here we are back to endscene again Very Happy
Code
if(xhair)
{
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
}
we're drawing this in endscene... Very Happy where it says redt, you can change to any of the colors we declared.

But to adding a crosshair we need screenpositioning... we use the d3d function SetViewPort
code
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
oSetViewport pSetViewport;

HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)
{
ScreenCenterX = ( float )pViewport->Width / 2;
ScreenCenterY = ( float )pViewport->Height / 2;

return pSetViewport(pDevice,pViewport);
}
it just positions it.. and you know whats next.. back to Endscene...

add the hotkey
code
if (GetAsyncKeyState(VK_F8)&1) // if we click f8
{ xhair = !xhair; } // xhair = on
Now we have

-WallHack
-Chams
-Nofog
-Xray
-Fullbright
-Crosshair

whats left how about wire frame?
Code
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
oDrawIndexedPrimitive pDrawIndexedPrimitive, OriginalDrawIndexedPrimitive;
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
{

if(WireFame)

if(m_Stride == modelrecog)
{ // then
pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME); } // end of then
} // end of then This can go either in DIP or SetRenderState.. does it matter.. maybe if dip gets detected.

You will need a model recognition to choose what you want to wireframe like what you want to color..

remember in globals
Code
int WireFrame;
and add the hotkey
code
if (GetAsyncKeyState(VK_F3)&1) // if we click f3
{ //then
wireframe = !wireframe; //wireframe = on
} // end of then
Now you know whats cool about wire frame.. we can create nosmoke and flash with this...

But you will need the modelrecognition of the smoke and flash...

Remember how i said Stride == 40 Renders everything in soldierfront? If we do

if(m_Stride == 40)
{ // then
pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);
} // end of then
[/CODE]

then everything will be wiredframe..

Time for uber sexy AsusWallhack

Globals
Code:

int AsusWallhack;
Code in either SetRenderstate or DIP:

Example in DIP
Code:

typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
oDrawIndexedPrimitive pDrawIndexedPrimitive, OriginalDrawIndexedPrimitive;
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
{

if(AsusWallhack)

if(Model_rec//for walls)
{
pDevice->SetRenderState( D3DRS_SRCBLEND, 3 );
pDevice->SetRenderState( D3DRS_DESTBLEND, 4 );
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, true );
}
}
then add hotkey

so now we have

-WallHack
-Chams
-NoFog
-FullBright
-Xray
-NoSmoke(wireFrame)
-NoFlash(Wireframe)
-WireFrame(Whole screen)
-Crosshair
-Asus

Wallhack

Whats left?

-NoRecoil
-NoSpread
-Shoot with nades
-ESP(Coming soon)
-ColorAimbot(Easier now that we have chams)
-SuperJump


Coming Soon:
-Debugging boxes(Sexy)
-PixelShaderChams(Sexy)
-Esp(Meh)
-NoSky(another easy one)

UPDATE: NoSKy,NOFlash,NoSmoke,NoWater -> D3D Style.

NoSky:

Start off with
Code:
int nosky;
we need our globals.

Now in DIP:
Code:
if(nosky)
{
if(modelrec)
{
return D3D_OK
}
}
NoFlash:
Code
if(noflash)
{
if(ModelRec)
{
return D3D_OK;
}
}
NoSmoke

int nosmoke;

in DIP
Code:

if(nosmoke)
{
if(ModelRec)
{
return D3D_OK;
}
}

NoWater:
Code:code
int nowater;

if(nowater)
{
if(ModelRec)
{
return D3D_OK;
}
}
Now for the explanations of each.

they all fall under the same concept. Now for the Model Recognition you have to find it with a Model Rec Logger. You have to find the skys Stride/Numvert/Primcount, the waters stride/numvert/primcount, and the flash(OnScreen) and smoke(visible) stride/numvert/primcount.

So logging them will be tough but it will be worth it. when you logg the smoke and flash bangs, im not talking about them when they are in there canteen, im talking about when your whole screen is flashed, or when smoke has appeared on the screen.
Code
return D3D_OK;
what this does is
Code:
return 0;
returning 0, means we are removing it, getting rid of it,ect.

So GLASSWALLS would be:
Code:


int GlassWalls;
in DIP
Code:

if(GlassWalls)
{
if(ModelRec)
{
return D3D_OK;
}
}
the model rec, is the model rec of the walls which is probally easier to find. Returning 0 will only make it invisible TOO YOU. just like how you can only see chams. I dont want people to start getting the idea that you can return D3D_OK on the player rec and become invisible.

See how much paysites make off bullshit?

Btw.. going over some detection.. On Windows XP, Soldierfront Scans DrawIndexedPrimitive so its detected..So chams and Wallhack will have to wait.. for now render all the stuff you can in setrenderstate... Full Screen WireFrame will still help.

Now for hooking you will need to use detours..

Detours: Add this to your source..
Code:
//=======================================Vtable Hook====================================================================//
int D3D8BASE (void)
{
HMODULE D3D8BASE = NULL;
for (;D3D8BASE == NULL;Sleep(100))
D3D8BASE = LoadLibrary("d3d8.dll");
DWORD* VTableHook = 0;
DWORD hD3D8 = (DWORD)GetModuleHandle("d3d8.dll");
DWORD VIRTUALTABLE = FindPattern(hD3D8, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
memcpy(&VTableHook, (void*)(VIRTUALTABLE+2), 4);

DWORD dwEndScene = VTableHook[35];
DWORD dwDrawIndexedPrimitive = VTableHook[71];
DWORD dwSetStreamSource = VTableHook[83];
DWORD dwSetViewport = VTableHook[40];
DWORD dwSetRenderState = VTableHook[50];


pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunc((PBYTE)dwDrawIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive, 7);
pSetStreamSource = (oSetStreamSource)DetourFunc((PBYTE)dwSetStreamSource, (PBYTE)mySetStreamSource, 7);
pEndScene = (oEndScene)DetourFunc((PBYTE)dwEndScene, (PBYTE)myEndScene, 7);
pSetViewport = (oSetViewport)DetourFunc((PBYTE)dwSetViewport, (PBYTE)mySetViewport, 7);
pSetRenderState = (oSetRenderState)DetourFunc((PBYTE)dwSetRenderState, (PBYTE)mySetRenderState, 7);

return 0;
}

BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);

if ( dwReason == DLL_PROCESS_ATTACH )
{
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)D3D8BASE, NULL, NULL, NULL);

}
return TRUE;
}


yan po lahat ng code ko paki try na lang kung detected salamat rendeer rendeer cheers rabbit
Back to top Go down
euagene




Posts : 3
Reputation : 0
Join date : 2010-12-18

tutorial in making a wallhack Empty
PostSubject: san po ilalagay yan   tutorial in making a wallhack I_icon_minitimeSat 18 Dec 2010 - 9:40

san po ilalagay yan sa note pad?? or sa ?word pad Cool
Back to top Go down
 
tutorial in making a wallhack
Back to top 
Page 1 of 1
 Similar topics
-
» D3D Simple Chams TUTORIALS

Permissions in this forum:You cannot reply to topics in this forum
Philippine Online Games :: VIP :: Programming :: D3D Programming [Tutorials]-
Jump to: