In my free time, I was trying to hack old game - Asphalt 8 in 3.9.0h version. I was trying to hack "Free Boosters" value.
I found a function which is controlling the value of the 'Free Boosters' :
Code: Select all
add dword ptr [esi+000003A4],-10
I found also something strange.
Like everyone of you can see, when you use 'Free Booster', it will substract the value of total "Free Boosters" by one.
I found that you can change value from -10 to 70 MAXIMUM to add every time 7 "Free Boosters' when one will be used.
Value 70 is maximum which you can change. You will ask: why value 70 is maximum? I will tell you.
When you change the value to 80 - it is doing something strange... instead of adding, subtracts by 8 everytime when you use one 'Free Boster'! I do not know why this is happening. Can someone explain it to me?
When you change the value to even higher, 90 - it is then not adding nor substracting the value. Why?
Next problem: I checked also what functions are accesing to the 'Free Bosters' when I am using them :
I checked that current value of 'Free Boosters' has EDX register :
So I made in this place a script like that to change the value of 'Free Boosters' to 500 :
Code: Select all
[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:
originalcode:
push edx
mov edx,#500
mov [ecx+000003A4],edx
cmp eax,[ecx+000003A4]
pop edx
exit:
jmp returnhere
"Asphalt8.exe"+AD8B46:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"Asphalt8.exe"+AD8B46:
cmp eax,[ecx+000003A4]
//Alt: db 3B 81 A4 03 00 00
Am I doing something wrong?
I am waiting for your help.
Thank you.