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 


[Tutorial] Beginning Assembly Language
Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Tutorials
View previous topic :: View next topic  
Author Message
rengood
How do I cheat?
Reputation: 0

Joined: 10 Oct 2006
Posts: 8

PostPosted: Tue Oct 31, 2006 1:42 am    Post subject: Reply with quote

Quote:

Godmode is registered as a symbol; it can be added manually as an address. Add Godmode as an address manually. That address now has the instructions of your script in it. Then take the address of Godmode, which you just added, and put it into the EIP of 614a0c, the godmode address. This re-directs your godmode address to your Godmode script, activating the script.


SO:
Code:

[ENABLE]
registersymbol(Godmode)
alloc(Godmode, 1024)

//////***********I changed the code here*************
mov Godmode,00300111

Godmode:
mov edi, [755a4c]
cmp [edi+18], 00
je 614ff7
jmp 6558ad
mov eax, [-99999]
 
[DISABLE]
unregistersymbol(Godmode)
dealloc(Godmode)


Is that right? Give GodMode an address. I am just wonder what or which address is valid or proper for my use to give GodMode an address manually.
Back to top
View user's profile Send private message
mr pink
Advanced Cheater
Reputation: 0

Joined: 13 Sep 2006
Posts: 77

PostPosted: Tue Oct 31, 2006 3:07 pm    Post subject: Reply with quote

qq1qq1 wrote:
Quote:

Godmode is registered as a symbol; it can be added manually as an address. Add Godmode as an address manually. That address now has the instructions of your script in it. Then take the address of Godmode, which you just added, and put it into the EIP of 614a0c, the godmode address. This re-directs your godmode address to your Godmode script, activating the script.


SO:
Code:

[ENABLE]
registersymbol(Godmode)
alloc(Godmode, 1024)

//////***********I changed the code here*************
mov Godmode,00300111

Godmode:
mov edi, [755a4c]
cmp [edi+18], 00
je 614ff7
jmp 6558ad
mov eax, [-99999]
 
[DISABLE]
unregistersymbol(Godmode)
dealloc(Godmode)


Is that right? Give GodMode an address. I am just wonder what or which address is valid or proper for my use to give GodMode an address manually.


what are you trying to do? and why is the line "mov Godmode,00300111" there?
what you are supposed to do is add a new address manuelly on the cheat table. when it asks for an address you input "Godmode"
but you will need to edit the script and change the address' if you wish to try this for which ever version of maple you play.

Uzeil wrote:
well right here
Code:
mov ebx,ListOffset
mov ecx,ESIList
mov edx,EDIValue


what exactly is happening right there. i know its moving listoffset into ebx, esilist into ecx, and edivalue into edx

but it then compares eax (which has become 0) to the value of ebx, which is listoffset

well how is it that it knows the value of listoffset? im guessing its something abtou the definition of listoffset that is the reason i dont know it.


for question on the dupex script you should go here
http://forum.cheatengine.org/viewtopic.php?t=24388&postdays=0&postorder=asc&start=0
Back to top
View user's profile Send private message
TheSorc3r3r
I post too much
Reputation: 0

Joined: 06 Sep 2006
Posts: 2404

PostPosted: Tue Oct 31, 2006 3:16 pm    Post subject: Reply with quote

For DupeX, you need to have deeper understanding of code... try easier scripts first Wink
_________________


Don't laugh, I'm still learning photoshop!
Back to top
View user's profile Send private message
Uzeil
Moderator
Reputation: 6

Joined: 21 Oct 2006
Posts: 2411

PostPosted: Tue Oct 31, 2006 5:13 pm    Post subject: Reply with quote

thanks for the site :thumbsup:

and i have read through your tut but there are just things that seem uncoverred

for instance: alloc(Godmode, 1024)

how is it that yo uget the number 1024. iunderstand that thats the amount of memory to assign to it, but how is it that you know the number?

and for me, i dont feel like i need to know the basics before i can learn those type of things Razz the way i learn isnt a building method like that

its just when i see how somethings works, i usually well... understand how it works Razz so here im just asking for the knowledge of how it works so i can understand.. how it works 0.0

off to look at that site, be back in a bit 0.0

edit:

ok the site didnt really help me much. What it did was just tell me mroe and more about how i need to know the actual programming of maplestory (or maybe just the use of ESI and such, with a less broad explanation like the one in this tut) so that i can understand how each one gets the EAX

and here's a question:

(this is all with GMS .30 addys/pointers/offsets)
Code:

Restart:
mov edi,[75B4D8] ;mouse
jmp 0065C655 ;<-cseax Y addy
mov eax,[edi+98] ;mouse with Y offset
jmp 0065C5F0 ;<-cseax X addy
mov eax,[edi+94] ;mouse with X offset
jmp Restart ;to loop it


why wouldnt that work as a simple client sided mousevac? i mean, it would suck you in too (haha), but what would make that not work? (other than the absence of alloc and label (if needed) and even a codecave if thats needed as well o_O

and when i tell it to move the value of the mouse X or Y, is that value not in hex? (considerring we have to put the CSEAX values into the EAX as hex....

_________________


Mini Engine v3.0
Mipla v1.0

Reposted old threads out of the MS section.
Back to top
View user's profile Send private message
rengood
How do I cheat?
Reputation: 0

Joined: 10 Oct 2006
Posts: 8

PostPosted: Wed Nov 01, 2006 9:04 am    Post subject: Reply with quote

mr pink wrote:

what are you trying to do? and why is the line "mov Godmode,00300111" there?
what you are supposed to do is add a new address manuelly on the cheat table. when it asks for an address you input "Godmode"
but you will need to edit the script and change the address' if you wish to try this for which ever version of maple you play.

Uzeil wrote:
well right here
Code:
mov ebx,ListOffset
mov ecx,ESIList
mov edx,EDIValue


what exactly is happening right there. i know its moving listoffset into ebx, esilist into ecx, and edivalue into edx

but it then compares eax (which has become 0) to the value of ebx, which is listoffset

well how is it that it knows the value of listoffset? im guessing its something abtou the definition of listoffset that is the reason i dont know it.


for question on the dupex script you should go here
http://forum.cheatengine.org/viewtopic.php?t=24388&postdays=0&postorder=asc&start=0


Thanks for your answer. I have realized the meaning of "add the address manul". I still have some questions about assembly language.

Here is a link about codecave tutrorial:
http://forum.cheatengine.org/viewtopic.php?t=33199&highlight=codecave

Anyone can tell me what these codes mean:
Code:

alloc(CodeCave, 11)
alloc(FJump, 8) //<-- No Space Take It Out
CodeCave:
fmul qword ptr [FJump]
jmp 00659D07


Code:

CodeCave:
fmul qword ptr [FJump]


Thanks. Very Happy
Back to top
View user's profile Send private message
mr pink
Advanced Cheater
Reputation: 0

Joined: 13 Sep 2006
Posts: 77

PostPosted: Sun Nov 05, 2006 9:10 pm    Post subject: Reply with quote

TheSorc3r3r wrote:
For DupeX, you need to have deeper understanding of code... try easier scripts first Wink


where would one find these so called "easier scripts"?

Uzeil wrote:
how is it that yo uget the number 1024. iunderstand that thats the amount of memory to assign to it, but how is it that you know the number?


ive been wondering that to Confused

qq1qq1 wrote:
Anyone can tell me what these codes mean:
Code:
CodeCave:
fmul qword ptr [FJump]


from that part of the code all i know is that qword is the 64-bit representation, dword 32-bit representation, word 16-bit representation, and Byte 8-bit representation.

(looked at the scientific calculator help screen Embarassed )
Back to top
View user's profile Send private message
TheSorc3r3r
I post too much
Reputation: 0

Joined: 06 Sep 2006
Posts: 2404

PostPosted: Tue Nov 07, 2006 10:21 pm    Post subject: Reply with quote

There's actually a formula to calculate how much you should allocate. Rajinn posted it once, and I forgot it Smile .

The default is 1024.. just guess. If it requires a medium amount of memory, 128. If it requires a larger amount, 1024. If it requires a small, 4. Or, if Rajinn wants to post the formula here..

_________________


Don't laugh, I'm still learning photoshop!
Back to top
View user's profile Send private message
euroboi33
Newbie cheater
Reputation: 0

Joined: 19 Oct 2006
Posts: 16

PostPosted: Thu Nov 09, 2006 4:36 pm    Post subject: Reply with quote

Hi,
Ok, first of all, I would like to appoligize for all the leeching that I. Motivated by Exidis, I have decided to learn Assembling myself. After reading your tut, I got an idea of what this is about. I just have one question, I would like to make a script for CSEAX. First of all, would my char value have to be converted into HEX first? Secondly, do you know if theres any pointer for channel, I want to make it so that when person scanner != 0;, it autamaticly CC's for me and turns CSEAX on again.
Please help me, if not, I wont spam , I just need some beginners help Very Happy.
Back to top
View user's profile Send private message
Drkgodz
Flash moderator
Reputation: 2

Joined: 17 Jul 2006
Posts: 2997
Location: Houston

PostPosted: Thu Nov 09, 2006 6:49 pm    Post subject: Reply with quote

euroboi33 wrote:
Hi,
Ok, first of all, I would like to appoligize for all the leeching that I. Motivated by Exidis, I have decided to learn Assembling myself. After reading your tut, I got an idea of what this is about. I just have one question, I would like to make a script for CSEAX. First of all, would my char value have to be converted into HEX first? Secondly, do you know if theres any pointer for channel, I want to make it so that when person scanner != 0;, it autamaticly CC's for me and turns CSEAX on again.
Please help me, if not, I wont spam , I just need some beginners help Very Happy.

The only address pointer out won't change channels for you if value changed....

_________________
Back to top
View user's profile Send private message
Uzeil
Moderator
Reputation: 6

Joined: 21 Oct 2006
Posts: 2411

PostPosted: Thu Nov 09, 2006 7:24 pm    Post subject: Reply with quote

ok i notice that my crappy muosevac idea wouldnt work whatsoever haha

and now i figure out the only way i could make it work (to my knowledge) would be if i found a way to make it work like a dupe vac that followed the movement of my mouse. but i dont know how i would be able to make the mouse be picked up as the last thing that has moved so everything would move along with it... o_O (i know its not included currently so..)

however... i have another question

a lot more reasonable, truust me Razz (and thanks for the info on allocation)

Code:
[ENABLE]
RegisterSymbol(Godmode)
Alloc(Godmode, 1024)

Godmode:
jmp 65EF48
mov eax, 00
jmp 65EFAD
mov eax, 25
jmp 62c668

[DISABLE]
unregistersymbol(godmode)
Dealloc(Godmode)


why cant i get that to work?

Code:
jmp 65EF48
mov eax, 00

me trying to make it change cseax x to 0 (i also tried changing mov eax, 00 to mov eax, [00] ...didnt work either, but that time it crashed when i had the [ ].

Code:
jmp 65EFAD
mov eax, 25

same with sseax y, but changing it to 25

Code:
jmp 62c668

having it jump to the address specified as 'jne' in the godmode address, to do the same thing as ticking ZF (but i mustve messed up, because even that part of the code wouldnt work)

so i assigned to cheat table, had to freeze it to add 'Godmode' as a manual address, changed the EIP of the godmode address (62BEDD) to the address of this manual address, and voila. didn't work

without the [00] and [25], it didnt crash, but the cseax didnt change, and godmode didnt even work.

with the [ ] around them, then it just straight up crashed. with error 5(access denied) as the pop up from maplestory.exe

so whats wrong with this script? :-/


-=EDIT=-

found uot why it doesnt work. thanks

_________________


Mini Engine v3.0
Mipla v1.0

Reposted old threads out of the MS section.
Back to top
View user's profile Send private message
Macka
Cheater
Reputation: 0

Joined: 08 Oct 2006
Posts: 26

PostPosted: Sat Nov 11, 2006 11:46 pm    Post subject: ASM and Code Injection Reply with quote

Hi,
Im trying to write a script that will enable me to use 1 Debug register for Both Tubi and Godmode, for now ill just call it "Goubi".

i want to be able to inject my script, like with DupeX and have two variables which i can change to turn Godmode and Tubi on and off.
so i have

Goubi (EIP ???) : Address (UNKNOWN) : Type (4 bytes) : Value (??)
Tubi Value 0 (off) Value 1 (on) : Address (Tubi) : Type (4 bytes) : Value (0)
Godmode Value 0 (off) Value1 (on) : Address (Godmode) : Type (4 bytes) : Value (0)

So, I inject the code and activate it like you do with DupeX by changing the Goubi EIP register. You then set the Tubi and Godmode values to 1 for on or 0 for off (just like when you set the Vac value (part of DupeX) to 0). The Goubi script detects the values and acts accordingly.

This is the script I have come up with. it is my first attempt at ASM and think it should be a simple enough script to start with.. here is what I have so far...

Code:

[ENABLE]
registersymbol(Goubi)
registersymbol(Tubi)
registersymbol(Godmode)
alloc(Goubi, 1024)
alloc(Tubi, 1)
alloc(Godmode, 1)

Goubi:
cmp [Tubi],00
je 00488210
jne 00488247
cmp [Godmode],00
je 0062BEE3
jne 0062C668

[DISABLE]
dealloc(Goubi)
dealloc(Tubi)
dealloc(Godmode)
unregistersymbol(Godmode)
unregistersymbol(Tubi)
unregistersymbol(Goubi)


Am I going about this the right way? Do you have any suggestions?

Thankyou in advance,
Macka
Back to top
View user's profile Send private message
Vrunk
Grandmaster Cheater
Reputation: 0

Joined: 28 May 2006
Posts: 514

PostPosted: Tue Nov 14, 2006 11:29 pm    Post subject: Reply with quote

Bump for great justice. Great tutorial, explains a lot.
Back to top
View user's profile Send private message
iamhacks
Cheater
Reputation: 0

Joined: 02 Nov 2006
Posts: 48
Location: Home Sweet Home

PostPosted: Wed Nov 15, 2006 9:19 am    Post subject: Reply with quote

I tried something simple to do..Below is the script.


[ENABLE]
registersymbol(simple)
Alloc(simple, 1024)

simple:
mov eax, [735eb4] <--I put 735eb4 which is the wall pointer Msea for 0.35 into eax
cmp [eax+4], -279 <--I compare eax+4 (4 which is the offset for the left wall) with -279(-279 which is the value of the left wall of the map I am at)
jne 006014cf <--If not equal it jumps to the address beside Godmode and tick ZF

[DISABLE]
unregistersymbol(simple)
Dealloc(simple)

Is the whole script valid?

If I wanted to make it jump to something even if it is equal, what should I make it jump to? Is there any thing that will do nothing if it jumps there?
Say for example:
[ENABLE]
registersymbol(simple)
Alloc(simple, 1024)

simple:
mov eax, [735eb4]
cmp [eax+4], -279
jne 006014cf
je DoNothing<--Something like that?Is there a address named DoNothing? I guess not.So what should I replace it with?

[DISABLE]
unregistersymbol(simple)
Dealloc(simple)

I tried using label and not registersymbol but it didn't work.It said that not all instructions could be carried out.(or something like that)
Below was the script:


Alloc(simple, 1024)
Label(simple)

simple:
mov eax,735eb4
cmp [eax+4],00
jne 006014cf


Dealloc(simple)

Where did it go wrong?

If i were to add push and pop,will the script for the registersymbol look like this?

[ENABLE]
registersymbol(simple)
Alloc(simple, 1024)

simple:
push eax
mov eax, [735eb4]
pop eax
cmp [eax+4], -279
jne 006014cf

[DISABLE]
unregistersymbol(simple)
Dealloc(simple)

Thx for reading my questions,best if you could answer it too.
I apologize for the clarity of my post.
Back to top
View user's profile Send private message
Vrunk
Grandmaster Cheater
Reputation: 0

Joined: 28 May 2006
Posts: 514

PostPosted: Wed Nov 15, 2006 11:50 am    Post subject: Reply with quote

iamhacks wrote:
I tried something simple to do..Below is the script.

[ENABLE]
registersymbol(simple) // switch these two lines, you need to allocate memory first.
Alloc(simple, 1024) // switch these two lines, you need to allocate memory first.

simple:
mov eax, [735eb4] <--good
cmp [eax+4], -279 <--bad. first of all, I don't think you can compare something to a negative number. second of all, you need to convert it to hex. 279 in HEX is 117. third of all, you didn't move [eax+4] into eax before this line. cmp [eax+4], -279 is wrong in many ways.
jne 006014cf <--good I guess? but it doesn't tick ZF, it just skips over the godmode line (I think)?
???????????????????? <---what happens if left wall is equal to -279? Your script crashes maple because it doesn't tell it what to do next. Try a jmp.[color=red]<--good I guess? but it doesn't tick ZF, it just skips over the godmode line (I think)?

[DISABLE]
unregistersymbol(simple)
Dealloc(simple)



Try something like this:
Code:

[ENABLE]
Alloc(simple, 64) // 64 is plenty for such a small script
registersymbol(simple)


simple:
mov eax, [735eb4] //moves the value of left wall address into eax
mov eax, [eax+4] //moves the value of eax plus the offset into eax
cmp eax, 117
jne ?????????
jmp ?????????

[DISABLE]
unregistersymbol(simple)
Dealloc(simple)


I'm not sure how to accomodate for negative numbers =\


Last edited by Vrunk on Wed Nov 15, 2006 5:36 pm; edited 1 time in total
Back to top
View user's profile Send private message
The Dami3n
Master Cheater
Reputation: 1

Joined: 15 Nov 2006
Posts: 441
Location: Mulkerolandia

PostPosted: Wed Nov 15, 2006 1:07 pm    Post subject: Reply with quote

What should i do when i want my code to d/c, crash ems When someone is close me (people scanner rises by 1 or more)
There is something which i wrote, hmm well there is answer

Code:

registersymbol(people)
alloc(people, 1024)
alloc(kill, 4)

people:
mov edi, [6DD958]
cmp [edi+18], 00
je 5D06EB
jg kill

kill:
mov [5D0432],0//just some random address to make your maple crash

_________________


Last edited by The Dami3n on Wed Mar 07, 2007 10:52 am; edited 1 time in total
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
Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next
Page 4 of 7

 
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