View previous topic :: View next topic |
Author |
Message |
macced Newbie cheater
Reputation: 0
Joined: 22 Mar 2015 Posts: 12
|
Posted: Mon Mar 23, 2015 11:57 pm Post subject: How to disassemble |
|
|
How to disassemble:
Code: | call test.ext+A1A2A3
mov edx,[ebx+50] ;value B4F223
mov edx,[edx+00000150]
mov [eax+25],edx |
1 - function call.
2 - entry in edx from [ebx+50] (address?).
3 - offset?
4 - entry in [eax+25] from edx.
How to add the address edx through: "Add Address Manually"?
|
|
Back to top |
|
 |
Zanzer I post too much
Reputation: 126
Joined: 09 Jun 2013 Posts: 3278
|
Posted: Tue Mar 24, 2015 5:27 pm Post subject: |
|
|
Select the instruction: mov edx,[ebx+50]
Click Tools > Auto Assemble
Click Template > AOB Injection
Click OK
Click OK
After [ENABLE], add the following to the generated code:
Code: | [ENABLE]
alloc(myvar,4)
registersymbol(myvar) |
Under the "code:" label and between the 2 instructions it generated, add:
Code: | code:
mov edx,[ebx+50]
mov [myvar],edx // <--- new code
mov edx,[edx+00000150] |
Now when adding an address manually, check Pointer.
Set the address to "myvar" and change the offset number to "150".
Last edited by Zanzer on Tue Mar 24, 2015 7:24 pm; edited 1 time in total |
|
Back to top |
|
 |
macced Newbie cheater
Reputation: 0
Joined: 22 Mar 2015 Posts: 12
|
Posted: Tue Mar 24, 2015 7:05 pm Post subject: |
|
|
If the entry occurs after clicking on the button, how to get the value before the call?
|
|
Back to top |
|
 |
Zanzer I post too much
Reputation: 126
Joined: 09 Jun 2013 Posts: 3278
|
Posted: Tue Mar 24, 2015 7:26 pm Post subject: |
|
|
You would then need to find some other code that accesses the address before the click.
You cannot receive the value of EDX until the normal game execution is about to run that instruction.
If you simply want to set a static value there at all times, you can:
Code: | code:
mov edx,[ebx+50]
mov [edx+00000150],#999
mov edx,[edx+00000150] |
|
|
Back to top |
|
 |
macced Newbie cheater
Reputation: 0
Joined: 22 Mar 2015 Posts: 12
|
Posted: Tue Mar 24, 2015 9:31 pm Post subject: |
|
|
There is no way, how to get the value before the call? For example, run the code snippet... No other code...
|
|
Back to top |
|
 |
Zanzer I post too much
Reputation: 126
Joined: 09 Jun 2013 Posts: 3278
|
Posted: Tue Mar 24, 2015 10:47 pm Post subject: |
|
|
If absolutely nothing else accesses that address, find out what accesses the pointers.
Find out what accesses the values within the EBX or EDX registers after the instruction: mov edx,[ebx+50]
Those pointers tell you: address = [[unknown+50]+150]
Right-click the found address and do a pointer scan ending with offsets 0x50 and 0x150.
Why is it a problem that you don't have the address until after the button press?
You can always push it again after your address is found.
|
|
Back to top |
|
 |
macced Newbie cheater
Reputation: 0
Joined: 22 Mar 2015 Posts: 12
|
Posted: Tue Mar 24, 2015 11:37 pm Post subject: |
|
|
Maybe we do not understand each other?
I found variable. By clicking on the button in the value is written into the variable. I need to know what value before pressing.
|
|
Back to top |
|
 |
|