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 


[solved] Auto Assemble: What is @@?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
aikoncwd
Grandmaster Cheater
Reputation: 23

Joined: 21 Dec 2012
Posts: 591
Location: Spain (Barcelona)

PostPosted: Tue Dec 30, 2014 4:39 am    Post subject: [solved] Auto Assemble: What is @@? Reply with quote

Hi

In some tables/scripts I see the label @@: but this ¿label? is not declared anywhere so I assume it's an internal events or something. What is @@: and when is indicated to use it?

In the example, there is @f, it's something related to @@?

Thanks (here is an example)

Code:
[ENABLE]
luacall(if enableWD then enableWD() end)

aobscan(splay_injcoin, 8B 82 74 0B 00 00 50 68 xx xx xx xx 6A 10 68)
aobscan(splay_injgrey, 39 BB 5C 0B 00 00 0F 8E A8 00 00 00 8B 4D 9C 8B)
aobscan(splay_injinvu, 8B 83 94 0B 00 00 85 C0 7E 07 48)
registersymbol(splay_injcoin)
registersymbol(splay_injgrey)
registersymbol(splay_injinvu)

alloc(splay_mem, $1000)

label(pPlayer)
label(pPlayer_watchdog)
label(player1invuln)
label(pPlayer2)
label(pPlayer2_watchdog)
label(player2invuln)
registersymbol(pPlayer)
registersymbol(player1invuln)
registersymbol(pPlayer2)
registersymbol(player2invuln)

label(codecoin)
label(retcoin)
label(codegrey)
label(retgrey)
label(codeinvu)
label(retinvu)

label(invuln)
label(vulner)


splay_mem:
pPlayer:
  dd 0
pPlayer_watchdog:
  dd 0
pPlayer2:
  dd 0
pPlayer2_watchdog:
  dd 0
player1invuln:
  dd 0
player2invuln:
  dd 0

codecoin:
  mov [pPlayer],edx
  mov [pPlayer_watchdog],01
  mov eax,[edx+B74]
  jmp retcoin

codegrey:
  cmp [pPlayer],ebx
  je @f
  mov [pPlayer2],ebx
  mov [pPlayer2_watchdog],01
@@:
  cmp [ebx+B5C],edi
  jmp retgrey

codeinvu:
  cmp [pPlayer],ebx
  jne @f
  cmp [player1invuln],00
  jne invuln
  jmp vulner
@@:
  cmp [pPlayer2],ebx
  jne vulner
  cmp [player2invuln],00
  jne invuln
vulner:
  mov eax,[ebx+B94]
  jmp retinvu
invuln:
  mov eax,04
  jmp retinvu



splay_injcoin:
  jmp codecoin
  nop
retcoin:

splay_injgrey:
  jmp codegrey
  nop
retgrey:

splay_injinvu:
  jmp codeinvu
  nop
retinvu:

[DISABLE]
luacall(if disableWD then disableWD() end)

splay_injcoin:
  mov eax,[edx+B74]

{
  isaac-ng.exe+1567E5 - D9 9D 34FFFFFF        - fstp dword ptr [ebp-000000CC]
  isaac-ng.exe+1567EB - D9 46 04              - fld dword ptr [esi+04]
  isaac-ng.exe+1567EE - D8 85 38FFFFFF        - fadd dword ptr [ebp-000000C8]
  isaac-ng.exe+1567F4 - D9 9D 38FFFFFF        - fstp dword ptr [ebp-000000C8]
->isaac-ng.exe+1567FA - 8B 82 740B0000        - mov eax,[edx+00000B74]
  isaac-ng.exe+156800 - 50                    - push eax
  isaac-ng.exe+156801 - 68 C8AA2A00           - push isaac-ng.exe+1CAAC8
  isaac-ng.exe+156806 - 6A 10                 - push 10
  isaac-ng.exe+156808 - 68 B01A3000           - push isaac-ng.exe+221AB0
}

splay_injgrey:
  cmp [ebx+B5C],edi

{
  isaac-ng.exe+154A1A - 41                    - inc ecx
  isaac-ng.exe+154A1B - 3B CA                 - cmp ecx,edx
  isaac-ng.exe+154A1D - 7C BF                 - jnge isaac-ng.exe+1549DE
  isaac-ng.exe+154A1F - 33 FF                 - xor edi,edi
->isaac-ng.exe+154A21 - 39 BB 5C0B0000        - cmp [ebx+00000B5C],edi
  isaac-ng.exe+154A27 - 0F8E A8000000         - jng isaac-ng.exe+154AD5
  isaac-ng.exe+154A2D - 8B 4D 9C              - mov ecx,[ebp-64]
  isaac-ng.exe+154A30 - 8B 55 B0              - mov edx,[ebp-50]
  isaac-ng.exe+154A33 - 03 C9                 - add ecx,ecx
}

splay_injinvu:
  mov eax,[ebx+B94]

{
  isaac-ng.exe+E5575 - D9 05 80033000        - fld dword ptr [isaac-ng.exe+220380]
  isaac-ng.exe+E557B - D9 9B 34040000        - fstp dword ptr [ebx+00000434]
  isaac-ng.exe+E5581 - 8B F3                 - mov esi,ebx
  isaac-ng.exe+E5583 - E8 B88A0000           - call isaac-ng.exe+EE040
->isaac-ng.exe+E5588 - 8B 83 940B0000        - mov eax,[ebx+00000B94]
  isaac-ng.exe+E558E - 85 C0                 - test eax,eax
  isaac-ng.exe+E5590 - 7E 07                 - jle isaac-ng.exe+E5599
  isaac-ng.exe+E5592 - 48                    - dec eax
  isaac-ng.exe+E5593 - 89 83 940B0000        - mov [ebx+00000B94],eax
}

unregistersymbol(splay_injcoin)
unregistersymbol(splay_injgrey)
unregistersymbol(splay_injinvu)

unregistersymbol(pPlayer)
unregistersymbol(player1invuln)
unregistersymbol(pPlayer2)
unregistersymbol(player2invuln)

dealloc(splay_mem)

_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE


Last edited by aikoncwd on Tue Dec 30, 2014 5:43 am; edited 1 time in total
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

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

PostPosted: Tue Dec 30, 2014 5:41 am    Post subject: Reply with quote

@f references the @@ in after it (forward) @b references the @@ before it (back)

i don't recommend the use of it as your code will look like crap

https://code.google.com/p/cheat-engine/source/browse/trunk/Cheat%20Engine/autoassembler.pas#521
describes it best

_________________
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
aikoncwd
Grandmaster Cheater
Reputation: 23

Joined: 21 Dec 2012
Posts: 591
Location: Spain (Barcelona)

PostPosted: Tue Dec 30, 2014 5:44 am    Post subject: Reply with quote

Dark Byte wrote:
@f references the @@ in after it (forward) @b references the @@ before it (back)

i don't recommend the use of it as your code will look like crap

https://code.google.com/p/cheat-engine/source/browse/trunk/Cheat%20Engine/autoassembler.pas#521
describes it best


Thanks, I will use regular labels to make cmp/jmp, the code will look more clean

Smile

_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE
Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

Joined: 07 Nov 2008
Posts: 4438
Location: W kraju nad Wisla. UTC+01:00

PostPosted: Thu Jan 01, 2015 6:59 am    Post subject: Reply with quote

It is not that bad if you want to skip just one or two lines. And, better use nice indentation. (well, indentation is good for all cases anyway)

Code:
  (...something...)
  (...something...)
  (...something...)
  jz short @f
    or r10,r11
  @@:
  (...something...)
  (...something...)
  (...something...)

_________________
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 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