Jump to content
  • 0

I need help about Arm64 opcodes


Arteus

Question

Posted

So I'm playing a game using the lua script damage cheat, and I've found the location of the value, it's just that I want to know how it multiplies damage accurately using hexadecimal constants, can anyone teach me the concept?

*DPS = Damage/Attack

Photo 1 : Normal

Photo 2 : Normal Value

Photo 3 : 2x DPS/AtkScreenshot_20230716_200834_8ae6ee3e7b906e7c42026d3232617c7e.thumb.jpg.4f7c4f56791408955a411b3bdd1d6bab.jpgScreenshot_20230716_200819_8ae6ee3e7b906e7c42026d3232617c7e.thumb.jpg.c6dc3571cf6b97057cd42beebf37a7cd.jpgScreenshot_20230716_200928_8ae6ee3e7b906e7c42026d3232617c7e.thumb.jpg.5eeb66870ae588e464076ef926ac1c34.jpgScreenshot_20230716_200920_8ae6ee3e7b906e7c42026d3232617c7e.thumb.jpg.85246e141f2a979b1ffb005133bb5384.jpg

Photo 4 : 2x DPS/Atk Value

7 answers to this question

Recommended Posts

Posted

[ @Arteus ]
---
Hexadecimal is only a form of presenting data. The data itself may vary but in this case, we're going to deal with architectural instructions. What it means that: it is depends on your device architecture (x86, x64 arm32, arm64). The concept itself has been explained quite a lot on this forum. I can give you some references:
Arm Patching
Hex Language
---

 SUB SP, SP, #0x60

SP means Stack Pointer where it is something temporary being stored. "SUB SP" simply means it is being reserved again at Stack Pointer and SP as destination (SUB SP, SP) while #0x60 is something that will subtract the SP. I'm not sure what it is going to be reserved, but, based on applied patches:

FMOV S0, #0x40000

FMOV is an instruction that moves floating point numbers. Meanwhile, S0 is floating point register and #0x40000000 is decimal 2 in hex form. It's equivalent to:

FMOV S0, #2

---
Remember that Instruction is executed one at a time, so it looks like in the end, something from that Stack Pointer will be used on floating point registers.

Quote

RET

Is basically a marker for endings block of instruction. You can convert Float into Hex form using some online calculator:
Float Converter
---

Posted

[ @MAARS ]
---

Quote

Make love

Sounds kinda out of place but sure, let's making love 😋
---

Posted
On 7/17/2023 at 4:09 AM, Xaviesz said:

[ @Arteus ]
---
Hexadecimal is only a form of presenting data. The data itself may vary but in this case, we're going to deal with architectural instructions. What it means that: it is depends on your device architecture (x86, x64 arm32, arm64). The concept itself has been explained quite a lot on this forum. I can give you some references:
Arm Patching
Hex Language
---

 SUB SP, SP, #0x60

SP means Stack Pointer where it is something temporary being stored. "SUB SP" simply means it is being reserved again at Stack Pointer and SP as destination (SUB SP, SP) while #0x60 is something that will subtract the SP. I'm not sure what it is going to be reserved, but, based on applied patches:

FMOV S0, #0x40000

FMOV is an instruction that moves floating point numbers. Meanwhile, S0 is floating point register and #0x40000000 is decimal 2 in hex form. It's equivalent to:

FMOV S0, #2

---
Remember that Instruction is executed one at a time, so it looks like in the end, something from that Stack Pointer will be used on floating point registers.

Is basically a marker for endings block of instruction. You can convert Float into Hex form using some online calculator:
Float Converter
---

Thank you man, that float converter really really helps me

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.