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 


Failure determining what ... means

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

Joined: 17 May 2024
Posts: 4

PostPosted: Fri May 17, 2024 1:45 pm    Post subject: Failure determining what ... means Reply with quote

I am trying to execute auto assembler script and getting the error:
"Failure determining what registerValue means "
CheatEngine version is 7.5

Auto Assember code:
Code:


[ENABLE]

// Allocate memory for storing the register value
alloc(registerValue, 8)

// Save the RAX register value to the allocated memory
mov [registerValue], rax

// Execute Lua script to print the value
{$lua}
  local registerValueAddress = getAddress('registerValue')
  local value = readQword(registerValueAddress)
  print(string.format("The value of the RAX register is: 0x%X", value))
{$asm}

// Continue with assembly code
label(afterLua)
afterLua:

[DISABLE]

// Deallocate the memory when the script is disabled
dealloc(registerValue)
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4706

PostPosted: Fri May 17, 2024 3:06 pm    Post subject: Reply with quote

That's not how AA scripts work.

AA scrips assemble code to a specified address.
Code:
game.exe+1234:
  mov eax,[rbx]
This assembles the instruction `mov eax,[rbx]` to machine code (bytes) and writes those bytes into memory at the address `game.exe+1234`.

AA scripts usually just assemble code and write it to a certain address. They aren't responsible for running the code they assemble- it's assumed the game will run it when it's suppose to.

As such, a freestanding instruction that's not being written to a certain address has no meaning.

Try the CE tutorial for help understanding the basics of code injection. There are plenty of video tutorials if you're stuck.

Also, {$lua} blocks are run before the script is executed. If you want the game to invoke some Lua code in CE, use {$luacode}:
https://forum.cheatengine.org/viewtopic.php?t=618134

_________________
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
rezlind
How do I cheat?
Reputation: 0

Joined: 17 May 2024
Posts: 4

PostPosted: Fri May 17, 2024 5:38 pm    Post subject: Reply with quote

That was a slightly simplified example. I am trying to inject code using AOB Injection template. I want the game (after injection is made) to execute lua script that will print the contents of a register, I am pushing all the registers to the stack before {$luacode} section and restoring them after it and before it jumps to the orignal game code. I wonder if that is possible?
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4706

PostPosted: Fri May 17, 2024 6:36 pm    Post subject: Reply with quote

"Slightly" is an understatement.

When something isn't working and you don't know what's wrong, please post the full script. You don't know if what you omitted/changed is part of the problem. Ideally it should be an SSCCE.
The only thing you should edit is the name of the game. e.g. replace "OnlineMultiplayerGame.exe" with "game.exe"

Pushing/popping registers yourself isn't necessary to use {$luacode}. Just do the same thing as the example in the post I linked to.

_________________
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
rezlind
How do I cheat?
Reputation: 0

Joined: 17 May 2024
Posts: 4

PostPosted: Sat May 18, 2024 1:06 pm    Post subject: Reply with quote

I tried assigning to current cheat table this AOB injection:
Code:


[ENABLE]

aobscanmodule(INJECT,game.exe,48 8B 47 18 48 8B BC 24 A0 00 00 00) // should be unique
alloc(newmem,$1000,INJECT)

label(code)
label(return)
label(afterlua)
newmem:

code:
{$luacode itemId=eax}
  printf("itemId=%d",itemId)
{$asm}
afterlua:
  mov rax,[rdi+18]
  mov rdi,[rsp+000000A0]
  jmp return

INJECT:
  jmp newmem
  nop 7
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 48 8B 47 18 48 8B BC 24 A0 00 00 00

unregistersymbol(INJECT)
dealloc(newmem)


I got an error: Error in line 0 (call CELUA_ExecuteFunctionByReference) :This instruction can't be compiled
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4706

PostPosted: Sat May 18, 2024 2:10 pm    Post subject: Reply with quote

Dark Byte wrote:
As for the lua error, that's just the syntax check. The syntaxcheck does not inject dll's into the target process, so call CELUA_ExecuteFunctionByReference will fail as the dll can't be found yet. But doing an actual run should be fine
https://forum.cheatengine.org/viewtopic.php?p=5773449#5773449

When CE asks you if you want to edit it to this anyway select "Yes"

If you haven't assigned it to the cheat table yet, comment out everything between {$luacode} and {$asm} inclusive, assign it to the cheat table, edit the script in the address list, and uncomment it

_________________
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
rezlind
How do I cheat?
Reputation: 0

Joined: 17 May 2024
Posts: 4

PostPosted: Sat May 18, 2024 2:31 pm    Post subject: Reply with quote

Thank you! That worked.
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 Lua Scripting 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