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 


AA Help Please

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Tutorials
View previous topic :: View next topic  
Author Message
Splizes
Grandmaster Cheater Supreme
Reputation: 0

Joined: 21 Jun 2006
Posts: 1944
Location: Florida

PostPosted: Sun Aug 20, 2006 2:00 pm    Post subject: AA Help Please Reply with quote

I am interested in learning AA knowlege basicaly i dont know much but.

mov monkey,ebx

would move the monkey into the ebx part

jmp monkey

would jump to monkey or set a address to jump to monkey

label monkey (combined with more code)

would print the results with the name monkey when press compile.

i would like to know what these are.
push eax
pop eax
alloc (monkey, 2048)
mov eax,[anything such as ESI+114]
inc eax
dex eax
je StoreESI
jne DXMonster
Back to top
View user's profile Send private message
linosal
Grandmaster Cheater
Reputation: 1

Joined: 27 Jun 2006
Posts: 821
Location: http://www.thedarkalliance.org

PostPosted: Sun Aug 20, 2006 2:11 pm    Post subject: Re: AA Help Please Reply with quote

ShadowSan wrote:
I am interested in learning AA knowlege basicaly i dont know much but.

mov monkey,ebx

would move the monkey into the ebx part

jmp monkey

would jump to monkey or set a address to jump to monkey

label monkey (combined with more code)

would print the results with the name monkey when press compile.

i would like to know what these are.


Here is an awesome guide I found on assembler: http://www.cs.virginia.edu/cs216/guides/x86.html

For these:

push eax Push EAX onto the system stack
pop eax Pop EAX from the system stack
alloc (monkey, 2048) Allocate 2048bytes of memory(2k) to variable MONKEY

mov eax,[anything such as ESI+114] - basically copies memory from [] to EAX
inc eax EAX+1
dex eax EAX-1

je StoreESI Jump if Equal, requires a compare beforehand (ie cmp eax, 0)

jne DXMonster Jump to DXMonster if NOT Equal

_________________
http://www.thedarkalliance.org
Thank you for visiting!
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Splizes
Grandmaster Cheater Supreme
Reputation: 0

Joined: 21 Jun 2006
Posts: 1944
Location: Florida

PostPosted: Sun Aug 20, 2006 2:31 pm    Post subject: . Reply with quote

from reading that tut i got some things so far

inc eax would increase eax by 1
dec eax would drecrease by 1
pop eax would decrease it by 4
push eax would increase it by 4
cmp Monkey,10 would compare monkey to 10?
call <-- i dont uderstnad this one at all
alloc (monkey,4) would create a 4 bye storage cell in "monkey"

i dotn get how this would go into any script though...


edit: the more i think about it using this part of dupeX for maplestory i kind of understand how it works

alloc(DXFindChar, 1024)

DXFindChar:
mov [esi+114],edi
push eax
push ebx
push ecx
push edx
mov eax,0
mov ebx,DXListOffset
mov ecx,ESIList
mov edx,EDIValue


so what i think about this is it allocates some memory for DXFindChar (1kb). then it moves edi into esi+114 (i dont understnad this part i dont really understand what esi is). then it put increments up 4 time for EAX,EBX,ECX,EDX. then it moves 0 into eax(why move 0 into eax wouldnt it stay the same?... unless it its offset where its automaticaly settings it at 0). tgeb it moves DXListOffSet into EBX ESIList into ECX and EDIValue into EDX.


Last edited by Splizes on Sun Aug 20, 2006 2:40 pm; edited 1 time in total
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 385

Joined: 09 May 2003
Posts: 23247
Location: The netherlands

PostPosted: Sun Aug 20, 2006 2:38 pm    Post subject: Reply with quote

i'll try to explain call
You must first understand jmp
jmp will change the instruction pointer (the instruction that is currently being executed, aka EIP register) to the address it specifies.

call does exactly the same and one more thing. It decreases the ESP register with 4 and saves the instruction pointer of the instruction after the call on the address pointed to by the ESP register.

Now, if you'd like to understand the usefullness of this you'd have to know the ret instruction. RET reads the value stored at the address ESP points at , changes the instruction pointer (EIP) to that value, and then increases ESP with 4. Which actually makes it return at the instruction after the call.

about making a script and stuff I can't help you. Thats all up to yourself and what you intend to do.

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Splizes
Grandmaster Cheater Supreme
Reputation: 0

Joined: 21 Jun 2006
Posts: 1944
Location: Florida

PostPosted: Sun Aug 20, 2006 2:43 pm    Post subject: Reply with quote

umm first of all OMG DarkByte replies to me O.O happyness. Ret is kind of confusing me but your explanation helps me alot however, basicaly your saying this way you can change the eip register or just where it points?
Back to top
View user's profile Send private message
linosal
Grandmaster Cheater
Reputation: 1

Joined: 27 Jun 2006
Posts: 821
Location: http://www.thedarkalliance.org

PostPosted: Sun Aug 20, 2006 3:13 pm    Post subject: Reply with quote

ShadowSan wrote:
umm first of all OMG DarkByte replies to me O.O happyness. Ret is kind of confusing me but your explanation helps me alot however, basicaly your saying this way you can change the eip register or just where it points?


The RET returns back to where you were at the CALL, and continues running.

Think of it this way

MAINPROG:
Do this
Do that
Call Fred -> Do this, Do this too, Return with what fred just told me
Compare fredsreturn, ethel


Hope that helps.. kind of silly but I hope the point is made.

Call helps in that you can have a procedure that does something specific, and instead of repeating it several times in your asm, you can CALL it from the parts of code that need that instruction set.

So instead of 10x fred's in the code you have 1 with the call's to it.

Long explination, hope that helps...


Also PUSH/POP don't add/subtract 4... think of the stack in terms of a stack of CD's or something.. You push a value onto the "Stack" and your placing the current CD for a value on TOP of the stack.

And Pop works the opposite way.

So if you do this

push eax
pop ebx

it is basically doing mov ebx, eax

_________________
http://www.thedarkalliance.org
Thank you for visiting!
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Splizes
Grandmaster Cheater Supreme
Reputation: 0

Joined: 21 Jun 2006
Posts: 1944
Location: Florida

PostPosted: Sun Aug 20, 2006 3:21 pm    Post subject: Reply with quote

umm ur call explanation was....... well....... odd so basicaly it is

fred says "blah i hate u, u sunuvabtch" to the call
the call brings it back to you and says fred says "blah i hate u, u sunuvabtch"

so it returns the results of what fred did?

and compare would compare fredsresults to what you want or a part of what he did?

still push and pop dont make sense im sorry.
Back to top
View user's profile Send private message
linosal
Grandmaster Cheater
Reputation: 1

Joined: 27 Jun 2006
Posts: 821
Location: http://www.thedarkalliance.org

PostPosted: Sun Aug 20, 2006 3:27 pm    Post subject: Reply with quote

ShadowSan wrote:
umm ur call explanation was....... well....... odd so basicaly it is

fred says "blah i hate u, u sunuvabtch" to the call
the call brings it back to you and says fred says "blah i hate u, u sunuvabtch"

so it returns the results of what fred did?

and compare would compare fredsresults to what you want or a part of what he did?

still push and pop dont make sense im sorry.


Hehe it's ok.. was an odd example ..

say i got this..

EAX = 1
EBX = 2
ECX = 3


at initialization the stack is empty.

we do this:
PUSH EBX

the stack now looks like this :
2

then we
PUSH EAX
PUSH ECX

Now the stack is 3 levels deep and looks like this :

2
1
3

---------------------------
Now We want to reverse the order, so ECX = 1, EBX still =2 , EAX =3

POP EAX (puts 3 since it was the last thing pushed onto the stack)
POP ECX (puts 1 into ECX since it's the next thing on the stack)
POP EBX (Puts 2 back into EBX as its the next on the stack)


Hope that helps more.

_________________
http://www.thedarkalliance.org
Thank you for visiting!
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Splizes
Grandmaster Cheater Supreme
Reputation: 0

Joined: 21 Jun 2006
Posts: 1944
Location: Florida

PostPosted: Sun Aug 20, 2006 3:52 pm    Post subject: ... Reply with quote

ok that makes alot of since
now i understand it alot more...
Back to top
View user's profile Send private message
4c00h
Newbie cheater
Reputation: 0

Joined: 04 Sep 2006
Posts: 23

PostPosted: Mon Sep 04, 2006 10:26 pm    Post subject: ret Reply with quote

Think of ret as

cd..
in command prompt

Just go back up a level.

You need something, you call it to use it. When you're done with it, you put it away and return to the main program.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Tutorials All times are GMT - 6 Hours
Page 1 of 1

 
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