Combat arms is quite easy so many useful strings:
So upon my first glance at the game i look for string such as player, client ,team etc.
Code:
ASCII "CCBAClientInfoMgr::AddClient %s End"
Wow a clientInfomanager and its a class , its a thiscall so typical try to find references to it and see if it is called by another function from another class.I tried this nothing sudden im sure i could have traced it back but im lazy and was looking for something quick!
So looking at this function i see other functions from the ClientInfoMgr are called in here. I will break it down line by line by importance!
Code:
3715F681 8BD9 MOV EBX,ECX// ecx = this = Clientinfomgr pointer
3715F6A3 6A 00 PUSH 0
3715F6A5 57 PUSH EDI
3715F6A6 8BCB MOV ECX,EBX //this pointer is set by the ebx from earlier
3715F6A8 E8 F3E2FFFF CALL cshell.3715D9A0//this function is part of the clientinfo mgr
now that you know that 3715D9A0 is a function in the clientinfomgr right click find references to it. I click around looking real quick for another this aka Clientinfomgr setting it a static one which you can see here at
Code:
3737DCD8 8B0D 683E7F37 MOV ECX,DWORD PTR DS:[377F3E68] ; cshell.3780CE68
3737DCDE 50 PUSH EAX
3737DCDF E8 BCFCDDFF CALL cshell.3715D9A0
now you know 377F3E68 is a static pointer to the Clientinfomgr.In reclass go to it from their i basically eye ball perked everything...waiting for someone to die, checking pointers etc. The only thing i had to see in the game was finding refrence to 377F3E68 and seeing what appeard a player loop with a pointer setting +264 which is the playerInfo* next