Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


A Very In Depth Tutorial on Auto Assembler
Goto page Previous  1, 2, 3, 4, 5, 6  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Tutorials -> Auto Assembler tutorials
View previous topic :: View next topic  
Author Message
samuri25404
Grandmaster Cheater
Reputation: 7

Joined: 04 May 2007
Posts: 955
Location: Why do you care?

PostPosted: Fri Jun 29, 2007 5:58 pm    Post subject: Reply with quote

Sure, that's fine

Just as long as you give credits. =P
Back to top
View user's profile Send private message
thejustin5
Newbie cheater
Reputation: 0

Joined: 01 Jul 2007
Posts: 12

PostPosted: Sun Jul 01, 2007 3:47 pm    Post subject: tutorial Reply with quote

i cant get past step 2. it doesnt say what program im suposed to click to get health up i dont know.
Back to top
View user's profile Send private message
Madman
I post too much
Reputation: 1

Joined: 04 May 2006
Posts: 3976

PostPosted: Sun Jul 01, 2007 4:25 pm    Post subject: Reply with quote

good job Cool
_________________
Back to top
View user's profile Send private message
mOnSoOn
Expert Cheater
Reputation: 0

Joined: 05 Jul 2007
Posts: 203

PostPosted: Thu Jul 05, 2007 6:18 pm    Post subject: Reply with quote

Rolling Eyes It's not good.
First you have to explain the basics. What is the allocation it self etc.
Quote:
[enable]
alloc(WhatNowMinesweeper,256) //Allocating...
alloc(ChiliDog,4)
label(WhatNowMinesweeper) //Labeling...
label(ReturnHere)
registersymbol(ChiliDog) //Registering...

ChiliDog:
dd 0 //Just FYI, this is telling it that ChiliDog's value starts out at 0

01002FF5: //This is the address that writes to the time on MineSweeper
jmp WhatNowMinesweeper //I rewrote the opcode to tell it to jmp to my
//script
nop //I fill in the last byte
ReturnHere: //I'll tell you about this later

WhatNowMinesweeper: //My actual code
push eax //Save eax, we could have trouble if we don't do this
mov eax,[ChiliDog] //Move the value of ChiliDog into eax
mov [0100579C],eax //Move eax, which is the value of ChiliDog, into the
//time
pop eax //Take eax out, because we're done editing it
jmp ReturnHere //Jmp to ReturnHere, I'll explain this later

[disable]
dealloc(WhatNowMinesweeper) //Deallocate the memory
dealloc(ChiliDog)
unregistersymbol(ChiliDog) //Unregister the symbol

01002FF5: //The address that we modified to jmp to my code
inc [0100579C] //The original opcode, to prevent a crash

This script has so many problems Confused
This is better:
Code:
[enable]
alloc(WhatNowMinesweeper,256) // Make a room possessed of 256 byts for the script. Actually now the allocation is an address and can be a pointer. [WhatNowMinesweeper+1] is an opcode from you're script.
alloc(ChiliDog,4) // same ... Usually when there is a little bytes it's for storing value\address
label(WhatNowMinesweeper) //Labeling...
label(ReturnHere) 
registersymbol(ChiliDog) //Registering... No you will be able to add it to you're CT and change the value.

ChiliDog:
dd 0 // DD = Define DoubleWord. DD 0 means define dword with the value 0. Why the value is 0 now? because we allocate 4 bytes, dword = 4 bytes means that all the value of the addresses will be 00. It can be in this way too: dw 00
dw 00
because Word = 2 bytes so Two Words (aka Double Word..) it's 4 bytes.
or this way: db 00 00 00 00

01002FF5:              //This is the address that writes to the time on MineSweeper
jmp WhatNowMinesweeper  //Now it will just to our allocation\address
                                       // Which all the Opcodes there.
nop                    //I fill in the last byte - xD
ReturnHere:           //I'll tell you about this later

WhatNowMinesweeper: // This is an address, from this address there is
                                  // Script
push eax            //See my example below on the stack -_-"
mov eax,[ChiliDog]  //Move the value of ChiliDog into eax
mov [0100579C],eax  //Move eax, which is the value of ChiliDog, into the
                              //time
pop eax             //Take eax out, because we're done editing it
jmp ReturnHere      //Jmp to ReturnHere, I'll explain this later

[disable]
dealloc(WhatNowMinesweeper)  // alloc - allocate. de = Destroy dealloc =
                                             // Destroy allocation
dealloc(ChiliDog)
unregistersymbol(ChiliDog)   //Unregister the symbol... (-_-")

01002FF5:                    //The address that we modified to jmp to my code
inc [0100579C]               //The original opcode, to prevent a crash

Example for the Stack (I didn't wrote it, but it's very good example):
Code:
Code always goes in a series, it has some special dedication lines to certain variables. This dedication space is called the stack. The stack is used to give a variable a blank value, and use it for storage. This about it like this: You have a piece of paper that you are doing your homework on, but then your friend calls you to tell you that you need to call Phil, where his number is 555-6405. You panic, with nothing else to write on, you write it on your homework sheet. After you hang up from talking to your friend, you now have time to find your phone book so you can write down Phil's number. After writing Phil's number in the phone book, you erase it from your homework, call Phil, and continue on with the homework.


Edit:
The Tutorial is really good but there is some things that not. GJ Wink
Back to top
View user's profile Send private message MSN Messenger
Slugsnack
Grandmaster Cheater Supreme
Reputation: 71

Joined: 24 Jan 2007
Posts: 1857

PostPosted: Sat Jul 07, 2007 4:59 am    Post subject: Reply with quote

Quote:
Lastly, the function "registersymbol". What this does, is allows you to add the symbol that you register to your Cheat Table. Note, you still have to allocate memory for it. Let's try this in our script.


Could you re-explain that bit for me please ? What symbol are you talking about ?
Back to top
View user's profile Send private message
smartz993
I post too much
Reputation: 2

Joined: 20 Jun 2006
Posts: 2013
Location: USA

PostPosted: Mon Aug 13, 2007 6:42 pm    Post subject: Reply with quote

Code:
[ENABLE]
alloc(AutoAssembler,1024)
alloc(Continue,1024)
alloc(SayWhat,1024)
alloc(WooHoo,1024)
label(AutoAssembler)
label(Continue)
label(SayWhat)
registersymbol(WooHoo)

AutoAssembler:
mov eax,02
cmp eax,03
jne Continue
je SayWhat

Continue:
cmp eax,[WooHoo]

[DISABLE]
dealloc(AutoAssembler)
dealloc(Continue)
dealloc(SayWhat)
dealloc(WooHoo)
unregistersymbol(WooHoo)


This script wouldn't be valid. You MUST use all of the labels that you define or CE's AA won't accept it.
Back to top
View user's profile Send private message
C.R.E.A.M
Grandmaster Cheater
Reputation: 0

Joined: 26 Mar 2007
Posts: 897

PostPosted: Mon Oct 29, 2007 5:09 pm    Post subject: Reply with quote

bump
Back to top
View user's profile Send private message
Devourment
Master Cheater
Reputation: 0

Joined: 04 Oct 2007
Posts: 343
Location: Crystal Mountain

PostPosted: Wed Oct 31, 2007 10:44 am    Post subject: Reply with quote

+rep, Thanks, IM Slowly Getting To LEarn This, In a Nutshell, i want to be a professional at this, but, Not easy to do eh? it takes a while to get used to, thanks for teh help=]
Back to top
View user's profile Send private message MSN Messenger
benlue
Moderator
Reputation: 0

Joined: 09 Oct 2006
Posts: 2142

PostPosted: Thu Nov 01, 2007 2:52 pm    Post subject: Reply with quote

I've decided to sticky this as i think it will help out many people who read it. Wink

From my view good job. Wink

But before it can be stickied, please remove the quotes since there is too many to be stickied. Once done post here. Wink

Ta. Wink
Back to top
View user's profile Send private message
Melman
Master Cheater
Reputation: 0

Joined: 09 Dec 2006
Posts: 301

PostPosted: Sun Dec 23, 2007 8:18 am    Post subject: Reply with quote

I cant believe he didnt get 1 REP. +REP! Very Happy
Very nice tut.

_________________
Nothing Here.
Back to top
View user's profile Send private message AIM Address
crazyito
Newbie cheater
Reputation: 0

Joined: 20 Oct 2007
Posts: 15

PostPosted: Sun Dec 23, 2007 10:08 am    Post subject: Re: A Very In Depth Tutorial on Auto Assembler Reply with quote

samuri25404 wrote:
------------------------------
Inc/Dec
`````

Inc: Increase by one. This increases the value of the register or addres by one. Used as below.

Code:

inc eax


Dec: Decrease by one. Virtually the same as Inc.


can we increase the value of the reg or add by more than 1, say 2?
Back to top
View user's profile Send private message MSN Messenger
samuri25404
Grandmaster Cheater
Reputation: 7

Joined: 04 May 2007
Posts: 955
Location: Why do you care?

PostPosted: Sun Dec 23, 2007 4:54 pm    Post subject: Re: A Very In Depth Tutorial on Auto Assembler Reply with quote

Ok, sorry guys for not posting here, but here we go:

mOnSoOn wrote:
:roll: It's not good.
First you have to explain the basics. What is the allocation it self etc.
Quote:
[enable]
alloc(WhatNowMinesweeper,256) //Allocating...
alloc(ChiliDog,4)
label(WhatNowMinesweeper) //Labeling...
label(ReturnHere)
registersymbol(ChiliDog) //Registering...

ChiliDog:
dd 0 //Just FYI, this is telling it that ChiliDog's value starts out at 0

01002FF5: //This is the address that writes to the time on MineSweeper
jmp WhatNowMinesweeper //I rewrote the opcode to tell it to jmp to my
//script
nop //I fill in the last byte
ReturnHere: //I'll tell you about this later

WhatNowMinesweeper: //My actual code
push eax //Save eax, we could have trouble if we don't do this
mov eax,[ChiliDog] //Move the value of ChiliDog into eax
mov [0100579C],eax //Move eax, which is the value of ChiliDog, into the
//time
pop eax //Take eax out, because we're done editing it
jmp ReturnHere //Jmp to ReturnHere, I'll explain this later

[disable]
dealloc(WhatNowMinesweeper) //Deallocate the memory
dealloc(ChiliDog)
unregistersymbol(ChiliDog) //Unregister the symbol

01002FF5: //The address that we modified to jmp to my code
inc [0100579C] //The original opcode, to prevent a crash

This script has so many problems :?
This is better:
Code:
[enable]
alloc(WhatNowMinesweeper,256) // Make a room possessed of 256 byts for the script. Actually now the allocation is an address and can be a pointer. [WhatNowMinesweeper+1] is an opcode from you're script.
alloc(ChiliDog,4) // same ... Usually when there is a little bytes it's for storing value\address
label(WhatNowMinesweeper) //Labeling...
label(ReturnHere) 
registersymbol(ChiliDog) //Registering... No you will be able to add it to you're CT and change the value.

ChiliDog:
dd 0 // DD = Define DoubleWord. DD 0 means define dword with the value 0. Why the value is 0 now? because we allocate 4 bytes, dword = 4 bytes means that all the value of the addresses will be 00. It can be in this way too: dw 00
dw 00
because Word = 2 bytes so Two Words (aka Double Word..) it's 4 bytes.
or this way: db 00 00 00 00

01002FF5:              //This is the address that writes to the time on MineSweeper
jmp WhatNowMinesweeper  //Now it will just to our allocation\address
                                       // Which all the Opcodes there.
nop                    //I fill in the last byte - xD
ReturnHere:           //I'll tell you about this later

WhatNowMinesweeper: // This is an address, from this address there is
                                  // Script
push eax            //See my example below on the stack -_-"
mov eax,[ChiliDog]  //Move the value of ChiliDog into eax
mov [0100579C],eax  //Move eax, which is the value of ChiliDog, into the
                              //time
pop eax             //Take eax out, because we're done editing it
jmp ReturnHere      //Jmp to ReturnHere, I'll explain this later

[disable]
dealloc(WhatNowMinesweeper)  // alloc - allocate. de = Destroy dealloc =
                                             // Destroy allocation
dealloc(ChiliDog)
unregistersymbol(ChiliDog)   //Unregister the symbol... (-_-")

01002FF5:                    //The address that we modified to jmp to my code
inc [0100579C]               //The original opcode, to prevent a crash

Example for the Stack (I didn't wrote it, but it's very good example):
Code:
Code always goes in a series, it has some special dedication lines to certain variables. This dedication space is called the stack. The stack is used to give a variable a blank value, and use it for storage. This about it like this: You have a piece of paper that you are doing your homework on, but then your friend calls you to tell you that you need to call Phil, where his number is 555-6405. You panic, with nothing else to write on, you write it on your homework sheet. After you hang up from talking to your friend, you now have time to find your phone book so you can write down Phil's number. After writing Phil's number in the phone book, you erase it from your homework, call Phil, and continue on with the homework.


Edit:
The Tutorial is really good but there is some things that not. GJ :wink:


Thanks a ton, I wrote this a while ago, and I've gained a lot of knowledge not just about AA, but about programing in general. If you don't mind, I'll go ahead and replace my script with that (with credits to you, of course).

Slugsnack wrote:
Quote:
Lastly, the function "registersymbol". What this does, is allows you to add the symbol that you register to your Cheat Table. Note, you still have to allocate memory for it. Let's try this in our script.


Could you re-explain that bit for me please ? What symbol are you talking about ?


Simply put, in AA, registering a symbol allows you to add something to your Cheat Table with the address _symbolname_ , where _symbolname_ is the name of your symbol.

So if you had in your script:

Code:

registersymbol(Pancakes)


You could add a new address to your Cheat Table with the address "Pancakes".

smartz993 wrote:
Code:
[ENABLE]
alloc(AutoAssembler,1024)
alloc(Continue,1024)
alloc(SayWhat,1024)
alloc(WooHoo,1024)
label(AutoAssembler)
label(Continue)
label(SayWhat)
registersymbol(WooHoo)

AutoAssembler:
mov eax,02
cmp eax,03
jne Continue
je SayWhat

Continue:
cmp eax,[WooHoo]

[DISABLE]
dealloc(AutoAssembler)
dealloc(Continue)
dealloc(SayWhat)
dealloc(WooHoo)
unregistersymbol(WooHoo)


This script wouldn't be valid. You MUST use all of the labels that you define or CE's AA won't accept it.


Thanks, I'll fix that.

benlue wrote:
I've decided to sticky this as i think it will help out many people who read it. :wink:

From my view good job. :wink:

But before it can be stickied, please remove the quotes since there is too many to be stickied. Once done post here. :wink:

Ta. :wink:


Thank you, I'll go ahead and fix that as well.

crazyito wrote:
samuri25404 wrote:
------------------------------
Inc/Dec
`````

Inc: Increase by one. This increases the value of the register or addres by one. Used as below.

Code:

inc eax


Dec: Decrease by one. Virtually the same as Inc.


can we increase the value of the reg or add by more than 1, say 2?


No, in order to do that, you'd have to do:

Code:

add eax,2

_________________
Wiccaan wrote:

Oh jeez, watchout I'm a bias person! Locked.


Auto Assembly Tuts:
In Depth Tutorial on AA
Extended
Back to top
View user's profile Send private message
crazyito
Newbie cheater
Reputation: 0

Joined: 20 Oct 2007
Posts: 15

PostPosted: Mon Dec 24, 2007 7:56 am    Post subject: Reply with quote

that means add is similar to inc? okay, thanks Smile
Back to top
View user's profile Send private message MSN Messenger
hackerkts
Expert Cheater
Reputation: 0

Joined: 21 Jan 2006
Posts: 160
Location: Singapore

PostPosted: Mon Dec 24, 2007 10:05 pm    Post subject: Reply with quote

crazyito wrote:
that means add is similar to inc? okay, thanks Smile


Inc only add 1..

_________________
Quote:
"Give a man a fish and he will eat for a day. Teach a man to fish and he will eat for the rest of his life."

Read it, learn it and love it!
Back to top
View user's profile Send private message
crazyito
Newbie cheater
Reputation: 0

Joined: 20 Oct 2007
Posts: 15

PostPosted: Tue Dec 25, 2007 8:14 am    Post subject: Reply with quote

hackerkts wrote:

Inc only add 1..


yeap, that's why I said similar cos both also increase the value. just that inc only add 1 like u said. thanks anyway. Very Happy
Back to top
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Tutorials -> Auto Assembler tutorials All times are GMT - 6 Hours
Goto page Previous  1, 2, 3, 4, 5, 6  Next
Page 2 of 6

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites