I'm thinking of working with hacks in games, But i'm curious to know, Is good amount of ASM knowledge is required for this? Also could someone explain exactly how a hack works? (As far as a 3d game hack (Counter-Strike:Source..etc)) As far as I know doesn't it edit a file? Sort of in Starcraft which would be storm.dll or battle.snp. I'm sorry if i'm way far from how a hack works.
I'm here to learn! Teach me! :)
Hacks are lame.
Fun learning experience! :)
I'd recommend looking into a more productive excursion. If it interests you, google it. As with anything, it's a good idea to fiddle around with some of the elementary concepts of the language (method, etc) before attempting a project.
Yeah, I found myself at some websites with tutorials but I really hate sites that don't keep with updates...Most links are dead. But thanks.
Well most CS hacks require either patching an address, hooking a call with the HL SDK, or something else. It isn't hard at all once you know fundemental ASM and are decent in debugging and calling conventions.
Thanks
Don't take me as an expert on this, or someone who knows anything at all, but I think that most bool functions such as key verification can be overwritten with
start:
ret 1
Followed by a series of null bytes (or not even, let whatever was there stay there), replacing the original function.
Am I wrong? Probably. :P
Quote from: Joex86] link=topic=8750.msg111246#msg111246 date=1173168130]
Am I wrong?
Yes. ret x returns from the function popping x bytes from the stack.
start:
push 0x00000001
ret 4
Is that better?
Why not just
ret
?
To write a hack, you have to:
1. Load a .dll you wrote into memory.
Loading your own .dll puts as much code you need into the game's address space.
2. Find a place to hook into the game's code
You want to be able to hook into the code when a certain thing happens. For example, when you pull the trigger, when you receive a network packet, when somebody builds a unit, when somebody spends money, when the user types a command, or anything like that.
3. Add a hook into the game's code
You patch over part of the code with a "call hackfunction1()", for example. hackfunction1 generally has to run whatever commands were written over, and to ensure that variables don't accidentally get changed.
That's the main idea. From your hook, you can do anything. You can change variables, call the game's functions, send packets, add to a log, etc.
Hope that helps!
Quote from: iago on March 06, 2007, 08:25:22 PM
To write a hack, you have to:
1. Load a .dll you wrote into memory.
Loading your own .dll puts as much code you need into the game's address space.
2. Find a place to hook into the game's code
You want to be able to hook into the code when a certain thing happens. For example, when you pull the trigger, when you receive a network packet, when somebody builds a unit, when somebody spends money, when the user types a command, or anything like that.
3. Add a hook into the game's code
You patch over part of the code with a "call hackfunction1()", for example. hackfunction1 generally has to run whatever commands were written over, and to ensure that variables don't accidentally get changed.
That's the main idea. From your hook, you can do anything. You can change variables, call the game's functions, send packets, add to a log, etc.
Hope that helps!
That was the most helpful post in this whole topic slowly along with Warrior and Sidoh..