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 


How to use ptr'ed addr from addr list in assembly aob script

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Alastair0
How do I cheat?
Reputation: 0

Joined: 28 Jun 2023
Posts: 3

PostPosted: Wed Jun 28, 2023 8:21 am    Post subject: How to use ptr'ed addr from addr list in assembly aob script Reply with quote

This is what I've managed to put together so far, Aob script:

Code:

[ENABLE]

aobscanmodule(INJECT,ProjectCoop-Win64-Shipping.exe,80 7C 24 48 00 0F B6 4F 79) // should be unique
alloc(newmem,$1000,INJECT)
alloc(medkitptr, 8)
registerSymbol(medkitptr)

label(code)
label(return)

newmem:

code:

  push rax
  push rcx

  lea rax, [rcx+r14]
  lea rcx, [medkitptr] //should be mov rcx, 1347CB06B54
  cmp rax, rcx
  je ADDRMATCH

CONTCODE:
  pop rcx
  pop rax

  mov [rcx+r14],al
  add rsp,28

  jmp return

ADDRMATCH:
  mov al, 1
  jmp CONTCODE

INJECT:
  jmp newmem

return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 80 7C 24 48 00 0F B6 4F 79

unregistersymbol(INJECT)
dealloc(newmem)


value from the address list:

active = 0 description = medkitptr address = P -> 1347CB06B54 type = 4bytes value = 0

What I am trying to do is use the address pointed to by the pointer thats in the cheat engine address list and use that in the assembly script, I basically want a variable containing the final address. But I'm not sure how to do this. I don't want the value at the address but the address it self, also the pointer has multiple levels
"ProjectCoop-Win64-Shipping.exe"+04434E08 -> + 0 -> +20 -> +554. = 1347CB06B54

Is this possible?
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4724

PostPosted: Wed Jun 28, 2023 10:07 am    Post subject: Reply with quote

Traverse the pointier path manually.
Also, `mov al, 1` effectively does nothing. `pop rax` overwrites it.
Something like this:
Code:
push  rbx
push  rdx

lea   rdx,[rcx+r14]
mov   rbx,"ProjectCoop-Win64-Shipping.exe"+04434E08
mov   rbx,[rbx]
mov   rbx,[rbx+20]
cmp   rdx,[rbx+554]
mov   ebx,1
cmove eax,ebx

pop   rdx
pop   rbx

// original code:
mov   [rcx+r14],al
add   rsp,28
jmp   return

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
Alastair0
How do I cheat?
Reputation: 0

Joined: 28 Jun 2023
Posts: 3

PostPosted: Thu Jun 29, 2023 6:02 pm    Post subject: Reply with quote

Thanks!
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 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