Skip to content
MPGHThe Dark Arts
/
RegisterLog in
Forum
Community
What's NewLatest posts across the boardTrendingHottest threads right nowSubscribedThreads you follow
Discussion
GeneralIntroductionsEntertainmentDebate FortFlaming & Rage
Board
News & AnnouncementsMPGH TimesSuggestions & HelpGiveaways
More Sections
Art & Graphic DesignProgrammingHackingCryptocurrency
Hacks & Cheats
Games
ValorantCS2 / CS:GOCall of Duty / WarzoneFortniteApex LegendsEscape From Tarkov
+14 moreLeague of LegendsGTA VMinecraftRustROTMGBattlefieldTroveBattleOnCombat ArmsCrossFireBlackshotRuneScapeDayZDead by Daylight
Resources
Game Hacking TutorialsReverse EngineeringGeneral Game HackingAnti-CheatConsole Game Hacking
Tools
Game Hacking ToolsTrainers & CheatsHack/Release NewsNew
Submit a release →Share your cheat, tool, or config with the community.
AINEW
AI Tools
General & DiscussionPrompt EngineeringLLM JailbreaksHotAI Agents & AutomationLocal / Open Models
AI × Gaming
AI Aimbots & VisionML Anti-CheatGame Bots & Automation
Create
AI Coding / Vibe CodingAI Art & MediaAI Voice & TTS
The AI frontier →Where game hacking meets modern machine learning. Jump in.
Marketplace
Buy & Sell
SellingBuyingTradingUser Services
Trust & Safety
Middleman LoungeMarketplace TalkVouch Copy Profiles
Money
Cryptocurrency TalkCurrency ExchangeWork & Job Offers
Start selling →List accounts, services, and goods. Use the middleman to trade safe.
MPGH The Dark Arts

A community for offensive security research, reverse engineering, and AI.

Community

ForumMarketplaceSearch

Account

RegisterLog in

Legal

Privacy PolicyForum RulesHelp & FAQ
© 2026 MPGH · All rights reserved.Built by the community, for the community. For educational purposes onlyContent is shared for security research and education — we don't condone illegal use. You're responsible for complying with applicable laws. Use at your own risk.
Home › Forum › MultiPlayer Game Hacks & Cheats › Combat Arms Hacks & Cheats › How to make simple chams in C++ pictures (COMING SOON)

How to make simple chams in C++ pictures (COMING SOON)

Posts 1–4 of 4 · Page 1 of 1
L96A1_ghille
L96A1_ghille
How to make simple chams in C++ pictures (COMING SOON)
ok i have pictures for the fourm i made last week but there is one problem there on my pc thats in the shop im currently on my new laptop but the problem is that the pictures are on my PC and not on my laptop cause i cant run CA on my laptop i can but it lags like hell and the graphics card is so fked up and u cant even hack on it with out crashing DX which agervates me like hell so i will have the pictures uploaded as soon i get the pc back from the shop which should be a month or 2 hopefully a week if im lucky and i sooo hope they dont put a new system on it or some bullsh*t and the thing is that i got like 5 or 6 diffrent pictures on it ^^ oh oops i for got how to add the wall hack in it lol i will make a new post on how to do it make a wall hack with chams in C++ the reason if some of u can get it to work but not beable to see thru the walls is cause there is no wall hack and the wall hack is simple to make in C++ with the codes my friend taught me and it wont work inless u can code into nexon or if u have a PerX bypass i will be on as soon as i get my PC back with the pictures and im also making a post on how to survive in Quarntine mode
#1 · 17y ago
verbindungsfehler
verbindungsfehler
sounds nice, and i waitet for sum c++ instruction like that..

but it rly sux that all these things are not here now and its not even sure if they ever be here
#2 · 17y ago
WH
whobansme??
Ok, in this tutorial i will be explaining the basic concept behind chams, how they work, why they work and how this can be done easily in other renderers, but i will be using D3D9 as an example.

The term "chams" is short for "chameleon colors", which basically (you guessed it) changes the color of the model being rendered, but not just simple changes it, that would be a skinhack, the trick to chams is that the model is rendered one way behind the wall, and one way in front of the wall.

This can be a change in colors, wireframe, or whatever effects you want behind/in front of the wall.

The factor that controls the visibility (or pseudo-visibility) is a value called the Z-Buffer

Quote:
In computer graphics, z-buffering is the management of image depth coordinates in three-dimensional (3-D) graphics, usually done in hardware, sometimes in software. It is one solution to the visibility problem, which is the problem of deciding which elements of a rendered scene are visible, and which are hidden. The painter's algorithm is another common solution which, though less efficient, can also handle non-opaque scene elements. Z-buffering is also known as depth buffering.
For this concept to work at all, one model has to be rendered behind the wall, this can be achieved by bringing your model to the top of the Z-Order, the Z-Order traditionally used to describe 2-Dimensional elements in this case describes the dilemma quite well

Our model is not on the top of the Z-Order, therefore, is not visible
what you see instead is a wall, the engine you use depends on how you do it exactly, but usually you can control the "flow" of the z-buffer for your current model in the model rendering function, once the z-buffer value is edited it is usually re-cached each frame, so you only need not apply the "hack" that frame to "stop" the chams

Once your model is on top, what you have is a simple wallhack, easy but it is not chams that is for certain.

You want to have two colors for the model, one behind and one in front
this can not be achieved without redrawing the model

in OpenGL the function to draw models is "glDrawElements", in d3d8/d3d9 the function is "DrawIndexedPrimitive" and in Source engine, the function is "DrawModelEx/DrawModelExecute"

to disable the "depth test" or bring your model to the top of the "z-order",
in OpenGL the function is "glDisable(GL_DEPTH_TEST)", in DirectX it is "g_pGlobalDevice->SetRenderState( D3DRS_ZENABLE, FALSE )" or "g_pGlobalDevice->SetRenderState( D3DRS_ZFUNC, D3DCMP_NEVER )",
i won't go into detail much about the Source engine because it involves a lot of explanation.

whatever the renderer is, the same idea still applies to all of them

To complete the chams, you need one model being drawn without a Z-buffer, and one drawn with one enabled.

this serves two purposes, you can edit the color of the model behind the wall and in front, and because you rendered the model in front of the wall after you rendered the "wallhacked" model, the model rendered after gets rendered over the wallhack model, and since it has a depth-test you will have effectively drawn one model of one color behind the wall, and another in front of the wall with a (hopefully) separate color.

now that the explanation is out of the way, here is the basic concept:


[php]int __cdecl Hooked_DrawModel( ... )
{
if( IsPlayer( ... ) )
{
//disable z-buffer checking
//color model blue

Original_DrawModel( ... );

//enable the z-buffer
//color model red
}

return Original_DrawModel( ... ); [/php]


[php]void new_glDrawElements( GLenum mode, GLsizei count, GLenum type, const GLvoid *indicies )
{
if( _ReturnAddress() == 0x123456 )
{
glDisable( GL_DEPTH_TEST );
glDisable( GL_TEXTURE_2D );
glColorPointer( 4, GL_UNSIGNED_BYTE, 0, &green );
Original_glDrawElements( mode, count, type, indicies );
glEnable( GL_DEPTH_TEST );
glColorPointer( 4, GL_UNSIGNED_BYTE, 0, &blue );
}

Original_glDrawElements( mode, count, type, indicies );
} [/php]


[php]int __stdcall new_DrawIndexedPrimitive( IDirect3DDevice9 *pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount )
{
if( UC_IS_MARINE || UC_IS_REDARMY )
{
g_pGlobalDevice->SetTexture( 0, NULL );
g_pGlobalDevice->SetPixelShader( g_pBackAllied );
g_pGlobalDevice->SetRenderState( D3DRS_ZENABLE, FALSE );
g_pGlobalDevice->SetRenderState( D3DRS_ZFUNC, D3DCMP_NEVER );

pDrawIndexedPrimitive( pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount );

g_pGlobalDevice->SetRenderState( D3DRS_ZENABLE, dwOldZEnable );
g_pGlobalDevice->SetRenderState( D3DRS_ZFUNC, dwOldZFunc );
g_pGlobalDevice->SetPixelShader( g_pFrontAllied );
}

return pDrawIndexedPrimitive( pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount ); [/php]


this was posted by <<S 0 B E I T>> from TheGaySquad, all credits to him
#3 · 17y ago
Faith
Faith
=.=...
This is really not right. Combat Arms uses DirectX you just copy and pasted code to an OpenGL Function call...
It isn't this easy. I have been coding a Combat Arms hook since last month. I still can't get it to work without disconnecting. You would need to keep in mind how to bypass your hook, you need to figure out how your going to draw what you need (Crosshair, chams, etc). But Nexon and Hackshield are not a bunch of idiots. Expect a lot of trial and failure, just as I have.
#4 · edited 17y ago · 17y ago
Posts 1–4 of 4 · Page 1 of 1

Post a Reply

Similar Threads

  • [Request] simple CS:S wallhack or tut on how to makeBy Q in Hack Requests
    1Last post 12y ago
  • how to make very simple chams in C++By L96A1_ghille in Combat Arms Hacks & Cheats
    16Last post 17y ago
  • How to make Chams for WarrockBy Str8Thimo in Game Hacking Tutorials
    4Last post 14y ago
  • [HELP]How to make your OWN ChamsBy true1playa in Combat Arms Hacks & Cheats
    13Last post 18y ago
  • Who now how to make cham hackBy sammie3 in Combat Arms Hacks & Cheats
    9Last post 18y ago

Tags for this Thread

#chams#coming#make#pictures#simple