News:

Wieners, Brats, Franks, we've got 'em all.

Main Menu

ASM?

Started by abc, March 05, 2007, 05:50:58 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

abc

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!  :)

rabbit


abc

Fun learning experience! :)

Sidoh

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.

abc

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.

Warrior

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.
One must ask oneself: "do I will trolling to become a universal law?" And then when one realizes "yes, I do will it to be such," one feels completely justified.
-- from Groundwork for the Metaphysics of Trolling

abc


Joe

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: Camel on June 09, 2009, 04:12:23 PMI'd personally do as Joe suggests

Quote from: AntiVirus on October 19, 2010, 02:36:52 PM
You might be right about that, Joe.


MyndFyre

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.
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

Joe

start:
    push 0x00000001
    ret 4

Is that better?
Quote from: Camel on June 09, 2009, 04:12:23 PMI'd personally do as Joe suggests

Quote from: AntiVirus on October 19, 2010, 02:36:52 PM
You might be right about that, Joe.


MyndFyre

Why not just

   ret

?
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

iago

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!

abc

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..