| View previous topic :: View next topic |
| Author |
Message |
foxfire9 Advanced Cheater
Reputation: 0
Joined: 23 Mar 2012 Posts: 57
|
Posted: Wed Feb 27, 2013 1:13 am Post subject: Need help please!~ |
|
|
I'm having problem with Infinite Life and it does affect AI, in Battle Realms
| Quote: | [ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:
??? (nop)
originalcode:
add [esi+00000400],ebx
exit:
jmp returnhere
"Battle_Realms_F.exe"+A4D8A:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"Battle_Realms_F.exe"+A4D8A:
add [esi+00000400],ebx
//Alt: db 01 9E 00 04 00 00 |
I think this IS the code if they attack me? I put nop but still does the same it affects AI. And also my Stamina
| Quote: | [ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:
nop
originalcode:
//sub [esi+00000404],eax
exit:
jmp returnhere
"Battle_Realms_F.exe"+A5FD9:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"Battle_Realms_F.exe"+A5FD9:
sub [esi+00000404],eax
//Alt: db 29 86 04 04 00 00 |
I need help making only me affected on these codes. |
|
| Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Wed Feb 27, 2013 2:36 am Post subject: |
|
|
Check out the cheat engine tutorial. There is a tutorial for dissecting data structures to determine player ID (player vs. computer etc.). Once you have the player ID info., you can write a script that will perform a check to see if the player ID is 1 for player (for example), or 2 for computer. With this, you can perform a number of different tasks that will effect either the player, only, or the computer, only.
Member Geri has published an article/tutorial that can walk you through the process better than I can explain it. |
|
| Back to top |
|
 |
foxfire9 Advanced Cheater
Reputation: 0
Joined: 23 Mar 2012 Posts: 57
|
Posted: Wed Feb 27, 2013 8:44 pm Post subject: |
|
|
Thanks, I was wondering where and when it is posted.
By the way, why didn't I notice it? |
|
| Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Wed Feb 27, 2013 8:53 pm Post subject: |
|
|
| You have to follow the link in his signature. |
|
| Back to top |
|
 |
HiSaZuL Expert Cheater
Reputation: 6
Joined: 09 Aug 2011 Posts: 245
|
Posted: Wed Feb 27, 2013 9:37 pm Post subject: |
|
|
1. You really should check Geris tutorial.
But in short open disasember hit ctrl+d.. disect data is what you are looking for.
Now the code is
add [esi+00000400],ebx
basically if it affects everyone you need to make a condition so sort who is who so you can set who you would want to be affected.
esi+400 is the thing you want to dissect or to be more specific esi itself.
Find both your health and enemy health put the address of your health( lets say 12345678-400) to get to the lower level of the stack and add another column for enemy health same deal. Now compare the two and try to see if theres any indicators that may lead to distinguish player from enemy. Since you said stamina is affected too... it will probably be there too but at different offset. In general you add a couple of columns define the structure and go do some stuff see how its affected. What stays the same what changes if enemy has offset that is identical for them but different for you.
Anyway Geri explains it better imo.
Lets just make an example say at offset 0... player is 0 and everyone else is something else. Your code would look something like this.
| Code: |
[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:
push eax //saves eax just in case
cmp esi,0 //compares esi at base offset
jne originalcode // if not 0(player) runs code as normal
mov eax,0 //if its player then eax is set to 0... so you are subtracting 0.
originalcode:
sub [esi+00000404],eax
pop eax //returns eax to w/e the heck it was
exit:
jmp returnhere
"Battle_Realms_F.exe"+A5FD9:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"Battle_Realms_F.exe"+A5FD9:
sub [esi+00000404],eax
//Alt: db 29 86 04 04 00 00
|
|
|
| Back to top |
|
 |
foxfire9 Advanced Cheater
Reputation: 0
Joined: 23 Mar 2012 Posts: 57
|
Posted: Sat Mar 09, 2013 6:07 am Post subject: |
|
|
So, this is the Code for cmp but the Game [Battle Realms] crashes, is there something wrong?
| Code: | [ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:
pushfd
cmp [esi+00000240],0
jne +6
nop
popfd
originalcode:
//add [esi+00000400],ebx
exit:
jmp returnhere
"Battle_Realms_F.exe"+A4D8A:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"Battle_Realms_F.exe"+A4D8A:
add [esi+00000400],ebx
//Alt: db 01 9E 00 04 00 00 |
|
|
| Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sat Mar 09, 2013 1:35 pm Post subject: |
|
|
First, you need to find the actual instruction that manipulates your health address. Once you have found that, put the compare and the health code in the same script. For example, something like this...if (1) is for hero ID:
| Code: |
[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(enemy)
newmem:
cmp [esi+00000240],1 //check player ID to see if address is for hero or enemy player
jne enemy //jump to enemy if player ID is not 1
add [esi+00000400],ebx //add damage value to health, instead of subtracting it
jmp returnhere
enemy:
sub [esi+00000400],ebx //subtract damage value from health, as always
jmp returnhere
"Battle_Realms_F.exe"+A4D8A:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"Battle_Realms_F.exe"+A4D8A:
sub [esi+00000400],ebx
|
Now, this is just a total guess as to what those addresses really are, but it should give you some idea about what you should be doing. There are many ways to manipulate code. Add/subtracting for health is not the approach that I would use. |
|
| Back to top |
|
 |
foxfire9 Advanced Cheater
Reputation: 0
Joined: 23 Mar 2012 Posts: 57
|
Posted: Sat Mar 09, 2013 9:25 pm Post subject: |
|
|
I'll try reading the tutorials even though it's hard for me but I'm getting the idea of Geri's tutorial on Dissecting Data/Structures. All that's left is understanding the general basics of the codes [cmp,jne,jmp,etc...].
Thanks for the tip.  |
|
| Back to top |
|
 |
foxfire9 Advanced Cheater
Reputation: 0
Joined: 23 Mar 2012 Posts: 57
|
Posted: Mon Mar 11, 2013 5:02 am Post subject: |
|
|
I forgot to ask someting.
Can you tell me how to change the value type?
Example:
cmp [esi+00000240],1 => cmp [esi+00000240],(float)1
I only know float value but what about byte,2bytes,4bytes,etc.?
I'm trying to find guides but nothing I dunno where to start. |
|
| Back to top |
|
 |
|