questions zu decrypt and basepointer

12/13/2009 17:40 Tatzuya#1
first of all hi and thx for all the great tutorials here
i'm a noob at this but i read quite a few tutorials
i'm german but i'm still posting in english in hope for more ppl to be able to help :)
its ok if you answer in german..or english..i dont care ;)

now to my questions:
the game is Grand Fantasia but i guess that this thread might help for other games too

1.
i tried to get the basepointer for hp, mp,...
to do this i followed the guide (cheat engine) from this site step by step and i find the memory address for the values but if i search for the address that accesses it (aka pointer) the game closes right away and i'm not getting any additional infos.
then i tried to find the base pointer with tsearch which led to the same problem.
so my guess is that the game closes whenever a debugger tries to access the address or something

2.
i cant find the memory for the x, y coordianates
the game shows the coordiantes in the map so i tried to search for the values then move...didnt work
then i tried searching for unknown value and then for "has changed", "has not changed" and ended up failing again

3.
i also tried to use wpe to analyse the packets.
i didnt went further than the log-in cuz i couldnt decrypt it
how i tried it:
i took the very first packed that was sent to the server; took a look at the ascii which made it obvious that its encrypted.
so i converted my login ID into hex and used my calculator:
1st bit of the packet XOR 1st bit of my ID = a
2nd bit of the packet XOR 2nd bit of my ID = b
if the result of both is different (if a != b) then i didnt find my decryption key
then:
2nd bit of the packet XOR 1st bit of my ID
3rd bit of the packet XOR 2nd bit of my ID
if not the same:
3nd bit of the packet XOR 1st bit of my ID
4th bit of the packet XOR 2nd bit of my ID
and so on

well since i'm posting this here you know that i couldnt find the key to decrypt it
and i dont know how to do this other than that

any help in german or englisch is much appreciated ;)
12/13/2009 18:49 MoepMeep#2
2. allready tried float?
12/13/2009 19:02 Tatzuya#3
no. i know what a float is but i dont know what it has to do with decrypting

Edit: would be nice if you could link me to a tutorial for it or just explain here pls
12/13/2009 19:13 MoepMeep#4
Quote:
Originally Posted by Tatzuya View Post
no. i know what a float is but i dont know what it has to do with decrypting

Edit: would be nice if you could link me to a tutorial for it or just explain here pls
sorry, typo <.<
12/13/2009 19:31 Tatzuya#5
i guess you mean searching for float instead of for 4bit?
if yes, i dont understand why cuz i found the memory address already
i still tried searching for float just now and i dont find the memory address that way which makes sense imho
hope i didnt missunderstand you ^^
12/13/2009 19:54 MoepMeep#6
Well, you said you couldn't find x/y adress. They are float in some games, even if they look like integers =P
12/13/2009 19:59 Tatzuya#7
oh geez my fault for some reason i thought i talked about the hp,... values
sorry and thx i'll try now

Edit: tried and cant find even tried with double
12/15/2009 15:57 Gianotti#8
Quote:
Originally Posted by Tatzuya View Post
oh geez my fault for some reason i thought i talked about the hp,... values
sorry and thx i'll try now

Edit: tried and cant find even tried with double
if u want to look for the hp or any other stats you need to look for 4bytes. if it is a position ( 2030.029302934 ) like that you need to look for a float because most time the developers take the float type. the reason is the bigger scope of the type : here u see it :

value int: 12,009335454656757|776574
value float : 12,009335454656757776574

the last 6 of these numbers are no more in the scope. if you want to make to compare these two values then the compiler says : both are equal but their isnt. you see it

vom thema abgekommen XDDDD
12/15/2009 20:28 MoepMeep#9
Quote:
Originally Posted by Gianotti View Post
if u want to look for the hp or any other stats you need to look for 4bytes. if it is a position ( 2030.029302934 ) like that you need to look for a float because most time the developers take the float type. the reason is the bigger scope of the type : here u see it :

value int: 12,009335454656757|776574
value float : 12,009335454656757776574

the last 6 of these numbers are no more in the scope. if you want to make to compare these two values then the compiler says : both are equal but their isnt. you see it

vom thema abgekommen XDDDD
int mit nachkommastellen? Hab ich irgendwas verpasst? =D
12/15/2009 21:11 Gianotti#10
Quote:
Originally Posted by MoepMeep View Post
int mit nachkommastellen? Hab ich irgendwas verpasst? =D
whuaaat . ich glaube ich habe irgendwas verwechselt XD. ich glaube das war der vergleich double zu float oder o.0?
12/15/2009 21:36 MoepMeep#11
Quote:
Originally Posted by Gianotti View Post
whuaaat . ich glaube ich habe irgendwas verwechselt XD. ich glaube das war der vergleich double zu float oder o.0?
schon eher, aber frag mich nicht wieviele stellen genau^^
12/15/2009 22:21 Tatzuya#12
yeah i wondered about that too but had no time to reply yet
(nur 6 nachkomma stellen unterschied zwischen fload und double? scheint ein bischen sehr wenig)

i still didnt make progress on any of the 3 points btw
12/23/2009 00:52 Samsusi#13
I've got same problem

I find many Pointers but not the BasePointer

EDIT:
Ok I solved the problem with HP but if I try to resolve the name its just gives me the first 4 chars

$Process = ProcessExists("GrandFantasia.exe")
$Mem_Open = _MemoryOpen($Process)
$Mem_Address5 = 0x00980DCC ;players name
$Mem_Read5 = _MemoryRead($Mem_Address5, $Mem_Open)

GUICtrlSetData($txt_test,BinaryToString(Binary($Me m_Read5),4))

any idea?
12/24/2009 03:11 Tatzuya#14
how did you solve the problem with the HP?
found the basepointer? how?
12/24/2009 11:03 MoepMeep#15
Quote:
Originally Posted by Samsusi View Post
I've got same problem

I find many Pointers but not the BasePointer

EDIT:
Ok I solved the problem with HP but if I try to resolve the name its just gives me the first 4 chars

$Process = ProcessExists("GrandFantasia.exe")
$Mem_Open = _MemoryOpen($Process)
$Mem_Address5 = 0x00980DCC ;players name
$Mem_Read5 = _MemoryRead($Mem_Address5, $Mem_Open)

GUICtrlSetData($txt_test,BinaryToString(Binary($Me m_Read5),4))

any idea?

Well, I never dealed with autoit, but I guess it has to do with the 4 at the end ;)