Well here is what I have been thinking...
The function that controls health is this:
0045D67D - f3 0f 11 87 20 01 00 00 - movss [edi+00000120],xmm0
Now what I know is that the health is written to edi+00000120. Here is a screenshot of the values at the address, captured via CoSMOS.
LinkNow if I take the address shown at EDI and add the offset you get 8553280. Navigating to that address gives you this code:
08553280 - 00 80 ab 43 00 00 - add [eax+000043ab],al
This is the address that my life is stored to. But changing this results in it to reset to add [eax+000043ab],al.
Now what I've been thinking of doing is instituting a conditional jump, in which if edi = 08553160, and if it does, set the value to a set value, to cause the true infinite life effect. Does this sound right? if so, how would I code the edi conditional jump inside my code cave.
Thanks for the help Dabs... Your guidance has put me on the path to understand ASM and SSE better. But one thing that I don't really understand is Conditional Jumps.
Help would be appreciated :]
Ok, so I want to use a condition jump if edi is equal to 08553160. I'm going to look at the tuts more and see if there is a way to do it.
[Edited by Sil3nt_Pr0digy, 3/21/2010 8:09:56 PM]My bad... I realized that it won't work because the address I was seeing (8553160) was a DMA address for health; not what I was looking for... Damn it... isn't there some other way to sort out the player's health?
BTW, I got my conditional jump working... now if I just knew what to put in it...
[Edited by Sil3nt_Pr0digy, 3/21/2010 9:43:44 PM]