| View previous topic :: View next topic |
| Author |
Message |
rafiport Newbie cheater
Reputation: 0
Joined: 12 Sep 2009 Posts: 10
|
Posted: Sat Mar 30, 2013 12:39 pm Post subject: [Help] strange value |
|
|
Hey,
well while using cheat engine for a long time i fought about learning a lot more after finding out more functions of it kinda newbi then i guess but well got a few questions (i am playing right now starcraft 2 )
---------------------------------------------------------------------------------------------------------
1) i have found a static value but the value it self is strange
example:
1.0492030592E-39 = 200 in game
while
1.0492030592E-41 = 0
i would wanna know whay is the minus in the end
ANSWERED:
| Dark Byte wrote: | Just read through the scripts. Sometimes they have comments explaining why they do stuff
Anyhow, the floating point values are stored as decimals multiplied by 4096 |
and i would wanna try and find a way to get this value to all characters if possible like all buildings have full health or should i do some thing else to make it work?
---------------------------------------------------------------------------------------------------------
2) i found an un-static value of a-% its float but it moves betweent 0.00-1.00 (well i wanna try and make instant building)
i couldn't find any other values of time left to build so its my only guess
any way its an un-static value and this value changes back to the original % time
any ideas how i can track the original address?
Last edited by rafiport on Sat Mar 30, 2013 6:38 pm; edited 1 time in total |
|
| Back to top |
|
 |
daspamer Grandmaster Cheater Supreme
Reputation: 54
Joined: 13 Sep 2011 Posts: 1588
|
Posted: Sat Mar 30, 2013 1:41 pm Post subject: |
|
|
Is the address of the values type is double/float?
Check the addresses.. to get the full value of float make sure the address ends with this way:
XXXXXX0, XXXXXX4, XXXXXX8, XXXXXXC, XXXXX10, XXXXX14 and etc.
Double addresses always end this way
XXXXXX0, XXXXXX8, XXXXX10, XXXXX18 and etc.
If its not like the adresses above you can try to correct by adding/reducing from the address... you should try to view them as 4 byte, Double and Float.
About instant building, its possibly that they're dynamic/encrypted (well for me its the same.).
If you found the timer that is between 0.00 - 1.00 you can force it to be 1.00 via autoassembler, and then you should have instant building, unless its visual only, for displaying the upgrade progress.
P.S
I got feeling that the game you're trying to hack is facebook game? and made by Kixeye? .
_________________
I'm rusty and getting older, help me re-learn lua. |
|
| Back to top |
|
 |
rafiport Newbie cheater
Reputation: 0
Joined: 12 Sep 2009 Posts: 10
|
Posted: Sat Mar 30, 2013 5:15 pm Post subject: |
|
|
Nah its not a facebook game its an strategy pc game a well known one theres a section on the forum of this game but i think it died a long time ago
any way,
the address of the value is float
i tried to changeit to 4 bytes it just jumps by random numbers then in some point (i guess when for example -41 becomes -40) the value goes back to zero and recounts
but any way i was more curiouse whay is there a - in the end of the value
ill update soon in what form the address ends its static for each unit so i need to find it again
address :
value :
about the instant building i think i found the visual addresses but i think theres a way to find out what accesses those addresses the non visual ones but i am only guessing
|
|
| Back to top |
|
 |
Gniarf Grandmaster Cheater Supreme
Reputation: 43
Joined: 12 Mar 2012 Posts: 1285
|
Posted: Sat Mar 30, 2013 5:27 pm Post subject: |
|
|
| Could you post several examples of the hex value of this variable with the corresponding value ingame? The float interpretation in cheat engine doesn't help me, but I might be able to understand something out of the hex value or copy pasts from the memory viewer.
|
|
| Back to top |
|
 |
rafiport Newbie cheater
Reputation: 0
Joined: 12 Sep 2009 Posts: 10
|
Posted: Sat Mar 30, 2013 5:47 pm Post subject: |
|
|
instant building:
3 non-static addresses that are changing back to the original value
hex info:
first value:
| Code: | EAX=090BA5FC
EBX=00000000
ECX=3F000000
EDX=3F00AAAA
ESI=2EFA466C
EDI=2EFA4874
EBP=07AC98DC
ESP=07AC9838
EIP=011D62D2
Probable base pointer =090BA5FC
011D62C2 - mov eax,[esi+000001BC]
011D62C8 - mov ecx,[ebp-28]
011D62CB - mov [eax+ebx*8+00000094],edx
011D62D2 - mov edx,[ebp-0C]
011D62D5 - mov [eax+ebx*8+00000098],ecx
|
seconde value:
| Code: | EAX=090BA5FC
EBX=00000000
ECX=3F800000
EDX=3F1CAAAA
ESI=2EFA466C
EDI=2EFA4874
EBP=07AC98DC
ESP=07AC9838
EIP=011D62EC
Probable base pointer =090BA5FC
011D62DC - mov eax,[esi+000001BC]
011D62E2 - mov ecx,[ebp-08]
011D62E5 - mov [eax+ebx*8+000000D0],edx
011D62EC - mov [eax+ebx*8+000000D4],ecx
011D62F3 - mov ecx,[edi+24]
|
third value:
| Code: | EAX=00000000
EBX=00000000
ECX=2EFA466C
EDX=2EFA4888
ESI=3F1CAAAA
EDI=3F800000
EBP=07AC8DE4
ESP=07AC8DDC
EIP=011D518C
Probable base pointer =2EFA4888
011D5183 - mov [edx+08],edi
011D5186 - mov esi,[esi+0C]
011D5189 - mov [edx+0C],esi
011D518C - mov edx,[ecx+00000198]
011D5192 - and dword ptr [eax+edx+04],EF
|
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25832 Location: The netherlands
|
Posted: Sat Mar 30, 2013 6:05 pm Post subject: |
|
|
I think he meant what the value in the game shown is stored as hex in memory
E.g 100 might be stored as 00 40 60 00, and knowing that may lead to figuring out how it is stored
Also, if health show both the current and max in case it's actually stored as damage taken (e.g 240 hp with max of 250 might be stored as 10)
_________________
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 |
|
 |
Gniarf Grandmaster Cheater Supreme
Reputation: 43
Joined: 12 Mar 2012 Posts: 1285
|
Posted: Sat Mar 30, 2013 6:11 pm Post subject: |
|
|
Ah sorry, I was speaking about the static weird value for which you said "1.0492030592E-39 = 200 in game" and by hex values I meant something like "100 ingame -> 0x12345678 in cheat engine main windows or 78 56 34 12 in the memory viewer".
What you posted are the codes that write to your variables, and the corresponding register states. Yes the registers are in hex, and yes in the worst case scenario I can get the information I want from the registers+code... but you posted samples for the build time.
|
|
| Back to top |
|
 |
rafiport Newbie cheater
Reputation: 0
Joined: 12 Sep 2009 Posts: 10
|
Posted: Sat Mar 30, 2013 6:24 pm Post subject: |
|
|
value :
| Code: | EAX=000001D5
EBX=00000090
ECX=000C8000
EDX=0793BA60
ESI=02B14700
EDI=00000145
EBP=0793BA24
ESP=0793BA18
EIP=00C32F6D
Probable base pointer =02B14700
00C32F62 - lea eax,[ebp+0C]
00C32F65 - mov eax,[eax]
00C32F67 - mov [esi+00000118],eax
00C32F6D - cmp eax,edi
00C32F6F - je SC2.AssertAndCrash+2CAB91
|
if i got it right you want some of this examples?:
note: value can't get higher over the max
(current value/max value)
value in game:200/200
value in CE(float):1.147943702E-39
value in CE(double):4.04738577073149E-318
value in CE(4 bytes):819200
value in game:150/200
value in CE(float):8.641863681E-40
value in CE(double):3.0469226005288E-318
value in CE(4 bytes):616704
value in game:100/200
value in CE(float):5.753395183E-40
value in CE(double):2.02851496606916E-318
value in CE(4 bytes):410576
value in game:101/200
value in CE(float):5.813931277E-40
value in CE(double):414896
value in CE(4 bytes):2.0498586019695E-318
value in game:0/200
value in CE(float):4.554220009E-43
value in CE(double):1.60571334898405E-321
value in CE(4 bytes):325
hmm i notice a strange thing in this game
as i can see 1=4096 (but its a float so it should be 1.000000...)
any way the 4096 appears in my units count the same
current units * 4096 = address
i think ill try a few more things
Last edited by rafiport on Sat Mar 30, 2013 6:29 pm; edited 1 time in total |
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25832 Location: The netherlands
|
Posted: Sat Mar 30, 2013 6:27 pm Post subject: |
|
|
Also, check this table:
http://forum.cheatengine.org/viewtopic.php?t=514168
probably for a completely unrelated game, but the table posted here has an instant build script on a game that uses a non-standard method of floating point values as well. Perhaps the general idea used in this script might help
_________________
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 |
|
 |
rafiport Newbie cheater
Reputation: 0
Joined: 12 Sep 2009 Posts: 10
|
Posted: Sat Mar 30, 2013 6:32 pm Post subject: |
|
|
thanks byte but unfortunaly i am a newb with the scripts...
i tried to learn it but it takes a time for me to learn it even fought i finished the tutorial this game has advanced scripting (well thats what i think)
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25832 Location: The netherlands
|
Posted: Sat Mar 30, 2013 6:36 pm Post subject: |
|
|
Just read through the scripts. Sometimes they have comments explaining why they do stuff
Anyhow, the floating point values are stored as decimals multiplied by 4096
_________________
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 |
|
 |
rafiport Newbie cheater
Reputation: 0
Joined: 12 Sep 2009 Posts: 10
|
Posted: Sat Mar 30, 2013 6:49 pm Post subject: |
|
|
thanks for the answer about whay are they stored like it.
any way got more 2 questions to go
about the instant build .. would be more challenging and fun finding it the hard way without scripts or i must make a script
and about the god mod ( i am working on it now)
i wanna find an address if possible that will freeze all units health
and not doing it 1 by 1
right now i am working on the god mode what am i going to try got no idea screwing with it a little hopefuly some good tips will come by
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25832 Location: The netherlands
|
Posted: Sat Mar 30, 2013 7:02 pm Post subject: |
|
|
Find what writes health.
Then find a way to distinguish between enemy and player.
To do that find the addresses that the code you found accesses and then use dissect structure to compare enemy and your own
Then in the code injection script set the damage to 0 when it's the player
Also, i'm not sure if it's always the case, but if you set the damage taken to above the max health the unit becomes immortal
And if you feel like cheating on doing it yourself: http://forum.cheatengine.org/viewtopic.php?p=5462302#5462302
_________________
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 |
|
 |
Gniarf Grandmaster Cheater Supreme
Reputation: 43
Joined: 12 Mar 2012 Posts: 1285
|
Posted: Sat Mar 30, 2013 9:34 pm Post subject: |
|
|
| rafiport wrote: | hmm i notice a strange thing in this game
as i can see 1=4096 (but its a float so it should be 1.000000...) | You figured it out yourself, congratulation!
Looks like I'm no longer needed here, then.
|
|
| Back to top |
|
 |
|