I don't get the question
Hi
I've recently come into quotes I don't understand, could somebody help me?
Things I've run into and would like to know what they mean(and how they work)
As in: A game uses a struct/class player object
This object describes the player's:
1.location (x,y,z)
2.health
3.stamina
4.number of bullets
5.number of granades
etc...
I've seen various examples of these structs (which appeard to be coded from scratch) being used to modify amost everything modefiable (aka: using these structs to change stamina, or obtaining the current health, teleporting by modefying the x,y,z's aimbot's and more)
So my question is how do these things work, Examples of structs I've seen:
By Gellin:
Another example:Code:377B0858 // Local Pointer for CA NA class Main; class Info; class Stats; class WepInfo; class Something; class Main { public: Info* goToInfoClass; //0000 }; class Info { public: char unknown0[8]; __int32 Unknown1; //0008 __int32 iCurrentHealth; //000C char unknown2[4]; __int32 iMaxHealth; //0014 char unknown3[4]; WepInfo* goToWepInfo;//001C Something* goToSomething; //0020 char unknown4[348]; float fStamina; //0180 char unknown5[8]; __int32 iWeaponSlotInUse; //018C float fCameraSomething; //0190 float fCameraSomething2; //0194 float fCameraSomething3; //0198 char unknown6[32]; Stats* goToStats; //01BC }; class WepInfo { public: __int32 iBackPackABulletsLeft; //0000 __int32 i2ndaryBulletsLeft; //0004 __int32 Unknown0; //0008 __int32 iGrenadesLeft; //000C __int32 iBackPackBBulletsLeft; //0010 }; class Stats { public: char unknown0[16]; char szLocalNameChangesInKill[16]; //0010 char unknown1[12]; __int32 iKills; //002C __int32 iDeaths; //0030 char unknown2[44]; __int32 iHeadShots; //0060 }; class Something { public: BYTE bIsAlive; //0000 };
Then the next thing I see is this:Code:0x3776FBC4 class Main { public: LocalInfo* gotoNextClass; //0000 }; class LocalInfo { public: char unknown0[44]; __int32 iAction; //002C __int32 1Alive2Dead; //0030 char unknown1[248]; MoreInfo* gotoNextClass2; //012C char unknown2[744]; float Stamina; //0418 }; class MoreInfo { public: char unknown0[200]; float fLocalX; //00C8 float fLocalY; //00CC float fLocalZ; //00D0 };
*note* that I do understand (or think I do, correct me if I'm wrong) what this person is doing:Code:LocalInfo *pLocal = *(LocalInfo**)0x3776FBC4;
He creates an LocalInfo object (pLocal / pointer to localinfo) in free store (pointer) Which he than points (using the address) to the real struct used by the game
Then he would be able to modify his in-game stats doing this:
Am I correct???Code:pLocal->Stamina = somebignumber
And what would this (0x3776FBC4) address be?
Is it an address to some master class wich holds all other things together?
How was the coder able to create the struct he then uses to modify his in-game stats?
Exactly how does this code work?
Would this code still work if I for example remove a member from one of these objects (Problems with using a default constructer (is that what is used))??
Game: CaEu
Game's engine: LilithTech jupiter engine
-SCHiM
is this statement correct:
And the other questions:*note* that I do understand (or think I do, correct me if I'm wrong) what this person is doing:
He creates an LocalInfo object (pLocal / pointer to localinfo) in free store (pointer) Which he than points (using the address) to the real struct used by the game
Then he would be able to modify his in-game stats doing this:
And what would this (0x3776FBC4) address be?
How would I obtain it??
Is it an address to some master class wich holds all other things together?
How was the coder able to create the struct he then uses to modify his in-game stats?
Exactly how does this code work?
Would this code still work if I for example remove a member from one of these objects (Problems with using a default copy constructor(is that what is used))??
I'm pretty sure there is a much easier way 'cause my way takes ages, sort of.
Say you have this structure.
[php]
struct Character {
int x,y,z;
int HP;
};
[/php]
You can easily get the HP address right? Right..
After you get it, use CE and do a pointer scan for that address, cause structures basically use pointers to access members. Now get the size of the structure and subtract the amount of bytes from the start of the structure to the HP. In this case The structure size is 16 and the HP starts at the 12th byte. Now in your massive list of addresses from the pointer scan, just check every address that has 0xFFFFFFFF + 12 ( change to hex ).
The address you have is the base address for the structure/class.
That is probably the most inefficient method possible cause you have to try tons of addresses.... Mass trial and error..
OH SHIT, I didn't read properly. Completely irrelevant...
Last edited by Void; 07-15-2010 at 02:24 AM.
I'm studying this bit of reversing right now.
Don't believe 100% of what I say because there's always a chance that I'm wrong.
I believe this is the pointer of the class. So usually it'll be PlayerPointer, PlayerBase, ClientBase, or anything relating to the structure concerning the client. (This may be wrong and there may be a lot more to this. I am not sure since I've only covered ESP which is done by the structure and class of client and player).Code:0x3776FBC4
As for the
In a nutshell, I like to think of it as grabbing a handful of jelly beans out of a large bag and laying them out in an organized fashion on the table.(AKA Class and Struct). Then you decide what you want to eat. (This is what you chose to modify).He creates an LocalInfo object (pLocal / pointer to localinfo) in free store (pointer) Which he than points (using the address) to the real struct used by the game
Then he would be able to modify his in-game stats doing this:
StructBuild/Reclass
You stuff in the addy, hit add x a few times, then play around with types untill you notice something you think to recognize
Ah we-a blaze the fyah, make it bun dem!
Reclass/Structbuild attached
Ah we-a blaze the fyah, make it bun dem!
armorfid (06-01-2012),[MPGH]Flengo (02-24-2012),LillilateX (08-06-2015),schim (07-15-2010)
It works!!!! hahaha! it doesn't d/c !!! THANK YOU!!!
my version did d/c wasn't able to use it...
(then again, could you please explain that what you were talking about earlyer??)
Last edited by schim; 07-15-2010 at 03:59 AM.
Just point it to an addy you want the struct of(e.g. if u know playerinfo is at 0x1333337 just point it to that), then hit the add 10 or add 64 thingie a few times and start changing types trying to find out what stff does. then just give em a name, save, and tell it to generate C++ code.
Ah we-a blaze the fyah, make it bun dem!
ғᴜᴋᴏᴊʀ (07-15-2010)