Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


[SOLVED] Help on backtracing or alternative solution.

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Discussions
View previous topic :: View next topic  
Author Message
Xillica
Cheater
Reputation: 1

Joined: 28 Jun 2015
Posts: 45

PostPosted: Sun Feb 19, 2017 2:51 am    Post subject: [SOLVED] Help on backtracing or alternative solution. Reply with quote

Hello, I'm trying to create a multiplier for SP regen (which I already succeeded). But I'm wondering about whether I can also change the displayed regen value that popped out above the character's head.

Let's say I have base SP regen @126, I tried to multiply it by 2. So it become @252, the problem is the value that popped out above the character head is still @126. Can I also change the displayed regen value too? If so how?

===Case===

Current MP: 1000
Base SP regen: 126
Displayed regen value: 126
Multiplied SP regen: 252

---------------------------
1x SP regen resulted in
---------------------------
Current MP: 1252
Base SP regen: 126
Displayed regen value: 126 <-- How to change this to 252 too
Multiplied SP regen: 252

===End Case===

I would gladly donate 50$ to Cheat Engine or anyone that can give me solution for this problem. Thank You.

Note: The regen value is stored at the highlighted [ebp+08] which is 126



2017-02-19 15_30_37-Memory Viewer - Currently debugging thread 28D4.png
 Description:
 Filesize:  101.92 KB
 Viewed:  15523 Time(s)

2017-02-19 15_30_37-Memory Viewer - Currently debugging thread 28D4.png



_________________
Toukiden Kiwami cheat table: forum.cheatengine.org/viewtopic.php?p=5600876#5600876


Last edited by Xillica on Tue Feb 21, 2017 2:23 am; edited 1 time in total
Back to top
View user's profile Send private message
Viloresi
Expert Cheater
Reputation: 0

Joined: 02 Feb 2017
Posts: 149

PostPosted: Sun Feb 19, 2017 5:45 am    Post subject: Reply with quote

The displayed values should be in an address just like the "real" value of the sp regen...
Probably it's not changing because the function that refreshes the displayed values isn't called in some loop, but it is called just in some cases...
The SP regen is a fixed value, so there will not be any decrease or increase command, but just a mov . (If I'm guessing right)
Aniway if you Find what access that address and perform any action that changes the SP regen value in the game, you will find the instruction used by the function that updates the displayed value.
now you have 2 options:
1)Now you could make a script that "calls" that function when executed, or jump to that instruction... depends how it is,
2)Or you can post a screenshot.

I hope I've helped you in some way :S
Back to top
View user's profile Send private message
Xillica
Cheater
Reputation: 1

Joined: 28 Jun 2015
Posts: 45

PostPosted: Sun Feb 19, 2017 6:33 am    Post subject: Reply with quote

Viloresi wrote:
The displayed values should be in an address just like the "real" value of the sp regen...
Probably it's not changing because the function that refreshes the displayed values isn't called in some loop, but it is called just in some cases...
The SP regen is a fixed value, so there will not be any decrease or increase command, but just a mov . (If I'm guessing right)
Aniway if you Find what access that address and perform any action that changes the SP regen value in the game, you will find the instruction used by the function that updates the displayed value.
now you have 2 options:
1)Now you could make a script that "calls" that function when executed, or jump to that instruction... depends how it is,
2)Or you can post a screenshot.

I hope I've helped you in some way :S


I'm not sure if I can find the address since the SP regen is the effect from an accessory that I'm wearing in-game, which restores 5% of total SP every turn.

Code:
FairyFencerAD.exe+18EB1F - 8B 7B 10              - mov edi,[ebx+10] <- Accessing current SP value
FairyFencerAD.exe+18EB22 - 8B 45 08              - mov eax,[ebp+08] <- [ebp+08] has the regen value
FairyFencerAD.exe+18EB25 - 8D 34 07              - lea esi,[edi+eax] <- Adding the regen value and current SP value together to esi
FairyFencerAD.exe+18EB28 - 85 F6                 - test esi,esi
FairyFencerAD.exe+18EB2A - 79 02                 - jns FairyFencerAD.exe+18EB2E
FairyFencerAD.exe+18EB2C - 33 F6                 - xor esi,esi
FairyFencerAD.exe+18EB2E - 8B 45 FC              - mov eax,[ebp-04]
FairyFencerAD.exe+18EB31 - E8 DA40E8FF           - call FairyFencerAD.exe+12C10
FairyFencerAD.exe+18EB36 - 8B CE                 - mov ecx,esi <- moving the esi value which is the total from current SP and SP regen value to ecx
FairyFencerAD.exe+18EB38 - 3B F0                 - cmp esi,eax
FairyFencerAD.exe+18EB3A - 76 02                 - jna FairyFencerAD.exe+18EB3E
FairyFencerAD.exe+18EB3C - 8B C8                 - mov ecx,eax
FairyFencerAD.exe+18EB3E - 3B F9                 - cmp edi,ecx
FairyFencerAD.exe+18EB40 - 0F95 C0               - setne al
FairyFencerAD.exe+18EB43 - 89 4B 10              - mov [ebx+10],ecx <- writes the value back to current SP


The game is Fairy Fencer F Advent of Dark Force by the way.



SP regen value stored at [ebp+08].png
 Description:
This value is about 5% from max SP.
 Filesize:  21.72 KB
 Viewed:  15458 Time(s)

SP regen value stored at [ebp+08].png



Accessing current SP.png
 Description:
You can see my current SP which 2635 (maxed).
 Filesize:  21.69 KB
 Viewed:  15458 Time(s)

Accessing current SP.png



_________________
Toukiden Kiwami cheat table: forum.cheatengine.org/viewtopic.php?p=5600876#5600876
Back to top
View user's profile Send private message
Viloresi
Expert Cheater
Reputation: 0

Joined: 02 Feb 2017
Posts: 149

PostPosted: Sun Feb 19, 2017 8:59 am    Post subject: Reply with quote

Xillica wrote:


I'm not sure if I can find the address since the SP regen is the effect from an accessory that I'm wearing in-game, which restores 5% of total SP every turn.


there must be, you can scan for 4 bytes and search for 131 (or 83 hex) when you have the item equipped and scan 0 when you unequip it... or you can search for the actual number you see displayed when you equip (5 If I understood correctly)and unequip (0) the accessory.

the function you are watching right now it's not what you're looking for

This will work if the default value for the SP regen is 0,otherwise you have to scan for increased and decreased value.
Back to top
View user's profile Send private message
Xillica
Cheater
Reputation: 1

Joined: 28 Jun 2015
Posts: 45

PostPosted: Tue Feb 21, 2017 2:19 am    Post subject: Reply with quote

Viloresi wrote:
Xillica wrote:


I'm not sure if I can find the address since the SP regen is the effect from an accessory that I'm wearing in-game, which restores 5% of total SP every turn.


there must be, you can scan for 4 bytes and search for 131 (or 83 hex) when you have the item equipped and scan 0 when you unequip it... or you can search for the actual number you see displayed when you equip (5 If I understood correctly)and unequip (0) the accessory.

the function you are watching right now it's not what you're looking for

This will work if the default value for the SP regen is 0,otherwise you have to scan for increased and decreased value.


That's not going to work if the SP regen value is accessed from temporary variable which used by shared instructions.

Anyway I already found the solution and the function that's used to display the SP regen value on screen by backtracing it from the previous instructions I've posted in my previous post.

In the end I just found the solution by myself using CE, then I'll just donate half of my promises to Dark Byte. It's also would be great if I can donate to other Cheat Engine contributors but I don't know how to that.



2017-02-21 14_55_14-PayPal Checkout - Payment finished!.png
 Description:
 Filesize:  19.57 KB
 Viewed:  15286 Time(s)

2017-02-21 14_55_14-PayPal Checkout - Payment finished!.png



_________________
Toukiden Kiwami cheat table: forum.cheatengine.org/viewtopic.php?p=5600876#5600876
Back to top
View user's profile Send private message
Viloresi
Expert Cheater
Reputation: 0

Joined: 02 Feb 2017
Posts: 149

PostPosted: Tue Feb 21, 2017 6:23 am    Post subject: Reply with quote

Nice, could you please tell me where is that function in the screen you've posted? because I've tried to look for it but I didn't find it, that's why I told you that wasn't the right function, aniway I'm sorry for that but I still don't understand where it is?
Thank you
Back to top
View user's profile Send private message
Xillica
Cheater
Reputation: 1

Joined: 28 Jun 2015
Posts: 45

PostPosted: Tue Feb 21, 2017 6:38 am    Post subject: Reply with quote

Viloresi wrote:
Nice, could you please tell me where is that function in the screen you've posted? because I've tried to look for it but I didn't find it, that's why I told you that wasn't the right function, aniway I'm sorry for that but I still don't understand where it is?
Thank you


So from my previous posted instruction which is:
Code:
FairyFencerAD.exe+18EB22 - 8B 45 08              - mov eax,[ebp+08] <- [ebp+08] has the regen value

1. Find out what [ebp+08] value at that time
2. Set up break and trace with step over
3. Do SP regen in game //Now you have nice tree of function calls that you can use to move back up before the call of SP regen function.
4. Try move back a level once
5. Set up breakpoint to the top most current function
6. Check whether the [ebp+08] has the same value at step 1
7. Repeat step 4-6 until [ebp+08] is changed
8. From there on you can start stepping manually using breakpoint to find out where [ebp+08] gets its value from.

Note: conditional breakpoint is pretty useful.

_________________
Toukiden Kiwami cheat table: forum.cheatengine.org/viewtopic.php?p=5600876#5600876
Back to top
View user's profile Send private message
Viloresi
Expert Cheater
Reputation: 0

Joined: 02 Feb 2017
Posts: 149

PostPosted: Tue Feb 21, 2017 9:03 am    Post subject: Reply with quote

Xillica wrote:
Viloresi wrote:
Nice, could you please tell me where is that function in the screen you've posted? because I've tried to look for it but I didn't find it, that's why I told you that wasn't the right function, aniway I'm sorry for that but I still don't understand where it is?
Thank you


So from my previous posted instruction which is:
Code:
FairyFencerAD.exe+18EB22 - 8B 45 08              - mov eax,[ebp+08] <- [ebp+08] has the regen value

1. Find out what [ebp+08] value at that time
2. Set up break and trace with step over
3. Do SP regen in game //Now you have nice tree of function calls that you can use to move back up before the call of SP regen function.
4. Try move back a level once
5. Set up breakpoint to the top most current function
6. Check whether the [ebp+08] has the same value at step 1
7. Repeat step 4-6 until [ebp+08] is changed
8. From there on you can start stepping manually using breakpoint to find out where [ebp+08] gets its value from.

Note: conditional breakpoint is pretty useful.


cool, thanks for the reply
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Discussions All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites