GamerzPlanet - For All Your Online Gaming Needs!!

Go Back   GamerzPlanet - For All Your Online Gaming Needs!! > Maple Story > Maple Story Hacks/Bots Discussion

Maple Story Hacks/Bots Discussion Maple story hacking discussion only



[TUTORIAL] Opcodes simplified - posted on request

Maple Story Hacks/Bots Discussion


Closed Thread
 
Thread Tools Display Modes
Old 03-27-2008, 10:38 AM   #1
Registered User
 
Last Online: 04-04-2008 01:07 AM
Join Date: Dec 2005
Posts: 78
Thanks: 0
Thanked 13 Times in 8 Posts
spawnfestis is an unknown quantity at this point
iTrader: 0 / 0%
Points: 6,342.00
Bank: 0.00
Total Points: 6,342.00
Exclamation [TUTORIAL] Opcodes simplified - posted on request

This is one of the official [Only registered and activated users can see links. ] tutorials.
We will lead you through some beginner-level stuff in ASM(Assembly) but first I would like you to read through the below quote from [Only registered and activated users can see links. ]

Quote:
Originally Posted by [Only registered and activated users can see links. ]
An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware manufacturer, and is based on abbreviations (called mnemonics) that help the programmer remember individual instructions, registers, etc. An assembly language is thus specific to a certain physical or virtual computer architecture (as opposed to most high-level languages, which are portable).
Okay, so now you know what Assembly is, no need to question that, right?
Let us begin with what ASM really is, and how you can use it.

Opcodes, what are they?

I'm not going to bring up every single opcode, but this is basically the most important ones. (at least in hacking)

MOV = Move
Move something from one point to another, it's self-explainable but let me show you.
Code:
mov brain, [cells]
This will move "cells" to the "brain", it's a humortastical example, but you get it.

CMP = Compare
Simple as it is, it compares the affected stuff.
(compares two registers or a register + a value)
Code:
cmp [address], 20
Would compare the address with the value.

JMP = Jump (conditional)
This is a very simple instruction, as I usually call them.
Code:
Jmp 00400000
This would make the it jump to the address 0x00400000(0x is an indicator that it is HEX and not DECIMAL, however it is not necessary to write out in ASM.)

As the following is pretty much the same type of memory altering as above, we will just take up what they mean and you will be able to figure it out without any examples really, you'll see why after reading them.
  • JE(JZ) = Jump to if equal
The reason why JZ is there, is because it does the same thing as JE but with ONE exception, and that is - it will only jump if the Zero Flag is applicated at the destination.
  • JNE = Jump to if not equal
    JG = Jump to if greater than
    JL = Jump to if less than
    JNG = Jump to if not greater than
    JNL = Jump to if not less than
    JGE = Jump to if greater than or equal to
    JLE = Jump to if less than or equal to
Okay, so now you know all the basic jumps, off to some other..

INC = Increment
Let's think (hypothetically of course) that the value at EAX is equal to 1.
And now we "INC" that, it would be something like this.
Code:
INC eax
The value stored at EAX is now increased to 2.

A little more advanced example:
Code:
inc dword ptr [00400000]
This would mean that the value at 00400000 will be increased by 1.

DEC = Decrement
Same as above, but the other way.
EAX = 1
Code:
DEC eax
EAX = 0

A little more advanced example:
Code:
dec dword ptr [00400000]
This would mean that the value at 004000 will be decreased by 1.

PUSH = pushes a value, point in memory, or register onto the stack.
(Push puts a value ON THE TOP OF THE STACK AND INCREASES THE SIZE OF THE STACK BY 1)
Code:
PUSH eax
The syntax for this would be PUSH then either value/register or any memory reference.
[Only registered and activated users can see links. ]

POP = pops a value off the stack into a point in memory or register.
This is the opposite of PUSH (by this I mean that it takes from the stack instead of adding up), and it is usually likely to work with PUSH, since often if a registry is preserved with PUSH EBX you can find POP EBX later in the memory.

Example of the POP syntax:
Code:
POP eax
(Remember: Pop takes the value ON THE TOP OF THE STACK.)
See here that the syntax of POP is the same as PUSH?
Good!

We've decided to not bring these things up more than this, as it would probably not profit you anyways, but we will bring up what they are.
ALLOC = Reserves space for you to use in the memory
Registersymbol = Makes a symbol you can use for reading / editing values by adding it as a address in your cheat table.
Dealloc = Releases space you reserved.
Unregistersymbol = Reversed of Registersymbol.
Label - Hmm, this is just a label :)

If you would like to look further into Jumps, I would recommend googling up the following jumps, some which are described above, but anyways.
JMP, JE, JZ, JNE, JNZ, JA, JG, JNA, JNG, JB, JL, JNB, JNL, JAE, JGE, JNAE, JNGE

And incase you did'nt know [] acts like a pointer. Here is a example assumming eax is 0x00400000.
Code:
[eax] is saying whatever is stored at 0x400000
A tutorial by [Only registered and activated users can see links. ] and edited / cleaned up by[Only registered and activated users can see links. ].
additional thanks to the [Only registered and activated users can see links. ] for making it of any worth to write up.
spawnfestis is offline  
The Following 3 Users Say Thank You to spawnfestis For This Useful Post:
slimmi (03-28-2008), xzxaznboi00xzx (03-28-2008)
Sponsored Links
Old 03-27-2008, 05:13 PM   #2
Registered User
 
Last Online: 10-13-2008 10:40 AM
Join Date: Jul 2006
Location: Tokyo, Japan
Age: 16
Posts: 867
Thanks: 6
Thanked 935 Times in 75 Posts
nanashi92 is on a distinguished road
iTrader: 0 / 0%
Points: 692.00
Bank: 3,555.53
Total Points: 4,247.53
Re: [TUTORIAL] Opcodes simplified - posted on request

Quote:
ALLOC = Reserves space for you to use in the memory
Registersymbol = Makes a symbol you can use for reading / editing values by adding it as a address in your cheat table.
Dealloc = Releases space you reserved.
Unregistersymbol = Reversed of Registersymbol.
Label - Hmm, this is just a label :)
These aren't Assembly. You can only use them in Cheat Engine scripts.
nanashi92 is offline  
Old 03-28-2008, 06:14 AM   #3
Registered User
 
Last Online: 04-21-2008 06:00 AM
Join Date: Oct 2006
Posts: 47
Thanks: 6
Thanked 0 Times in 0 Posts
xzxaznboi00xzx is on a distinguished road
iTrader: 0 / 0%
Points: 124.00
Bank: 0.00
Total Points: 124.00
Re: [TUTORIAL] Opcodes simplified - posted on request

ns tut
i understood most of it
could u give an example of a script and like what each line would do?

ty in advance

Last edited by xzxaznboi00xzx; 03-28-2008 at 06:18 AM..
xzxaznboi00xzx is offline  
Old 03-28-2008, 06:26 AM   #4
Registered User
 
Last Online: 03-31-2008 09:12 AM
Join Date: Mar 2008
Age: 15
Posts: 34
Thanks: 5
Thanked 3 Times in 1 Post
DarkPure is on a distinguished road
iTrader: 0 / 0%
Points: 100.00
Bank: 0.00
Total Points: 100.00
Re: [TUTORIAL] Opcodes simplified - posted on request

Nice tut I can understand it and yea like azn said can you give a ex of script to really understand.
DarkPure is offline  
Closed Thread

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

All times are GMT +1. The time now is 04:54 AM.


Powered by: vBulletin
Copyright ©2008, GamerzPlanet.Net
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Network: GamerzPlanet | ForumzPlanet | GzPUpload | GzPArcade | GzP Host | Australian Poker | Watch Desperate Housewives | Visits: