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
Rajinn
I post too much
Reputation: 0

Joined: 02 Aug 2006
Posts: 3072

PostPosted: Mon Oct 16, 2006 1:36 am    Post subject: Reply with quote

RAKO wrote:
i meant what does the
Code:
add


oh and is there a way to make asm change the debug register?

no. there isnt Smile the debug register is controlled through the debugger. not the assembly Smile

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

Joined: 26 Jun 2006
Posts: 454

PostPosted: Mon Oct 16, 2006 1:46 am    Post subject: Reply with quote

ok thanks a lot
_________________
Dark Byte wrote:
Who knows, perhaps i'm a maple gm!!!!
Back to top
View user's profile Send private message
FaaF
Expert Cheater
Reputation: 0

Joined: 06 Mar 2006
Posts: 104

PostPosted: Mon Oct 16, 2006 5:56 am    Post subject: Reply with quote

Quote:
Code:
Code:
[ENABLE]
registersymbol(Godmode)
alloc(Godmode, 1024)


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

On the other hand, if the people scanner’s value is not equal to zero, it jumps to 6558ad (the SSEAX Y address), and puts the value of EAX as -99999, causing me to DC.

I am confused..
After jmp to 6558ad, how come the next line mov eax,[-99999] will be execute?
Back to top
View user's profile Send private message
ChaosUltima
Master Cheater
Reputation: 0

Joined: 12 Jul 2006
Posts: 319

PostPosted: Mon Oct 16, 2006 8:06 am    Post subject: Reply with quote

xD i started learning assembly not long ago...and im now trying to attempt modifying dupex (that superb one by linosal where you change dupex mode on CT.) His still requires memview, so im trying to write a script where theres no need to use it.

However, theres loads of difficulties, of course
can anyone tell me when i cant move something to eip or push or pop it?

heres a section of his code:
Code:

DX:
push eax
push ebx
push ecx
push edx
mov ebx,[DXType]
cmp ebx, 00 // 0 = Do Nothing
je NoDupe

cmp ebx, 01 // 1 = Populate ListOffset
je DXFindChar

i try adding
Code:
jmp 644165 //Dupex address for MSea
mov eip,DXType

inside after the mov ebx,[DXType]
does not work.
so it might be cuz i didnt freeze it
Code:
jmp 644165 //Dupex address for MSea
push eip
mov eip,DXType
pop eip

does not work. i tried with eax (for sake of trying), and i can do the instruction. anyone know why? (sorry if this sounds noob, but im working on AA =(
Back to top
View user's profile Send private message
Deine Mutter
Expert Cheater
Reputation: 1

Joined: 05 Apr 2006
Posts: 181

PostPosted: Mon Oct 16, 2006 8:18 am    Post subject: Reply with quote

Shouldnt this code d/cs me?

Code:
[ENABLE]
registersymbol(dcme)
alloc(dcme, 1024)


dcme:
jmp 6558ad
mov eax, [-99999]
 
[DISABLE]
unregistersymbol(dcme)
dealloc(dcme)


I just ask, because it doesnt :/

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

Joined: 26 Jul 2006
Posts: 290

PostPosted: Mon Oct 16, 2006 8:59 am    Post subject: Reply with quote

FaaF wrote:
Quote:
Code:
Code:
[ENABLE]
registersymbol(Godmode)
alloc(Godmode, 1024)


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

On the other hand, if the people scanner’s value is not equal to zero, it jumps to 6558ad (the SSEAX Y address), and puts the value of EAX as -99999, causing me to DC.

I am confused..
After jmp to 6558ad, how come the next line mov eax,[-99999] will be execute?



is there a way to make it just turn off without making you d/c? because once the people pointer thingy turns to one it activates sseax and puts in -99999

Code:

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

Godmode:
mov edi, [729148]
cmp [edi+18], 00
je 614ff7
jmp 5f3bd5
 
 
[DISABLE]
unregistersymbol(Godmode)
dealloc(Godmode)


is it possible to do it like that?
the jmp 5f3bd5
is below the godmode address so if the people pointer goes up it just jumps to the address below godmode. Question
Back to top
View user's profile Send private message AIM Address
bahblah
Grandmaster Cheater
Reputation: 0

Joined: 27 Sep 2005
Posts: 633

PostPosted: Mon Oct 16, 2006 3:14 pm    Post subject: Reply with quote

RAKO wrote:
great tut i just have 1 question what does add do?
e.g.
DXListOffset:
add [eax],al
add [eax],al


The bytes for add [eax], al is two 00's.
Two add [eax], al = 00 00 00 00.
If you look at it as a dword it's = 00000000

So it sets DXListOffset to 0.

I personally use dd/b/w value for variables.
dd = dword
db = byte
dw = word

For example:

DXListOffset:
dd 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: Mon Oct 16, 2006 3:58 pm    Post subject: Reply with quote

bahblah wrote:
Hmm I think your stack explanation sucks but other than that.


I know it does. Rajinn explained it a little more blandly (and wisely, I guess)

"a variable needs to be on the stack to be used"

And clanner, your script will work.

_________________


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

Joined: 26 Jul 2006
Posts: 290

PostPosted: Mon Oct 16, 2006 10:04 pm    Post subject: ok Reply with quote

ok and can you show me how to work it? Very Happy
when i insert the script it give me a value thingymajigy. godmode:#######
what do i do with that?
Back to top
View user's profile Send private message AIM Address
mr pink
Advanced Cheater
Reputation: 0

Joined: 13 Sep 2006
Posts: 77

PostPosted: Sun Oct 22, 2006 4:36 pm    Post subject: Reply with quote

since i dont have the current people scanner i used CSeax Y

Code:
Code:
[ENABLE]
registersymbol(gm)
alloc(gm, 1024)


gm:
mov edi, [75b51c]
cmp [edi+E60], 00
je 629d10
jmp 65c655
mov eax, [50]
 
[DISABLE]
unregistersymbol(gm)
dealloc(gm)


so shouldnt this make the (client side) Y screen go to 50 when the attack is greater then 0? if not then what am i doing wrong? i tried it and nothing happened Crying or Very sad
Back to top
View user's profile Send private message
me
Grandmaster Cheater
Reputation: 2

Joined: 24 Jun 2004
Posts: 733
Location: location location

PostPosted: Mon Oct 23, 2006 2:08 am    Post subject: Reply with quote

FaaF wrote:
Quote:
Code:
Code:
[ENABLE]
registersymbol(Godmode)
alloc(Godmode, 1024)


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

On the other hand, if the people scanner’s value is not equal to zero, it jumps to 6558ad (the SSEAX Y address), and puts the value of EAX as -99999, causing me to DC.

I am confused..
After jmp to 6558ad, how come the next line mov eax,[-99999] will be execute?


the script is read as a whole and loaded into memory,
the game just follows the instructions from there and steps through it like you would expect,
I can understand how the script can be a bit confusing if your thinking of how code is usually stepped through, catches me out now and then,

anyway think of it in terms of a compiler, everything is looked at as a whole unit when your compiling a program, all the parts are put in place with all the includes ect and turned into code and data,

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

Joined: 15 Oct 2006
Posts: 454
Location: United States

PostPosted: Tue Oct 24, 2006 7:31 am    Post subject: Reply with quote

Very very nice tutorial - it explained a LOT of questions I had on Assembly. Yeah the Google tuts suck - this is much better Wink
_________________



hacker4maple wrote:
...hold on is GM ppl or program?
Back to top
View user's profile Send private message
nako
Master Cheater
Reputation: 0

Joined: 30 Jun 2006
Posts: 490
Location: Michigan

PostPosted: Sun Oct 29, 2006 3:03 pm    Post subject: Reply with quote

I wanna know if I can figure out what's wrong with the code and If I'm doing well at all.

Code:

alloc(Compare, 11)
alloc(Jumpin, 11)
alloc(BunnyBreed,1024)
label(Compare)
label(Jumpin)
label(BunnyBreed)

Compare:
push eax
Mov eax,Brownbunny
cmp eax,[bunny]
pop eax
jne [Jumpin]
je [BunnyBreed]

Jumpin:
push ecx
mov ecx,[bunny]
mov ecx,[gun]
pop ecx
xor ecx,ecx

BunnyBreed:
push eax
Mov eax,[bunnyMale]
Mov eax,[bunnyFemale]
pop eax
inc eax
inc eax
inc eax


Tell me if I missed anything please, I'd like to know what else I missed, or if I got anything wrong.

_________________


  • TheSorc3r3r
  • trogdor0071
  • Uligor
  • Idogears
  • appalsap
  • Noodles
Back to top
View user's profile Send private message AIM Address
rengood
How do I cheat?
Reputation: 0

Joined: 10 Oct 2006
Posts: 8

PostPosted: Mon Oct 30, 2006 10:27 pm    Post subject: Reply with quote

me wrote:
FaaF wrote:
Quote:
Code:
Code:
[ENABLE]
registersymbol(Godmode)
alloc(Godmode, 1024)


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

On the other hand, if the people scanner’s value is not equal to zero, it jumps to 6558ad (the SSEAX Y address), and puts the value of EAX as -99999, causing me to DC.

I am confused..
After jmp to 6558ad, how come the next line mov eax,[-99999] will be execute?




I think the assembly 'mov eax,[-99999]' under 'jmp 6558ad' won't work for ever either.
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 12:34 am    Post subject: Reply with quote

in SSEAX Y, you're changing the EAX value to change where you end up on the map. and since its server sided, then when you go way offmap, you're getting DC'd

if you do:

Code:
jmp (sseax Y address)


then now the next command is going to affect that address.
you then have the ling
Code:
mov eax,[-999999]

meaning move -999999 into the value of EAX in the address that you specified after the jump

so now you've hcanged your Y in sseax Y to the point of being so off of the map that you're just going to DC.

i believe thats why that line is there Razz (to place you in a spot thatll DC you)


now heres my question:

looking at the old vac code
Code:
alloc(FindCharacterAddress, 1024)
alloc(ListOffset, 4)
alloc(ESIList, 1024)
alloc(DupeXVac, 1024)
alloc(EDIValue, 4)
label(EndSearch)
label(CompareOffset)
label(StoreESI)
label(DoNormal)
FindCharacterAddress:
mov [esi+114],edi
push eax
push ebx
push ecx
push edx
mov eax,0
mov ebx,ListOffset
mov ecx,ESIList
mov edx,EDIValue
CompareOffset:
cmp eax,[ebx]
je StoreESI
cmp esi,[ecx+eax*4]
je EndSearch
inc eax
jmp CompareOffset
StoreESI:
mov [ecx+eax*4],esi
inc eax
mov [ebx],eax
mov [edx],edi
EndSearch:
pop edx
pop ecx
pop ebx
pop eax
jmp 6584E7

DupeXVac:
push eax
push ebx
push ecx
mov ebx,[ListOffset]
dec ebx
mov ecx,ESIList
mov eax,[ecx+ebx*4]
cmp esi,eax
je DoNormal
mov edi,[EDIValue]
DoNormal:
mov [esi+114],edi
pop eax
pop ebx
pop ecx
jmp 6584E7


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.
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 3 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