I am quite new to this shit, so bare with my noobish stupidity...
So just to be clear, I am not 100% retarded, I have been coding a lua hack etc. (it is shit, but the point is that I can sorta half code) and I have worked with C++ a bit before. So I have heard that forcing a cvar (in this case sv_cheats) is bad, but as far as I can tell it is the easiest way to do it, so for my first hack I am just going to make it like this. Using cheat engine I was able to find the base address, but from then on I have no idea what to do really. So basically how do I force a cvar in gmod?
Just some info...
Yes, I have it all working with cheat engine, but I want to learn how to code, so the point of this isn't really trying to hack a game, it is just to learn how to. So please don't just post something like "just use a public bypasser, it will work fine" or "just use cheat engine, it works just fine".
Also, just as some side questions...
1. Why is forcing a cvar a bad way to do it?
2. Would VAC detect a cvar force on gmod? (And if you were to do this in a different game that VAC isn't broken in e.g. CSS, would VAC detect a cvar force?)
It's easily detectable
ChangeCVARValue( "sv_allowcslua", 1 )
if GetConVarValue( "sv_allowcslua" ) == 1 then BAN() end
CreateClientConVar( "mahhake_aimboat", somthingsomthingsomthing )
if ConVarExists( "mahhake_aimboat" ) then BAN() end
local CCCV = CreateClientConVar
CreateClientConVar = function( lol, ... )
if ( !TBLWITHALLOWEDCVARS[ lol ] ) then
BAN()
end
CCCV( lol, ... )
end
[IMG]https://www.danasof*****m/sig/Obama33868.jpg[/IMG]
ConVars are bad because they can be easily detected.
You shouldn't use static offsets if you are doing internal shit.
If you do use static offsets, you need to find the base for the module the place you want to get is in (client.dll in this case) and subtract the base from the place where you want to modify (ex. base is 0x10000000, modify place is 0x30000000, you would do 0x20000000). After that add that number to GetModuleHandle("yourdll").
VAC won't detect it in gmod, but if gac ever decides to wake up it will definitely detect it. Also, clientside anticheats can detect it too. I have (a long time ago) forced sv_cheats with ce in css and never got banned from that.
Kk, thanks. As I already said I am a super noob at C++ hacking so bare with me :P...
The address that I found is engine.dll+640A98, so that is the base correct? I don't really understand what you means when you say "modify place".
Before I try to learn all this shit and fail, could you tell me if there is any easier place to start C++ hacking?, because from what I have seen so far, this bypass seems like it is going to be much harder than I originally thought.
the offset in this case is 0x640A98 (engine.dll+640A98) and the base is engine.dll.
(dword)GetModuleHandle("engine.dll") + 0x640A98 would be the address you want to modify.
you have to dereference it to set the value. ex *(int*)((dword)GetModuleHandle("engine.dll") + 0x640A98) = 1
If _fami was here he would have said:
rofl FUCK 4 teh still bad get out of throses forums you don't know lua you mongtard shitty ac noob little autistic kid get dunked TOO GOOD he's autist little autistic kid smoke remplace
Melted Bu11et (08-16-2014)
fucking skids, stolen from sethhack once again. retards just because deagler.net and unitedhosts.org leaked sethhack u guys r going fucking nuts.
dont listen to these retards, the best idea is to use patricks cvar spoofing method
its the only good thing in gmod you nerds can get your hands on anyway
z346etn56jzd7egth (08-16-2014)
More spoons may be given if you're really interested.
Should be easy enough to understand as is though, if you got any questions (actual questions), I'll be glad to answer them.Code:ConVar *{Name to be referenced, no spaces.} = cvar->FindVar("{Name of the ConVar}"); {Reference Name, no spaces.}->m_nFlags = {Flag you want the ConVar to have}; {Reference Name, no spaces.}->SetValue({Desired value});