Majin Advanced Cheater
Reputation: 0
Joined: 04 May 2016 Posts: 87
|
Posted: Sun Jan 22, 2017 7:08 am Post subject: Automating pointer values - Value doesn't change |
|
|
I hacked up a wee script for Dark Souls 3, taking most of the work from the DS3 table, to automate changing two floats to 1.2. Should be simple; get the pointer, add the offset, change the bytes, et voila.
But it doesn't appear to be doing anything.
First code block is the original, the second is my mod to it.
Code: |
autoAssemble([[
aobscanmodule(Findit,DarkSoulsIII.exe,48 8B 05 ?? ?? ?? ?? 48 85 C0 ?? ?? 48 8b 40 ?? C3)
registersymbol(Findit)
]])
local addr = getAddress("Findit")
addr = addr + readInteger(addr + 3) + 7
unregisterSymbol("BaseA")
registerSymbol("BaseA", addr, true)
|
Code: |
[ENABLE]
{$lua}
autoAssemble([[
aobscanmodule(addrBase,DarkSoulsIII.exe,48 8B 05 ?? ?? ?? ?? 48 85 C0 ?? ?? 48 8b 40 ?? C3)
registersymbol(addrBase)
]])
local addrProportions = getAddress("addrBase")
addrProportions = addrProportions + readInteger(addrProportions + 3) + 7
unregisterSymbol("baseProportions")
registerSymbol("baseProportions", addrProportions, true)
autoAssemble([[
mov byte ptr[baseProportions+3C0],9A
mov Word ptr[baseProportions+3C1],9999
mov byte ptr[baseProportions+3C8],9A
mov Word ptr[baseProportions+3C9],9999
]])
[DISABLE]
{$asm}
unregistersymbol(baseProportions)
unregistersymbol(addrBase)
|
What I think the problem is, is that I'm just at the wrong pointer. The address I pulled the first mov byte[] mov Word[] pair from looks like this:
Notice that the pointer fields are...Odd. BaseA (which I renamed to addrBase) gives the address 7FFA09405F0. But addrBase brings me to 1447043A8. Same AOB, but the address I'm taken to is useless.
I've no idea why this doesn't work. Aside from changing the variable names and adding four mov[]'s, it's the exact same code.
|
|