Yuuki's How do I cheat?
Reputation: 0
Joined: 14 Feb 2021 Posts: 6
|
Posted: Wed Mar 31, 2021 11:31 am Post subject: Help!! Changing byte value with mov [rax] |
|
|
# Introduction
Hi! Im new to assembly code and appearently i've made some string changes using Array of Byte. Anyway, it was supposed to change in-game nickname (LAN only). Later on i've made some pointer scanning on that address and finally got the right value
# Problematic
The thing is.. the nickname always be updated to original nickname of the signed in account upon entering new dimension using portals. So i checked "what writes to this address" and surprisingly, there's only 1 address that writes to it (usually it has 1-5). So the bytes that writes to that address is :
Code: | 4C 89 00 - mov [rax],r8 |
from the code tree here :
Code: | 4C 8B 02 - mov r8,[rdx]
8B 4A 08 - mov ecx,[rdx+08]
8C 89 00 - mov [rax],r8] //that writes the address
89 48 08 - mox [rax+08],ecx]
C3 - ret |
The problem is, upon using AoB injection or Full Injection, the game will crash if i add the float value.
Code: | define(address,"VCRUNTIME140_APP.dll"+1436)
define(bytes,4C 89 00 89 48 08)
[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,"VCRUNTIME140_APP.dll"+1436)
label(code)
label(return)
newmem:
mov [rax],(float)3.173248742E35 //nickname in float
mov [rax+08],ecx
jmp code
code:
mov [rax],r8
mov [rax+08],ecx
jmp return
address:
jmp newmem
nop
return:
[DISABLE]
address:
db bytes
// mov [rax],r8
// mov [rax+08],ecx
dealloc(newmem) |
The float value is supposed to be changing the bytes since i cant push it directly to make the address writes the specific bytes. The point is, i used float as a string that contain the new nickname. I know its not ideal but i didnt know the workaround for that.
I hope you guys can help me  |
|