HiSaZuL Expert Cheater
Reputation: 6
Joined: 09 Aug 2011 Posts: 245
|
Posted: Thu Sep 27, 2012 8:31 pm Post subject: Need some help fixing table. |
|
|
Trying to patch up Darksiders table. Maximum health is higher then what table is using so its somewhat irritating.
Code: |
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
label(enerlabel)
registersymbol(enerlabel)
aobscan(eneraob,F3 0F 11 8B 00 01 00 00 eb 15)
eneraob:
enerlabel: //00813E29:
jmp newmem
nop
nop
nop
returnhere:
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov [ebx+00000100],447A0000
originalcode:
//movss [ebx+00000100],xmm1
exit:
jmp returnhere
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
enerlabel:
movss [ebx+00000100],xmm1
//Alt: db F3 0F 11 8B 00 01 00 00
unregistersymbol(enerlabel)
|
Basically as I said my current hp is higher then what the script is replacing it with. How the value is store in the bizzare darksiders way I'm not even sure the whole system makes no sense to me... its like playing with lifes -_-.
mov [ebx+00000100],447A0000
Is the culprit I would imagine. 447a0000 would be the value? I'm horrible at scripting. My guess its 4 byte integer considering how health decreses and increases its probably actually a float number but thats a guess so non hex value as integer would be a messy big number and I would never get the right value even if i started guessing.
I attempted to the best of my knowledge getting the... how to call it... pointer out of the script?
added
globalalloc(pEnergy,4)
pEnergy:
dd 0
tried to add my pointer save to newmem section
mov [pEnergy], eax
and well dealloc at the end but game keeps crashing so I left that idea at the door.
Anyone got any ideas how to either translate 447A0000 into float and/or what ever else.
I suppose I could use blind guessing method and change
mov [ebx+00000100],447A0000
to something like
mov [ebx+00000100],float 9000
or just guess around untill i stumble upon something but from personal experience with darksiders 2... A LOT of values are very twichy when they get out of some range
for instance in darksiders 2 defense past ~2000 would crash the game on trying to save. wrath past about 7000? or maybe it was health past 20k would also crash saving. and so on. By the looks of it both games use same engine so id rather not deal with constantly crashing the whole thing.
edit: nvm now that i thought about it... im not exactly sure how hex values are even handled... now im just confused beyond all hope.
on side note using old 447a0000 and searching for it did find address for it... so for now max is 44898000. now i just need to wait and see if hp can go even higher. fixed it wrath too tho.
|
|