View previous topic :: View next topic |
Author |
Message |
Splizes Grandmaster Cheater Supreme Reputation: 0
Joined: 21 Jun 2006 Posts: 1944 Location: Florida
|
Posted: Sun Aug 20, 2006 2:00 pm Post subject: AA Help Please |
|
|
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 |
|
|
linosal Grandmaster Cheater Reputation: 1
Joined: 27 Jun 2006 Posts: 821 Location: http://www.thedarkalliance.org
|
Posted: Sun Aug 20, 2006 2:11 pm Post subject: Re: AA Help Please |
|
|
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
_________________
|
|
Back to top |
|
|
Splizes Grandmaster Cheater Supreme Reputation: 0
Joined: 21 Jun 2006 Posts: 1944 Location: Florida
|
Posted: Sun Aug 20, 2006 2:31 pm Post subject: . |
|
|
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 |
|
|
Dark Byte Site Admin Reputation: 458
Joined: 09 May 2003 Posts: 25287 Location: The netherlands
|
Posted: Sun Aug 20, 2006 2:38 pm Post subject: |
|
|
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 |
|
|
Splizes Grandmaster Cheater Supreme Reputation: 0
Joined: 21 Jun 2006 Posts: 1944 Location: Florida
|
Posted: Sun Aug 20, 2006 2:43 pm Post subject: |
|
|
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 |
|
|
linosal Grandmaster Cheater Reputation: 1
Joined: 27 Jun 2006 Posts: 821 Location: http://www.thedarkalliance.org
|
Posted: Sun Aug 20, 2006 3:13 pm Post subject: |
|
|
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
_________________
|
|
Back to top |
|
|
Splizes Grandmaster Cheater Supreme Reputation: 0
Joined: 21 Jun 2006 Posts: 1944 Location: Florida
|
Posted: Sun Aug 20, 2006 3:21 pm Post subject: |
|
|
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 |
|
|
linosal Grandmaster Cheater Reputation: 1
Joined: 27 Jun 2006 Posts: 821 Location: http://www.thedarkalliance.org
|
Posted: Sun Aug 20, 2006 3:27 pm Post subject: |
|
|
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.
_________________
|
|
Back to top |
|
|
Splizes Grandmaster Cheater Supreme Reputation: 0
Joined: 21 Jun 2006 Posts: 1944 Location: Florida
|
Posted: Sun Aug 20, 2006 3:52 pm Post subject: ... |
|
|
ok that makes alot of since
now i understand it alot more...
|
|
Back to top |
|
|
4c00h Newbie cheater Reputation: 0
Joined: 04 Sep 2006 Posts: 23
|
Posted: Mon Sep 04, 2006 10:26 pm Post subject: ret |
|
|
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 |
|
|
|