View previous topic :: View next topic |
Author |
Message |
rog9001 Expert Cheater
Reputation: 2
Joined: 22 Dec 2015 Posts: 214 Location: Jupiter
|
Posted: Fri Jul 15, 2016 8:52 pm Post subject: Stupid question..... |
|
|
You might think I am dumb because of this question but I will still ask. . . .
a friend gave me his script and the instruction is:
what it is, is health but it contains both player health and opponent health and what he obviously did was a compare... but I don't get it.
Code: |
newmem:
cmp [edi+84],00
je code
jmp kill
code:
nop
mov eax,[esi+0C]
jmp return
kill:
subss xmm0,[eax]
mov eax,[esi+0C]
jmp return
IHOHKO:
jmp newmem
nop
nop
nop
nop
return:
|
the question which I have is... where did he get the [edi+84] from? This is a question I had for a long time sins I see a lot of these things. Could someone please tell me. I know this might be a pretty dumb question but I don't care.
|
|
Back to top |
|
 |
Zanzer I post too much
Reputation: 126
Joined: 09 Jun 2013 Posts: 3278
|
Posted: Fri Jul 15, 2016 9:04 pm Post subject: |
|
|
It's some value which your friend found that is specific to the player.
Could be a player id, which is normally given the value 0.
He simply did some sniffing around the various address spaces.
He looked at the values when it was referencing the player versus something else.
|
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Fri Jul 15, 2016 11:45 pm Post subject: |
|
|
More than likely, [edi+84] is being used somewhere before the health instruction and he found it that way. Even though your health address is being stored in the esi register, the other register values may hold a unique identifier. Most people just look at the register values and do not dissect any of the addresses, which is why he probably just found an opportunity in previous code to exploit.
|
|
Back to top |
|
 |
rog9001 Expert Cheater
Reputation: 2
Joined: 22 Dec 2015 Posts: 214 Location: Jupiter
|
Posted: Sat Jul 16, 2016 8:45 am Post subject: |
|
|
Actually I think that [edi+84] is player and opponent ID because I edited the script and made it
Code: |
cmp [edi+84],0
je HP
cmp [edi+84],1
je KO
jmp original
|
and it worked. but how exactly could you find the player and opponent IDs? it is 0 and 1.
|
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sat Jul 16, 2016 4:30 pm Post subject: |
|
|
Sigh. Of course it's being used as an ID - that is obvious. Whether or not the game uses it in that way is another matter.
|
|
Back to top |
|
 |
kl0wn Cheater
Reputation: 2
Joined: 09 Jun 2013 Posts: 36
|
Posted: Mon Jul 18, 2016 10:43 am Post subject: |
|
|
rog9001 wrote: | Actually I think that [edi+84] is player and opponent ID because I edited the script and made it
Code: |
cmp [edi+84],0
je HP
cmp [edi+84],1
je KO
jmp original
|
and it worked. but how exactly could you find the player and opponent IDs? it is 0 and 1. |
You can set breakpoints and see what registers look like when an enemy takes damage. You could find your player structure, which is edi, and open it in the structure dissect and then open an enemies structure next to it and compare.
|
|
Back to top |
|
 |
PinPoint Expert Cheater
Reputation: 10
Joined: 07 Apr 2016 Posts: 223 Location: Scotland
|
Posted: Mon Jul 18, 2016 10:52 am Post subject: |
|
|
Look at shared opcode tutorials on the forum. You will get a better understanding of finding and using filters.
If you do the last step on the cheat engine tutorial you will understand it better also.
|
|
Back to top |
|
 |
|