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 


Help with finding value

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
codedemen
How do I cheat?
Reputation: 0

Joined: 06 Apr 2013
Posts: 5

PostPosted: Sat Apr 06, 2013 6:02 am    Post subject: Help with finding value Reply with quote

Hi!

First of all I would like to tell you, that I have a bit experience in revercing, so I know the basics and mostly I can find in a program any values, that I need...

But not this time... I am trying to reverce an online game to find out some basic value positions(hp, etc) for my future bot but I could find just nothing.

1st attempt
I know my hp now is 1000, i searc for all values with 1000(4bit, 8bit, float, decimal, etc) than i change it to lower(changing equip) and trying to find new value and... nothing found!

2nd attemt:
I search for unknown value then changing my health value(unequiping), look for decreased value, equiping, look for increased value and so on while there are 2-3 adresses left and the value of this adresses is(for example) 1, 46875439-E10 and yes, it changes every time I change my hp value... If I am missing here something - please tell me what, but I can not find out how to operate with such value...

And here is my question:
Could please somebody help to find me 1-2 values, explain how he made this in order I could understand it and try for myself... I am ready to pay for your help up to 50$.

Thank you for your time!
Back to top
View user's profile Send private message
Mohsen
Advanced Cheater
Reputation: 1

Joined: 04 Apr 2013
Posts: 69
Location: PE

PostPosted: Sat Apr 06, 2013 7:48 am    Post subject: Reply with quote

You would better to donate 50$ to cheat engine rather than pay for those who are going teach you how to USE it..

BTW, a simple guess. If you are really sure that 1, 46875439-E10 is what you are looking after then add that address; then select it and press ALT+ENTER to change it's type to some integer.
Back to top
View user's profile Send private message
codedemen
How do I cheat?
Reputation: 0

Joined: 06 Apr 2013
Posts: 5

PostPosted: Sat Apr 06, 2013 7:59 am    Post subject: Reply with quote

No, im not sure... even more: I am sure that it is not what I am lookig for... About donating to CE - I am donating to it every time I run a succesfull project using it, so this price is really just for help - nobody will spend his time in order to teach somebody on how to make something... Except it is a forum guide etc... And now I really need some private help...
Back to top
View user's profile Send private message
Mohsen
Advanced Cheater
Reputation: 1

Joined: 04 Apr 2013
Posts: 69
Location: PE

PostPosted: Sat Apr 06, 2013 8:29 am    Post subject: Re: Help with finding value Reply with quote

codedemen wrote:
1, 46875439-E10 and yes, it changes every time I change my hp value


Check what addresses access this and then read asm code.
Most likely you'll end up with a related peace of code for health
Back to top
View user's profile Send private message
daspamer
Grandmaster Cheater Supreme
Reputation: 54

Joined: 13 Sep 2011
Posts: 1588

PostPosted: Sat Apr 06, 2013 11:44 am    Post subject: Reply with quote

Tell me whats the game name I'll see whats possible.
I won't take money.

You really should donate to C.E instead.

_________________
I'm rusty and getting older, help me re-learn lua.
Back to top
View user's profile Send private message Visit poster's website
jucce
Advanced Cheater
Reputation: 1

Joined: 02 Apr 2013
Posts: 99

PostPosted: Sat Apr 06, 2013 2:20 pm    Post subject: Re: Help with finding value Reply with quote

codedemen wrote:

2nd attemt:
I search for unknown value then changing my health value(unequiping), look for decreased value, equiping, look for increased value and so on while there are 2-3 adresses left and the value of this adresses is(for example) 1, 46875439-E10 and yes, it changes every time I change my hp value... If I am missing here something - please tell me what, but I can not find out how to operate with such value...
Try looking at the actual data of the value, by which I mean the bytes. Look for a pattern in how the bytes change when you equip/unequip. Possibly the value may be split into sections or be of a more advanced data type compared to a simple 1/2/4 byte value. I have seen for example a 4 byte value where you first have to discard the last 3 bits and then zero the first two bytes.

So try to analyze subsections of the value too, perhaps only some of the bits are the actual HP value while others are flags and such.
Back to top
View user's profile Send private message
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Sat Apr 06, 2013 2:24 pm    Post subject: Reply with quote

Stick a debugger and see if your data is accessed as an int or float over a word/dword/qword.

Given your tests I'm not yet sure the addresses you found are health-related, they may be pointers to the equipped gear or data related to items.
I know we are talking about an online game, but see if changing those values at least changes the displayed health value.

If the values you found are not hp-related, did you disable fast scan when doing your scans? Because if hp's address is unaligned (rare) you might not find it.

Once you've found addresses that hold hp for sure, post several ingame-value vs in-memory-HEX-value correspondences if you can't figure it yourself.
Back to top
View user's profile Send private message
codedemen
How do I cheat?
Reputation: 0

Joined: 06 Apr 2013
Posts: 5

PostPosted: Mon Apr 08, 2013 11:16 am    Post subject: Reply with quote

Thank you for your replies! I found a value that i needed, it is calculated in a function every time is is needed... But Ive got more one problem here:

Code:
SB.exe+15C770 - 55                    - push ebp
SB.exe+15C771 - 8B EC                 - mov ebp,esp
SB.exe+15C773 - 64 A1 00000000        - mov eax,fs:[00000000]
SB.exe+15C779 - 6A FF                 - push FF
SB.exe+15C77B - 68 79E49100           - push SB.exe+51E479
SB.exe+15C780 - 50                    - push eax
SB.exe+15C781 - 64 89 25 00000000     - mov fs:[00000000],esp
SB.exe+15C788 - 83 EC 20              - sub esp,20
SB.exe+15C78B - 56                    - push esi
SB.exe+15C78C - 8B 75 08              - mov esi,[ebp+08]
SB.exe+15C78F - 8B CE                 - mov ecx,esi
SB.exe+15C791 - FF 15 4CF89300        - call dword ptr [SB.exe+53F84C]
SB.exe+15C797 - 83 F8 06              - cmp eax,06
SB.exe+15C79A - 74 44                 - je SB.exe+15C7E0
SB.exe+15C79C - B8 01000000           - mov eax,00000001
SB.exe+15C7A1 - 84 05 F4ACA800        - test [SB.exe+68ACF4],al
SB.exe+15C7A7 - 75 13                 - jne SB.exe+15C7BC
SB.exe+15C7A9 - 09 05 F4ACA800        - or [SB.exe+68ACF4],eax
SB.exe+15C7AF - 68 80D39300           - push SB.exe+53D380
SB.exe+15C7B4 - E8 22373700           - call SB.exe+4CFEDB
SB.exe+15C7B9 - 83 C4 04              - add esp,04
SB.exe+15C7BC - 6A 00                 - push 00
SB.exe+15C7BE - 6A 00                 - push 00
SB.exe+15C7C0 - 68 19530E06           - push 060E5319 : [34044300]
SB.exe+15C7C5 - B9 F1ACA800           - mov ecx,SB.exe+68ACF1
SB.exe+15C7CA - E8 31EAFFFF           - call SB.exe+15B200
SB.exe+15C7CF - 5E                    - pop esi
SB.exe+15C7D0 - 8B 4D F4              - mov ecx,[ebp-0C]
SB.exe+15C7D3 - 64 89 0D 00000000     - mov fs:[00000000],ecx
SB.exe+15C7DA - 8B E5                 - mov esp,ebp
SB.exe+15C7DC - 5D                    - pop ebp
SB.exe+15C7DD - C2 0400               - ret 0004
SB.exe+15C7E0 - 33 C0                 - xor eax,eax
SB.exe+15C7E2 - 89 45 D4              - mov [ebp-2C],eax
SB.exe+15C7E5 - 89 45 D8              - mov [ebp-28],eax
SB.exe+15C7E8 - 89 45 DC              - mov [ebp-24],eax
SB.exe+15C7EB - 89 45 E0              - mov [ebp-20],eax
SB.exe+15C7EE - 66 89 45 E4           - mov [ebp-1C],ax
SB.exe+15C7F2 - 88 45 E6              - mov [ebp-1A],al
SB.exe+15C7F5 - B8 01000000           - mov eax,00000001
SB.exe+15C7FA - 88 45 D6              - mov [ebp-2A],al
SB.exe+15C7FD - 8D 45 E8              - lea eax,[ebp-18]
SB.exe+15C800 - BA 13000000           - mov edx,00000013
SB.exe+15C805 - 50                    - push eax
SB.exe+15C806 - 8B CE                 - mov ecx,esi
SB.exe+15C808 - C7 45 D7 01001C00     - mov [ebp-29],001C0001 : [00000000]
SB.exe+15C80F - 66 89 55 D4           - mov [ebp-2C],dx
SB.exe+15C813 - FF 15 5CF89300        - call dword ptr [SB.exe+53F85C]
SB.exe+15C819 - 8D 4D E8              - lea ecx,[ebp-18]
SB.exe+15C81C - 6A 0A                 - push 0A
SB.exe+15C81E - 51                    - push ecx
SB.exe+15C81F - C7 45 FC 00000000     - mov [ebp-04],00000000
SB.exe+15C826 - FF 15 F4FB9300        - call dword ptr [SB.exe+53FBF4]
SB.exe+15C82C - 83 C4 08              - add esp,08
SB.exe+15C82F - 8D 4D E8              - lea ecx,[ebp-18]
SB.exe+15C832 - 89 45 E3              - mov [ebp-1D],eax
SB.exe+15C835 - C7 45 FC FFFFFFFF     - mov [ebp-04],FFFFFFFF
SB.exe+15C83C - FF 15 10F89300        - call dword ptr [SB.exe+53F810]
SB.exe+15C842 - 0FB7 55 D4            - movzx edx,word ptr [ebp-2C]
SB.exe+15C846 - 8B 0D A0EEA800        - mov ecx,[SB.exe+68EEA0]
SB.exe+15C84C - 52                    - push edx
SB.exe+15C84D - 8D 45 D4              - lea eax,[ebp-2C]
SB.exe+15C850 - 50                    - push eax
SB.exe+15C851 - E8 FA3B0700           - call SB.exe+1D0450
SB.exe+15C856 - 8B 4D F4              - mov ecx,[ebp-0C]
SB.exe+15C859 - 5E                    - pop esi
SB.exe+15C85A - 64 89 0D 00000000     - mov fs:[00000000],ecx
SB.exe+15C861 - 8B E5                 - mov esp,ebp
SB.exe+15C863 - 5D                    - pop ebp
SB.exe+15C864 - C2 0400               - ret 0004


This is a function. Can somebody please explain how to determinate wich parameters it needs?
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

Joined: 09 May 2003
Posts: 25831
Location: The netherlands

PostPosted: Mon Apr 08, 2013 11:22 am    Post subject: Reply with quote

"ret 0004" means it needs one parameter

The parameter is stored in [ebp+8]

Code:

SB.exe+15C78C - 8B 75 08              - mov esi,[ebp+08]
SB.exe+15C78F - 8B CE                 - mov ecx,esi
SB.exe+15C791 - FF 15 4CF89300        - call dword ptr [SB.exe+53F84C]

I'm not sure what type the parameter is but my guess it's a class pointer

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Mohsen
Advanced Cheater
Reputation: 1

Joined: 04 Apr 2013
Posts: 69
Location: PE

PostPosted: Mon Apr 08, 2013 11:24 am    Post subject: Reply with quote

Function parameters are mostly pointers not constant and all of them are pushed into stack before a call is made to that function.

And no-one can tell you what to send as parameter, either no-one is going to find out the pointers for you.

Learn x86 instruction set before touching this area.
Back to top
View user's profile Send private message
codedemen
How do I cheat?
Reputation: 0

Joined: 06 Apr 2013
Posts: 5

PostPosted: Tue Apr 09, 2013 4:10 pm    Post subject: Reply with quote

Dark Byte wrote:
"ret 0004" means it needs one parameter

The parameter is stored in [ebp+8]

Code:

SB.exe+15C78C - 8B 75 08              - mov esi,[ebp+08]
SB.exe+15C78F - 8B CE                 - mov ecx,esi
SB.exe+15C791 - FF 15 4CF89300        - call dword ptr [SB.exe+53F84C]

I'm not sure what type the parameter is but my guess it's a class pointer


thank you for your reply! As far as I figured out your guess war right - the parameter is really a class pointer. if this ponter value is 001498b0 what should I pass to the function? the pointer position? and if yes then how - Ive already tried a lot of methods, but my app is still crashes...
Here is my call:


Code:

push ebp
mov ebp, [001498b0]
call 0055c770
pop ebp
ret 0


Thank You very much for your time and help! I have really bever done such things before... I am experienced in obfuscation, encription, can easily bypass systems like themida, etc, but as far as I could understand in such things like writing bots for big games I am still newbie.
Back to top
View user's profile Send private message
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Tue Apr 09, 2013 5:29 pm    Post subject: Reply with quote

Err...Correct me if I'm wrong, but what you did is:
1-find your health's address
2-find the function that writes to this address.
3-now you want to force-call it so that it updates your health and I assume you want to log the health in the process for your bot.

If the above is correct, you're not taking the right/easiest approach. Instead find what functions accesses your health and hook the one with the highest hit count.
Or if the function you found is the only one to write your hp, just log the hp value each time the game writes it, no need to manually trigger an update.
Back to top
View user's profile Send private message
codedemen
How do I cheat?
Reputation: 0

Joined: 06 Apr 2013
Posts: 5

PostPosted: Wed Apr 10, 2013 6:13 am    Post subject: Reply with quote

Gniarf wrote:
Err...Correct me if I'm wrong, but what you did is:
1-find your health's address
2-find the function that writes to this address.
3-now you want to force-call it so that it updates your health and I assume you want to log the health in the process for your bot.

If the above is correct, you're not taking the right/easiest approach. Instead find what functions accesses your health and hook the one with the highest hit count.
Or if the function you found is the only one to write your hp, just log the hp value each time the game writes it, no need to manually trigger an update.

Uhm... This functon is not HP related. Ive already found all basic values such as hp\sp\coordinates\skills etc... and Now I want to manually trigger this function to make some action. As soon as I only make an experiment for now - this function only shows message on the ingame screen based on value, that is entered in a textbox...
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine 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