Raised This Month: $51 Target: $400
 12% 

Reverse Engineering from linux libraries


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 05-28-2013 , 09:30   Reverse Engineering from linux libraries
Reply With Quote #1

What the hell, hello

I was looking around for a way to automatize extraction of symbols and types from .so files.

First I've tried a test version of IDA 6.4 and (with my besst cyber-hacker-friend Arkshine) we get the correct types from engine and cs.

What's next?

IDA 6.4 uses dwarf information to build types library.

So let's find some linux command line tool to do the job

First you will find dwarfdump. Put it on recycler-bin.

Then you can find dwarves. A set of tools to read dwarf information.
We use dwarves 1.10

Time for real examples

1- open linux terminal
2- go to your game folder:
PHP Code:
# cd /opt/games/cs16 
3- get netadr_s struct
PHP Code:
# pahole engine_i486.so -C netadr_s
struct netadr_s {
        
netadrtype_t               type;                 /*     0     4 */
        
unsigned char              ip[4];                /*     4     4 */
        
unsigned char              ipx[10];              /*     8    10 */
        
short unsigned int         port;                 /*    18     2 */

        /* size: 20, cachelines: 1, members: 4 */
        /* last cacheline: 20 bytes */
}; 
4- Show me your happy face
5- Now it's time to have an orgasmic happyness
6- Get CBasePlayer from cs.so
PHP Code:
class CBasePlayer : public CBaseMonster {
        
enum sbar_data {
                
SBAR_ID_TARGETTYPE 1,
                
SBAR_ID_TARGETNAME 2,
                
SBAR_ID_TARGETHEALTH 3,
                
SBAR_END 4,
        };

        
enum {
                
MaxLocationLen 32,
        };

        
enum MusicState {
                
SILENT 0,
                
CALM 1,
                
INTENSE 2,
        };

public:

        
/* class CBaseMonster        <ancestor>; */      /*     0     0 */

        /* XXX 404 bytes hole, try to pack */

        /* --- cacheline 6 boundary (384 bytes) was 20 bytes ago --- */
        
int                        random_seed;          /*   404     4 */
        
short unsigned int         m_usPlayerBleed;      /*   408     2 */

        /* XXX 2 bytes hole, try to pack */

        
class EHANDLE             m_hObserverTarget;     /*   412     8 */
        
float                      m_flNextObserverInput/*   420     4 */
        
int                        m_iObserverWeapon;    /*   424     4 */
        
int                        m_iObserverC4State;   /*   428     4 */
        
bool                       m_bObserverHasDefuser/*   432     1 */

        /* XXX 3 bytes hole, try to pack */

        
int                        m_iObserverLastMode;  /*   436     4 */
        
float                      m_flFlinchTime;       /*   440     4 */
        
float                      m_flAnimTime;         /*   444     4 */
        /* --- cacheline 7 boundary (448 bytes) --- */
        
bool                       m_bHighDamage;        /*   448     1 */

        /* XXX 3 bytes hole, try to pack */

        
float                      m_flVelocityModifier/*   452     4 */
        
int                        m_iLastZoom;          /*   456     4 */
        
bool                       m_bResumeZoom;        /*   460     1 */

        /* XXX 3 bytes hole, try to pack */

        
float                      m_flEjectBrass;       /*   464     4 */
        
int                        m_iKevlar;            /*   468     4 */
        
bool                       m_bNotKilled;         /*   472     1 */

        /* XXX 3 bytes hole, try to pack */

        
enum TeamName              m_iTeam;              /*   476     4 */
        
int                        m_iAccount;           /*   480     4 */
        
bool                       m_bHasPrimary;        /*   484     1 */

        /* XXX 3 bytes hole, try to pack */

        
float                      m_flDeathThrowTime;   /*   488     4 */
        
int                        m_iThrowDirection;    /*   492     4 */
        
float                      m_flLastTalk;         /*   496     4 */
        
bool                       m_bJustConnected;     /*   500     1 */
        
bool                       m_bContextHelp;       /*   501     1 */

        /* XXX 2 bytes hole, try to pack */

        
enum JoinState             m_iJoiningState;      /*   504     4 */
        
class CBaseEntity *        m_pIntroCamera;       /*   508     4 */
        /* --- cacheline 8 boundary (512 bytes) --- */
        
float                      m_fIntroCamTime;      /*   512     4 */
        
float                      m_fLastMovement;      /*   516     4 */
        
bool                       m_bMissionBriefing;   /*   520     1 */
        
bool                       m_bTeamChanged;       /*   521     1 */

        /* XXX 2 bytes hole, try to pack */

        
enum ModelName             m_iModelName;         /*   524     4 */
        
int                        m_iTeamKills;         /*   528     4 */
        
int                        m_iIgnoreGlobalChat;  /*   532     4 */
        
bool                       m_bHasNightVision;    /*   536     1 */
        
bool                       m_bNightVisionOn;     /*   537     1 */

        /* XXX 2 bytes hole, try to pack */

        
class Vector              m_vRecentPath[20];     /*   540   240 */
        /* --- cacheline 12 boundary (768 bytes) was 12 bytes ago --- */
        
float                      m_flIdleCheckTime;    /*   780     4 */
        
float                      m_flRadioTime;        /*   784     4 */
        
int                        m_iRadioMessages;     /*   788     4 */
        
bool                       m_bIgnoreRadio;       /*   792     1 */
        
bool                       m_bHasC4;             /*   793     1 */
        
bool                       m_bHasDefuser;        /*   794     1 */
        
bool                       m_bKilledByBomb;      /*   795     1 */
        
class Vector              m_vBlastVector;        /*   796    12 */
        
bool                       m_bKilledByGrenade;   /*   808     1 */

        /* XXX 3 bytes hole, try to pack */

        
class CHintMessageQueue   m_hintMessageQueue;    /*   812    24 */
        /* --- cacheline 13 boundary (832 bytes) was 4 bytes ago --- */
        
int32                      m_flDisplayHistory;   /*   836     4 */
        
enum _Menu                 m_iMenu;              /*   840     4 */
        
int                        m_iChaseTarget;       /*   844     4 */
        
class CBaseEntity *        m_pChaseTarget;       /*   848     4 */
        
float                      m_fCamSwitch;         /*   852     4 */
        
bool                       m_bEscaped;           /*   856     1 */
        
bool                       m_bIsVIP;             /*   857     1 */

        /* XXX 2 bytes hole, try to pack */

        
float                      m_tmNextRadarUpdate;  /*   860     4 */
        
class Vector              m_vLastOrigin;         /*   864    12 */
        
int                        m_iCurrentKickVote;   /*   876     4 */
        
float                      m_flNextVoteTime;     /*   880     4 */
        
bool                       m_bJustKilledTeammate/*   884     1 */

        /* XXX 3 bytes hole, try to pack */

        
int                        m_iHostagesKilled;    /*   888     4 */
        
int                        m_iMapVote;           /*   892     4 */
        /* --- cacheline 14 boundary (896 bytes) --- */
        
bool                       m_bCanShoot;          /*   896     1 */

        /* XXX 3 bytes hole, try to pack */

        
float                      m_flLastFired;        /*   900     4 */
        
float                      m_flLastAttackedTeammate/*   904     4 */
        
bool                       m_bHeadshotKilled;    /*   908     1 */
        
bool                       m_bPunishedForTK;     /*   909     1 */
        
bool                       m_bReceivesNoMoneyNextRound/*   910     1 */

        /* XXX 1 byte hole, try to pack */

        
int                        m_iTimeCheckAllowed;  /*   912     4 */
        
bool                       m_bHasChangedName;    /*   916     1 */
        
char                       m_szNewName[32];      /*   917    32 */
        
bool                       m_bIsDefusing;        /*   949     1 */

        /* XXX 2 bytes hole, try to pack */

        
float                      m_tmHandleSignals;    /*   952     4 */
        
class CUnifiedSignals     m_signals;             /*   956     8 */
        /* --- cacheline 15 boundary (960 bytes) was 4 bytes ago --- */
        
edict_t *                  m_pentCurBombTarget;  /*   964     4 */
        
int                        m_iPlayerSound;       /*   968     4 */
        
int                        m_iTargetVolume;      /*   972     4 */
        
int                        m_iWeaponVolume;      /*   976     4 */
        
int                        m_iExtraSoundTypes;   /*   980     4 */
        
int                        m_iWeaponFlash;       /*   984     4 */
        
float                      m_flStopExtraSoundTime/*   988     4 */
        
float                      m_flFlashLightTime;   /*   992     4 */
        
int                        m_iFlashBattery;      /*   996     4 */
        
int                        m_afButtonLast;       /*  1000     4 */
        
int                        m_afButtonPressed;    /*  1004     4 */
        
int                        m_afButtonReleased;   /*  1008     4 */
        
edict_t *                  m_pentSndLast;        /*  1012     4 */
        
float                      m_flSndRoomtype;      /*  1016     4 */
        
float                      m_flSndRange;         /*  1020     4 */
        /* --- cacheline 16 boundary (1024 bytes) --- */
        
float                      m_flFallVelocity;     /*  1024     4 */
        
int                        m_rgItems[4];         /*  1028    16 */
        
int                        m_fNewAmmo;           /*  1044     4 */
        
unsigned int               m_afPhysicsFlags;     /*  1048     4 */
        
float                      m_fNextSuicideTime;   /*  1052     4 */
        
float                      m_flTimeStepSound;    /*  1056     4 */
        
float                      m_flTimeWeaponIdle;   /*  1060     4 */
        
float                      m_flSwimTime;         /*  1064     4 */
        
float                      m_flDuckTime;         /*  1068     4 */
        
float                      m_flWallJumpTime;     /*  1072     4 */
        
float                      m_flSuitUpdate;       /*  1076     4 */
        
int                        m_rgSuitPlayList[4];  /*  1080    16 */
        /* --- cacheline 17 boundary (1088 bytes) was 8 bytes ago --- */
        
int                        m_iSuitPlayNext;      /*  1096     4 */
        
int                        m_rgiSuitNoRepeat[32]; /*  1100   128 */
        /* --- cacheline 19 boundary (1216 bytes) was 12 bytes ago --- */
        
float                      m_rgflSuitNoRepeatTime[32]; /*  1228   128 */
        /* --- cacheline 21 boundary (1344 bytes) was 12 bytes ago --- */
        
int                        m_lastDamageAmount;   /*  1356     4 */
        
float                      m_tbdPrev;            /*  1360     4 */
        
float                      m_flgeigerRange;      /*  1364     4 */
        
float                      m_flgeigerDelay;      /*  1368     4 */
        
int                        m_igeigerRangePrev;   /*  1372     4 */
        
int                        m_iStepLeft;          /*  1376     4 */
        
char                       m_szTextureName[17];  /*  1380    17 */
        
char                       m_chTextureType;      /*  1397     1 */

        /* XXX 2 bytes hole, try to pack */

        
int                        m_idrowndmg;          /*  1400     4 */
        
int                        m_idrownrestored;     /*  1404     4 */
        /* --- cacheline 22 boundary (1408 bytes) --- */
        
int                        m_bitsHUDDamage;      /*  1408     4 */
        
BOOL                       m_fInitHUD;           /*  1412     4 */
        
BOOL                       m_fGameHUDInitialized/*  1416     4 */
        
int                        m_iTrain;             /*  1420     4 */
        
BOOL                       m_fWeapon;            /*  1424     4 */
        
class EHANDLE             m_pTank;               /*  1428     8 */
        
float                      m_fDeadTime;          /*  1436     4 */
        
BOOL                       m_fNoPlayerSound;     /*  1440     4 */
        
BOOL                       m_fLongJump;          /*  1444     4 */
        
float                      m_tSneaking;          /*  1448     4 */
        
int                        m_iUpdateTime;        /*  1452     4 */
        
int                        m_iClientHealth;      /*  1456     4 */
        
int                        m_iClientBattery;     /*  1460     4 */
        
int                        m_iHideHUD;           /*  1464     4 */
        
int                        m_iClientHideHUD;     /*  1468     4 */
        /* --- cacheline 23 boundary (1472 bytes) --- */
        
int                        m_iFOV;               /*  1472     4 */
        
int                        m_iClientFOV;         /*  1476     4 */
        
int                        m_iNumSpawns;         /*  1480     4 */
        
class CBaseEntity *        m_pObserver;          /*  1484     4 */
        
class CBasePlayerItem *    m_rgpPlayerItems[6];  /*  1488    24 */
        
class CBasePlayerItem *    m_pActiveItem;        /*  1512     4 */
        
class CBasePlayerItem *    m_pClientActiveItem;  /*  1516     4 */
        
class CBasePlayerItem *    m_pLastItem;          /*  1520     4 */
        
int                        m_rgAmmo[32];         /*  1524   128 */
        /* --- cacheline 25 boundary (1600 bytes) was 52 bytes ago --- */
        
int                        m_rgAmmoLast[32];     /*  1652   128 */
        /* --- cacheline 27 boundary (1728 bytes) was 52 bytes ago --- */
        
class Vector              m_vecAutoAim;          /*  1780    12 */
        /* --- cacheline 28 boundary (1792 bytes) --- */
        
BOOL                       m_fOnTarget;          /*  1792     4 */
        
int                        m_iDeaths;            /*  1796     4 */
        
int                        m_izSBarState[4];     /*  1800    16 */
        
float                      m_flNextSBarUpdateTime/*  1816     4 */
        
float                      m_flStatusBarDisappearDelay/*  1820     4 */
        
char                       m_SbarString0[128];   /*  1824   128 */
        /* --- cacheline 30 boundary (1920 bytes) was 32 bytes ago --- */
        
int                        m_lastx;              /*  1952     4 */
        
int                        m_lasty;              /*  1956     4 */
        
int                        m_nCustomSprayFrames/*  1960     4 */
        
float                      m_flNextDecalTime;    /*  1964     4 */
        
char                       m_szTeamName[16];     /*  1968    16 */
protected:

        
/* --- cacheline 31 boundary (1984 bytes) --- */
        
int                        m_modelIndexPlayer;   /*  1984     4 */

        /* Bitfield combined with previous fields */

        
TYPEDESCRIPTION            m_playerSaveData[40]; /*     0   640 */

        /* XXX 1348 bytes hole, try to pack */

        /* --- cacheline 62 boundary (3968 bytes) was 8 bytes ago --- */
        
char                       m_szAnimExtention[32]; /*  1988    32 */
        
int                        m_iGaitsequence;      /*  2020     4 */
        
float                      m_flGaitframe;        /*  2024     4 */
        
float                      m_flGaityaw;          /*  2028     4 */
        
class Vector              m_prevgaitorigin;      /*  2032    12 */
        /* --- cacheline 63 boundary (4032 bytes) --- */
        
float                      m_flPitch;            /*  2044     4 */
        
float                      m_flYaw;              /*  2048     4 */
        
float                      m_flGaitMovement;     /*  2052     4 */
        
int                        m_iAutoWepSwitch;     /*  2056     4 */
        
bool                       m_bVGUIMenus;         /*  2060     1 */
        
bool                       m_bShowHints;         /*  2061     1 */
        
bool                       m_bShieldDrawn;       /*  2062     1 */
        
bool                       m_bOwnsShield;        /*  2063     1 */
        
bool                       m_bWasFollowing;      /*  2064     1 */

        /* XXX 3 bytes hole, try to pack */

        
float                      m_flNextFollowTime;   /*  2068     4 */
        
float                      m_flYawModifier;      /*  2072     4 */
        
float                      m_blindUntilTime;     /*  2076     4 */
        
float                      m_blindStartTime;     /*  2080     4 */
        
float                      m_blindHoldTime;      /*  2084     4 */
        
float                      m_blindFadeTime;      /*  2088     4 */
        
int                        m_blindAlpha;         /*  2092     4 */
        
float                      m_allowAutoFollowTime/*  2096     4 */
        
char                       m_autoBuyString[256]; /*  2100   256 */
        /* --- cacheline 67 boundary (4288 bytes) was 56 bytes ago --- */
        
char *                     m_rebuyString;        /*  2356     4 */
        
struct RebuyStruct         m_rebuyStruct;        /*  2360    40 */
        /* --- cacheline 68 boundary (4352 bytes) was 36 bytes ago --- */
        
bool                       m_bIsInRebuy;         /*  2400     1 */

        /* XXX 3 bytes hole, try to pack */

        
float                      m_flLastUpdateTime;   /*  2404     4 */
        
char                       m_lastLocation[32];   /*  2408    32 */
        /* --- cacheline 69 boundary (4416 bytes) was 12 bytes ago --- */
        
float                      m_progressStart;      /*  2440     4 */
        
float                      m_progressEnd;        /*  2444     4 */
        
bool                       m_bObserverAutoDirector/*  2448     1 */
        
bool                       m_canSwitchObserverModes/*  2449     1 */

        /* XXX 2 bytes hole, try to pack */

        
float                      m_heartBeatTime;      /*  2452     4 */
        
float                      m_intenseTimestamp;   /*  2456     4 */
        
float                      m_silentTimestamp;    /*  2460     4 */
        
enum MusicState            m_musicState;         /*  2464     4 */
        
float                      m_flLastCommandTime[8]; /*  2468    32 */
        
void CBasePlayer(class CBasePlayer *, const class CBasePlayer  &);

        
void CBasePlayer(class CBasePlayer *);

        
void SpawnClientSideCorpse(class CBasePlayer *); /* linkage=_ZN11CBasePlayer21SpawnClientSideCorpseEv */

        
void Observer_FindNextPlayer(class CBasePlayer *, bool, const char  *); /* linkage=_ZN11CBasePlayer23Observer_FindNextPlayerEbPKc */

        
class CBaseEntity Observer_IsValidTarget(class CBasePlayer *, intbool); /* linkage=_ZN11CBasePlayer22Observer_IsValidTargetEib */

        
void Observer_HandleButtons(class CBasePlayer *); /* linkage=_ZN11CBasePlayer22Observer_HandleButtonsEv */

        
void Observer_SetMode(class CBasePlayer *, int); /* linkage=_ZN11CBasePlayer16Observer_SetModeEi */

        
void Observer_CheckTarget(class CBasePlayer *); /* linkage=_ZN11CBasePlayer20Observer_CheckTargetEv */

        
void Observer_CheckProperties(class CBasePlayer *); /* linkage=_ZN11CBasePlayer24Observer_CheckPropertiesEv */

        
int IsObserver(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10IsObserverEv */

        
void PlantC4(class CBasePlayer *); /* linkage=_ZN11CBasePlayer7PlantC4Ev */

        
void Radio(class CBasePlayer *, const char  *, const char  *, short intbool); /* linkage=_ZN11CBasePlayer5RadioEPKcS1_sb */

        
class CBasePlayer GetNextRadioRecipient(class CBasePlayer *, class CBasePlayer *); /* linkage=_ZN11CBasePlayer21GetNextRadioRecipientEPS_ */

        
void SmartRadio(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10SmartRadioEv */

        
void ThrowWeapon(class CBasePlayer *, char *); /* linkage=_ZN11CBasePlayer11ThrowWeaponEPc */

        
void ThrowPrimary(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12ThrowPrimaryEv */

        
void AddAccount(class CBasePlayer *, intbool); /* linkage=_ZN11CBasePlayer10AddAccountEib */

        
void Disappear(class CBasePlayer *); /* linkage=_ZN11CBasePlayer9DisappearEv */

        
void MakeVIP(class CBasePlayer *); /* linkage=_ZN11CBasePlayer7MakeVIPEv */

        
bool CanPlayerBuy(class CBasePlayer *, bool); /* linkage=_ZN11CBasePlayer12CanPlayerBuyEb */

        
void SwitchTeam(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10SwitchTeamEv */

        
void TabulateAmmo(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12TabulateAmmoEv */

        
virtual void Spawn(class CBasePlayer *); /* linkage=_ZN11CBasePlayer5SpawnEv */

        
void Pain(class CBasePlayer *, intbool); /* linkage=_ZN11CBasePlayer4PainEib */

        
virtual void Jump(class CBasePlayer *); /* linkage=_ZN11CBasePlayer4JumpEv */

        
virtual void Duck(class CBasePlayer *); /* linkage=_ZN11CBasePlayer4DuckEv */

        
virtual void PreThink(class CBasePlayer *); /* linkage=_ZN11CBasePlayer8PreThinkEv */

        
virtual void PostThink(class CBasePlayer *); /* linkage=_ZN11CBasePlayer9PostThinkEv */

        
virtual class Vector GetGunPosition(class CBasePlayer *); /* linkage=_ZN11CBasePlayer14GetGunPositionEv */

        
virtual int TakeHealth(class CBasePlayer *, floatint); /* linkage=_ZN11CBasePlayer10TakeHealthEfi */

        
virtual void TraceAttack(class CBasePlayer *, entvars_t *, float, class VectorTraceResult *, int); /* linkage=_ZN11CBasePlayer11TraceAttackEP9entvars_sf6VectorP11TraceResulti */

        
virtual int TakeDamage(class CBasePlayer *, entvars_t *, entvars_t *, floatint); /* linkage=_ZN11CBasePlayer10TakeDamageEP9entvars_sS1_fi */

        
virtual void Killed(class CBasePlayer *, entvars_t *, int); /* linkage=_ZN11CBasePlayer6KilledEP9entvars_si */

        
virtual class Vector BodyTarget(class CBasePlayer *, const class Vector  &); /* linkage=_ZN11CBasePlayer10BodyTargetERK6Vector */

        
virtual void StartSneaking(class CBasePlayer *); /* linkage=_ZN11CBasePlayer13StartSneakingEv */

        
virtual void StopSneaking(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12StopSneakingEv */

        
virtual BOOL IsSneaking(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10IsSneakingEv */

        
virtual BOOL IsAlive(class CBasePlayer *); /* linkage=_ZN11CBasePlayer7IsAliveEv */

        
virtual BOOL ShouldFadeOnDeath(class CBasePlayer *); /* linkage=_ZN11CBasePlayer17ShouldFadeOnDeathEv */

        
virtual BOOL IsPlayer(class CBasePlayer *); /* linkage=_ZN11CBasePlayer8IsPlayerEv */

        
virtual BOOL IsBot(class CBasePlayer *); /* linkage=_ZN11CBasePlayer5IsBotEv */

        
BOOL IsBombGuy(class CBasePlayer *); /* linkage=_ZN11CBasePlayer9IsBombGuyEv */

        
bool IsLookingAtPosition(const class CBasePlayer  *, const class Vector  *, float); /* linkage=_ZNK11CBasePlayer19IsLookingAtPositionEPK6Vectorf */

        
virtual BOOL IsNetClient(class CBasePlayer *); /* linkage=_ZN11CBasePlayer11IsNetClientEv */

        
virtual const char  TeamID(class CBasePlayer *); /* linkage=_ZN11CBasePlayer6TeamIDEv */

        
virtual int Save(class CBasePlayer *, class CSave &); /* linkage=_ZN11CBasePlayer4SaveER5CSave */

        
virtual int Restore(class CBasePlayer *, class CRestore &); /* linkage=_ZN11CBasePlayer7RestoreER8CRestore */

        
void Reset(class CBasePlayer *); /* linkage=_ZN11CBasePlayer5ResetEv */

        
void SetScoreboardAttributes(class CBasePlayer *, class CBasePlayer *); /* linkage=_ZN11CBasePlayer23SetScoreboardAttributesEPS_ */

        
void RenewItems(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10RenewItemsEv */

        
void PackDeadPlayerItems(class CBasePlayer *); /* linkage=_ZN11CBasePlayer19PackDeadPlayerItemsEv */

        
void GiveDefaultItems(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16GiveDefaultItemsEv */

        
void RemoveAllItems(class CBasePlayer *, BOOL); /* linkage=_ZN11CBasePlayer14RemoveAllItemsEi */

        
void SetBombIcon(class CBasePlayer *, BOOL); /* linkage=_ZN11CBasePlayer11SetBombIconEi */

        
void SetProgressBarTime(class CBasePlayer *, int); /* linkage=_ZN11CBasePlayer18SetProgressBarTimeEi */

        
void SetProgressBarTime2(class CBasePlayer *, intfloat); /* linkage=_ZN11CBasePlayer19SetProgressBarTime2Eif */

        
void SetPlayerModel(class CBasePlayer *, BOOL); /* linkage=_ZN11CBasePlayer14SetPlayerModelEi */

        
void SetNewPlayerModel(class CBasePlayer *, const char  *); /* linkage=_ZN11CBasePlayer17SetNewPlayerModelEPKc */

        
BOOL SwitchWeapon(class CBasePlayer *, class CBasePlayerItem *); /* linkage=_ZN11CBasePlayer12SwitchWeaponEP15CBasePlayerItem */

        
void CheckPowerups(class CBasePlayer *, entvars_t *); /* linkage=_ZN11CBasePlayer13CheckPowerupsEP9entvars_s */

        
bool CanAffordPrimary(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16CanAffordPrimaryEv */

        
bool CanAffordPrimaryAmmo(class CBasePlayer *); /* linkage=_ZN11CBasePlayer20CanAffordPrimaryAmmoEv */

        
bool CanAffordSecondaryAmmo(class CBasePlayer *); /* linkage=_ZN11CBasePlayer22CanAffordSecondaryAmmoEv */

        
bool CanAffordArmor(class CBasePlayer *); /* linkage=_ZN11CBasePlayer14CanAffordArmorEv */

        
bool CanAffordDefuseKit(class CBasePlayer *); /* linkage=_ZN11CBasePlayer18CanAffordDefuseKitEv */

        
bool CanAffordGrenade(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16CanAffordGrenadeEv */

        
bool NeedsPrimaryAmmo(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16NeedsPrimaryAmmoEv */

        
bool NeedsSecondaryAmmo(class CBasePlayer *); /* linkage=_ZN11CBasePlayer18NeedsSecondaryAmmoEv */

        
bool NeedsArmor(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10NeedsArmorEv */

        
bool NeedsDefuseKit(class CBasePlayer *); /* linkage=_ZN11CBasePlayer14NeedsDefuseKitEv */

        
bool NeedsGrenade(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12NeedsGrenadeEv */

        
virtual void UpdateClientData(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16UpdateClientDataEv */

        
virtual int ObjectCaps(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10ObjectCapsEv */

        
virtual void Precache(class CBasePlayer *); /* linkage=_ZN11CBasePlayer8PrecacheEv */

        
BOOL IsOnLadder(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10IsOnLadderEv */

        
BOOL FlashlightIsOn(class CBasePlayer *); /* linkage=_ZN11CBasePlayer14FlashlightIsOnEv */

        
void FlashlightTurnOn(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16FlashlightTurnOnEv */

        
void FlashlightTurnOff(class CBasePlayer *); /* linkage=_ZN11CBasePlayer17FlashlightTurnOffEv */

        
void UpdatePlayerSound(class CBasePlayer *); /* linkage=_ZN11CBasePlayer17UpdatePlayerSoundEv */

        
void DeathSound(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10DeathSoundEv */

        
virtual int Classify(class CBasePlayer *); /* linkage=_ZN11CBasePlayer8ClassifyEv */

        
void SetAnimation(class CBasePlayer *, PLAYER_ANIM); /* linkage=_ZN11CBasePlayer12SetAnimationE11PLAYER_ANIM */

        
void SetWeaponAnimType(class CBasePlayer *, const char  *); /* linkage=_ZN11CBasePlayer17SetWeaponAnimTypeEPKc */

        
virtual void ImpulseCommands(class CBasePlayer *); /* linkage=_ZN11CBasePlayer15ImpulseCommandsEv */

        
void CheatImpulseCommands(class CBasePlayer *, int); /* linkage=_ZN11CBasePlayer20CheatImpulseCommandsEi */

        
virtual void RoundRespawn(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12RoundRespawnEv */

        
void StartDeathCam(class CBasePlayer *); /* linkage=_ZN11CBasePlayer13StartDeathCamEv */

        
void StartObserver(class CBasePlayer *, class Vector, class Vector); /* linkage=_ZN11CBasePlayer13StartObserverE6VectorS0_ */

        
virtual void AddPoints(class CBasePlayer *, intBOOL); /* linkage=_ZN11CBasePlayer9AddPointsEii */

        
virtual void AddPointsToTeam(class CBasePlayer *, intBOOL); /* linkage=_ZN11CBasePlayer15AddPointsToTeamEii */

        
void HandleSignals(class CBasePlayer *); /* linkage=_ZN11CBasePlayer13HandleSignalsEv */

        
virtual int AddPlayerItem(class CBasePlayer *, class CBasePlayerItem *); /* linkage=_ZN11CBasePlayer13AddPlayerItemEP15CBasePlayerItem */

        
virtual int RemovePlayerItem(class CBasePlayer *, class CBasePlayerItem *); /* linkage=_ZN11CBasePlayer16RemovePlayerItemEP15CBasePlayerItem */

        
void DropPlayerItem(class CBasePlayer *, const char  *); /* linkage=_ZN11CBasePlayer14DropPlayerItemEPKc */

        
BOOL HasPlayerItem(class CBasePlayer *, class CBasePlayerItem *); /* linkage=_ZN11CBasePlayer13HasPlayerItemEP15CBasePlayerItem */

        
BOOL HasNamedPlayerItem(class CBasePlayer *, const char  *); /* linkage=_ZN11CBasePlayer18HasNamedPlayerItemEPKc */

        
BOOL HasWeapons(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10HasWeaponsEv */

        
void SelectPrevItem(class CBasePlayer *, int); /* linkage=_ZN11CBasePlayer14SelectPrevItemEi */

        
void SelectNextItem(class CBasePlayer *, int); /* linkage=_ZN11CBasePlayer14SelectNextItemEi */

        
void SelectLastItem(class CBasePlayer *); /* linkage=_ZN11CBasePlayer14SelectLastItemEv */

        
void SelectItem(class CBasePlayer *, const char  *); /* linkage=_ZN11CBasePlayer10SelectItemEPKc */

        
void ItemPreFrame(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12ItemPreFrameEv */

        
void ItemPostFrame(class CBasePlayer *); /* linkage=_ZN11CBasePlayer13ItemPostFrameEv */

        
void GiveNamedItem(class CBasePlayer *, const char  *); /* linkage=_ZN11CBasePlayer13GiveNamedItemEPKc */

        
void EnableControl(class CBasePlayer *, BOOL); /* linkage=_ZN11CBasePlayer13EnableControlEi */

        
virtual void ResetMaxSpeed(class CBasePlayer *); /* linkage=_ZN11CBasePlayer13ResetMaxSpeedEv */

        
bool HintMessage(class CBasePlayer *, const char  *, BOOLBOOL); /* linkage=_ZN11CBasePlayer11HintMessageEPKcii */

        
virtual int GiveAmmo(class CBasePlayer *, intchar *, int); /* linkage=_ZN11CBasePlayer8GiveAmmoEiPci */

        
void SendAmmoUpdate(class CBasePlayer *); /* linkage=_ZN11CBasePlayer14SendAmmoUpdateEv */

        
void SendFOV(class CBasePlayer *, int); /* linkage=_ZN11CBasePlayer7SendFOVEi */

        
void WaterMove(class CBasePlayer *); /* linkage=_ZN11CBasePlayer9WaterMoveEv */

        
void PlayerDeathThink(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16PlayerDeathThinkEv */

        
void PlayerUse(class CBasePlayer *); /* linkage=_ZN11CBasePlayer9PlayerUseEv */

        
void HostageUsed(class CBasePlayer *); /* linkage=_ZN11CBasePlayer11HostageUsedEv */

        
void JoiningThink(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12JoiningThinkEv */

        
void RemoveLevelText(class CBasePlayer *); /* linkage=_ZN11CBasePlayer15RemoveLevelTextEv */

        
void MenuPrint(class CBasePlayer *, class CBasePlayer *, const char  *); /* linkage=_ZN11CBasePlayer9MenuPrintEPS_PKc */

        
void ResetMenu(class CBasePlayer *); /* linkage=_ZN11CBasePlayer9ResetMenuEv */

        
void SyncRoundTimer(class CBasePlayer *); /* linkage=_ZN11CBasePlayer14SyncRoundTimerEv */

        
void CheckSuitUpdate(class CBasePlayer *); /* linkage=_ZN11CBasePlayer15CheckSuitUpdateEv */

        
void SetSuitUpdate(class CBasePlayer *, char *, intint); /* linkage=_ZN11CBasePlayer13SetSuitUpdateEPcii */

        
void UpdateGeigerCounter(class CBasePlayer *); /* linkage=_ZN11CBasePlayer19UpdateGeigerCounterEv */

        
void CheckTimeBasedDamage(class CBasePlayer *); /* linkage=_ZN11CBasePlayer20CheckTimeBasedDamageEv */

        
virtual BOOL FBecomeProne(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12FBecomeProneEv */

        
void BarnacleVictimBitten(class CBasePlayer *, entvars_t *); /* linkage=_ZN11CBasePlayer20BarnacleVictimBittenEP9entvars_s */

        
void BarnacleVictimReleased(class CBasePlayer *); /* linkage=_ZN11CBasePlayer22BarnacleVictimReleasedEv */

        
int GetAmmoIndex(const char  *); /* linkage=_ZN11CBasePlayer12GetAmmoIndexEPKc */

        
int AmmoInventory(class CBasePlayer *, int); /* linkage=_ZN11CBasePlayer13AmmoInventoryEi */

        
virtual int Illumination(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12IlluminationEv */

        
void ResetAutoaim(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12ResetAutoaimEv */

        
virtual class Vector GetAutoaimVector(class CBasePlayer *, float); /* linkage=_ZN11CBasePlayer16GetAutoaimVectorEf */

        
class Vector AutoaimDeflection(class CBasePlayer *, class Vector &, floatfloat); /* linkage=_ZN11CBasePlayer17AutoaimDeflectionER6Vectorff */

        
void ForceClientDllUpdate(class CBasePlayer *); /* linkage=_ZN11CBasePlayer20ForceClientDllUpdateEv */

        
void DeathMessage(class CBasePlayer *, entvars_t *); /* linkage=_ZN11CBasePlayer12DeathMessageEP9entvars_s */

        
void SetCustomDecalFrames(class CBasePlayer *, int); /* linkage=_ZN11CBasePlayer20SetCustomDecalFramesEi */

        
int GetCustomDecalFrames(class CBasePlayer *); /* linkage=_ZN11CBasePlayer20GetCustomDecalFramesEv */

        
void InitStatusBar(class CBasePlayer *); /* linkage=_ZN11CBasePlayer13InitStatusBarEv */

        
void UpdateStatusBar(class CBasePlayer *); /* linkage=_ZN11CBasePlayer15UpdateStatusBarEv */

        
void StudioEstimateGait(class CBasePlayer *); /* linkage=_ZN11CBasePlayer18StudioEstimateGaitEv */

        
void StudioPlayerBlend(class CBasePlayer *, int *, float *); /* linkage=_ZN11CBasePlayer17StudioPlayerBlendEPiPf */

        
void CalculatePitchBlend(class CBasePlayer *); /* linkage=_ZN11CBasePlayer19CalculatePitchBlendEv */

        
void CalculateYawBlend(class CBasePlayer *); /* linkage=_ZN11CBasePlayer17CalculateYawBlendEv */

        
void StudioProcessGait(class CBasePlayer *); /* linkage=_ZN11CBasePlayer17StudioProcessGaitEv */

        
void SendHostagePos(class CBasePlayer *); /* linkage=_ZN11CBasePlayer14SendHostagePosEv */

        
void SendHostageIcons(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16SendHostageIconsEv */

        
void ResetStamina(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12ResetStaminaEv */

        
BOOL IsArmored(class CBasePlayer *, int); /* linkage=_ZN11CBasePlayer9IsArmoredEi */

        
BOOL ShouldDoLargeFlinch(class CBasePlayer *, intint); /* linkage=_ZN11CBasePlayer19ShouldDoLargeFlinchEii */

        
void SetPrefsFromUserinfo(class CBasePlayer *, char *); /* linkage=_ZN11CBasePlayer20SetPrefsFromUserinfoEPc */

        
void SendWeatherInfo(class CBasePlayer *); /* linkage=_ZN11CBasePlayer15SendWeatherInfoEv */

        
void UpdateShieldCrosshair(class CBasePlayer *, bool); /* linkage=_ZN11CBasePlayer21UpdateShieldCrosshairEb */

        
bool HasShield(class CBasePlayer *); /* linkage=_ZN11CBasePlayer9HasShieldEv */

        
bool IsProtectedByShield(class CBasePlayer *); /* linkage=_ZN11CBasePlayer19IsProtectedByShieldEv */

        
void RemoveShield(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12RemoveShieldEv */

        
void DropShield(class CBasePlayer *, bool); /* linkage=_ZN11CBasePlayer10DropShieldEb */

        
void GiveShield(class CBasePlayer *, bool); /* linkage=_ZN11CBasePlayer10GiveShieldEb */

        
bool IsHittingShield(class CBasePlayer *, const class Vector  &, TraceResult *); /* linkage=_ZN11CBasePlayer15IsHittingShieldERK6VectorP11TraceResult */

        
bool IsReloading(class CBasePlayer *); /* linkage=_ZN11CBasePlayer11IsReloadingEv */

        
bool IsBlind(const class CBasePlayer  *); /* linkage=_ZNK11CBasePlayer7IsBlindEv */

        
virtual void Blind(class CBasePlayer *, floatfloatfloatint); /* linkage=_ZN11CBasePlayer5BlindEfffi */

        
virtual void OnTouchingWeapon(class CBasePlayer *, class CWeaponBox *); /* linkage=_ZN11CBasePlayer16OnTouchingWeaponEP10CWeaponBox */

        
bool IsAutoFollowAllowed(const class CBasePlayer  *); /* linkage=_ZNK11CBasePlayer19IsAutoFollowAllowedEv */

        
void InhibitAutoFollow(class CBasePlayer *, float); /* linkage=_ZN11CBasePlayer17InhibitAutoFollowEf */

        
void AllowAutoFollow(class CBasePlayer *); /* linkage=_ZN11CBasePlayer15AllowAutoFollowEv */

        
void ClearAutoBuyData(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16ClearAutoBuyDataEv */

        
void AddAutoBuyData(class CBasePlayer *, const char  *); /* linkage=_ZN11CBasePlayer14AddAutoBuyDataEPKc */

        
void AutoBuy(class CBasePlayer *); /* linkage=_ZN11CBasePlayer7AutoBuyEv */

        
void ClientCommand(class CBasePlayer *, const char  *, const char  *, const char  *, const char  *); /* linkage=_ZN11CBasePlayer13ClientCommandEPKcS1_S1_S1_ */

        
void PrioritizeAutoBuyString(class CBasePlayer *, char *, const char  *); /* linkage=_ZN11CBasePlayer23PrioritizeAutoBuyStringEPcPKc */

        
const char  PickPrimaryCareerTaskWeapon(class CBasePlayer *); /* linkage=_ZN11CBasePlayer27PickPrimaryCareerTaskWeaponEv */

        
const char  PickSecondaryCareerTaskWeapon(class CBasePlayer *); /* linkage=_ZN11CBasePlayer29PickSecondaryCareerTaskWeaponEv */

        
const char  PickFlashKillWeaponString(class CBasePlayer *); /* linkage=_ZN11CBasePlayer25PickFlashKillWeaponStringEv */

        
const char  PickGrenadeKillWeaponString(class CBasePlayer *); /* linkage=_ZN11CBasePlayer27PickGrenadeKillWeaponStringEv */

        
bool ShouldExecuteAutoBuyCommand(class CBasePlayer *, const class AutoBuyInfoStruct  *, boolbool); /* linkage=_ZN11CBasePlayer27ShouldExecuteAutoBuyCommandEPK17AutoBuyInfoStructbb */

        
void PostAutoBuyCommandProcessing(class CBasePlayer *, const class AutoBuyInfoStruct  *, bool &, bool &); /* linkage=_ZN11CBasePlayer28PostAutoBuyCommandProcessingEPK17AutoBuyInfoStructRbS3_ */

        
void ParseAutoBuyString(class CBasePlayer *, const char  *, bool &, bool &); /* linkage=_ZN11CBasePlayer18ParseAutoBuyStringEPKcRbS2_ */

        
class AutoBuyInfoStruct GetAutoBuyCommandInfo(class CBasePlayer *, const char  *); /* linkage=_ZN11CBasePlayer21GetAutoBuyCommandInfoEPKc */

        
void InitRebuyData(class CBasePlayer *, const char  *); /* linkage=_ZN11CBasePlayer13InitRebuyDataEPKc */

        
void BuildRebuyStruct(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16BuildRebuyStructEv */

        
void Rebuy(class CBasePlayer *); /* linkage=_ZN11CBasePlayer5RebuyEv */

        
void RebuyPrimaryWeapon(class CBasePlayer *); /* linkage=_ZN11CBasePlayer18RebuyPrimaryWeaponEv */

        
void RebuyPrimaryAmmo(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16RebuyPrimaryAmmoEv */

        
void RebuySecondaryWeapon(class CBasePlayer *); /* linkage=_ZN11CBasePlayer20RebuySecondaryWeaponEv */

        
void RebuySecondaryAmmo(class CBasePlayer *); /* linkage=_ZN11CBasePlayer18RebuySecondaryAmmoEv */

        
void RebuyHEGrenade(class CBasePlayer *); /* linkage=_ZN11CBasePlayer14RebuyHEGrenadeEv */

        
void RebuyFlashbang(class CBasePlayer *); /* linkage=_ZN11CBasePlayer14RebuyFlashbangEv */

        
void RebuySmokeGrenade(class CBasePlayer *); /* linkage=_ZN11CBasePlayer17RebuySmokeGrenadeEv */

        
void RebuyDefuser(class CBasePlayer *); /* linkage=_ZN11CBasePlayer12RebuyDefuserEv */

        
void RebuyNightVision(class CBasePlayer *); /* linkage=_ZN11CBasePlayer16RebuyNightVisionEv */

        
void RebuyArmor(class CBasePlayer *); /* linkage=_ZN11CBasePlayer10RebuyArmorEv */

        
void UpdateLocation(class CBasePlayer *, bool); /* linkage=_ZN11CBasePlayer14UpdateLocationEb */

        
void SetObserverAutoDirector(class CBasePlayer *, bool); /* linkage=_ZN11CBasePlayer23SetObserverAutoDirectorEb */

        
bool IsObservingPlayer(class CBasePlayer *, class CBasePlayer *); /* linkage=_ZN11CBasePlayer17IsObservingPlayerEPS_ */

        
bool CanSwitchObserverModes(const class CBasePlayer  *); /* linkage=_ZNK11CBasePlayer22CanSwitchObserverModesEv */

        
void Intense(class CBasePlayer *); /* linkage=_ZN11CBasePlayer7IntenseEv */

        /* --- cacheline 77 boundary (4928 bytes) was 40 bytes ago --- */
        /* vtable has 39 entries: {
           [0] = Spawn(_ZN11CBasePlayer5SpawnEv),
           [76] = Jump(_ZN11CBasePlayer4JumpEv),
           [77] = Duck(_ZN11CBasePlayer4DuckEv),
           [78] = PreThink(_ZN11CBasePlayer8PreThinkEv),
           [79] = PostThink(_ZN11CBasePlayer9PostThinkEv),
           [80] = GetGunPosition(_ZN11CBasePlayer14GetGunPositionEv),
           [13] = TakeHealth(_ZN11CBasePlayer10TakeHealthEfi),
           [11] = TraceAttack(_ZN11CBasePlayer11TraceAttackEP9entvars_sf6VectorP11TraceResulti),
           [12] = TakeDamage(_ZN11CBasePlayer10TakeDamageEP9entvars_sS1_fi),
           [14] = Killed(_ZN11CBasePlayer6KilledEP9entvars_si),
           [54] = BodyTarget(_ZN11CBasePlayer10BodyTargetERK6Vector),
           [31] = StartSneaking(_ZN11CBasePlayer13StartSneakingEv),
           [32] = StopSneaking(_ZN11CBasePlayer12StopSneakingEv),
           [34] = IsSneaking(_ZN11CBasePlayer10IsSneakingEv),
           [35] = IsAlive(_ZN11CBasePlayer7IsAliveEv),
           [66] = ShouldFadeOnDeath(_ZN11CBasePlayer17ShouldFadeOnDeathEv),
           [40] = IsPlayer(_ZN11CBasePlayer8IsPlayerEv),
           [81] = IsBot(_ZN11CBasePlayer5IsBotEv),
           [41] = IsNetClient(_ZN11CBasePlayer11IsNetClientEv),
           [42] = TeamID(_ZN11CBasePlayer6TeamIDEv),
           [4] = Save(_ZN11CBasePlayer4SaveER5CSave),
           [5] = Restore(_ZN11CBasePlayer7RestoreER8CRestore),
           [82] = UpdateClientData(_ZN11CBasePlayer16UpdateClientDataEv),
           [6] = ObjectCaps(_ZN11CBasePlayer10ObjectCapsEv),
           [1] = Precache(_ZN11CBasePlayer8PrecacheEv),
           [9] = Classify(_ZN11CBasePlayer8ClassifyEv),
           [83] = ImpulseCommands(_ZN11CBasePlayer15ImpulseCommandsEv),
           [84] = RoundRespawn(_ZN11CBasePlayer12RoundRespawnEv),
           [21] = AddPoints(_ZN11CBasePlayer9AddPointsEii),
           [22] = AddPointsToTeam(_ZN11CBasePlayer15AddPointsToTeamEii),
           [23] = AddPlayerItem(_ZN11CBasePlayer13AddPlayerItemEP15CBasePlayerItem),
           [24] = RemovePlayerItem(_ZN11CBasePlayer16RemovePlayerItemEP15CBasePlayerItem),
           [69] = ResetMaxSpeed(_ZN11CBasePlayer13ResetMaxSpeedEv),
           [25] = GiveAmmo(_ZN11CBasePlayer8GiveAmmoEiPci),
           [50] = FBecomeProne(_ZN11CBasePlayer12FBecomeProneEv),
           [55] = Illumination(_ZN11CBasePlayer12IlluminationEv),
           [85] = GetAutoaimVector(_ZN11CBasePlayer16GetAutoaimVectorEf),
           [86] = Blind(_ZN11CBasePlayer5BlindEfffi),
           [87] = OnTouchingWeapon(_ZN11CBasePlayer16OnTouchingWeaponEP10CWeaponBox),
        } */
        /* size: 2500, cachelines: 40, members: 190 */
        /* sum members: 3169, holes: 21, sum holes: 1799 */
        /* last cacheline: 4 bytes */

        /* BRAIN FART ALERT! 2500 != 3169 + 1799(holes), diff = -2468 */

}; 
7- Sure, I can see your face!

It's just an easy way. It's awesome.
Spread the word!
__________________

Divide et vinces
approved plugins | steam account

I don't accept PM for support. Just ask on forums.
If you're looking for private work, PM me.

Last edited by joropito; 05-28-2013 at 10:13.
joropito is offline
Send a message via MSN to joropito
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 05-28-2013 , 09:36   Re: Reverse Engineering from linux libraries
Reply With Quote #2

orgasm.

We were lucky to discover such thing! But I'm sure it would have been discovered soon or later.
IDA is really an amazing tool.
__________________

Last edited by Arkshine; 05-28-2013 at 09:36.
Arkshine is offline
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 05-28-2013 , 09:51   Re: Reverse Engineering from linux libraries
Reply With Quote #3

We have opened a paypal account to receive donations. We need USD 4000.- to get latest full ida

__________________

Divide et vinces
approved plugins | steam account

I don't accept PM for support. Just ask on forums.
If you're looking for private work, PM me.
joropito is offline
Send a message via MSN to joropito
bibu
Veteran Member
Join Date: Sep 2010
Old 05-28-2013 , 12:22   Re: Reverse Engineering from linux libraries
Reply With Quote #4

Quote:
Originally Posted by joropito View Post
We need USD 4000.- to get latest full ida

arrrr!!!
__________________
Selling tons of my own private works.
Accepting paid work for clans and communities.
Don't hesitate to contact me.
bibu is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 05-28-2013 , 13:24   Re: Reverse Engineering from linux libraries
Reply With Quote #5

Gooooooooooooooooooooooooooood !
My first orgasm of the day !

My next paid work money is for you.
__________________
- tired and retired -

- my plugins -

Last edited by ConnorMcLeod; 05-28-2013 at 13:27.
ConnorMcLeod is offline
hleV
Veteran Member
Join Date: Mar 2007
Location: Lithuania
Old 05-31-2013 , 11:42   Re: Reverse Engineering from linux libraries
Reply With Quote #6

Sweet!

Would it be much to ask for ESF's CBasePlayer?
Attached Files
File Type: zip hl_i386.zip (773.0 KB, 112 views)
__________________
hleV is offline
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 05-31-2013 , 12:44   Re: Reverse Engineering from linux libraries
Reply With Quote #7

Quote:
Originally Posted by hleV View Post
Sweet!

Would it be much to ask for ESF's CBasePlayer?
You have no luck. There's no debug information in such file.

EDIT: I have extracted this info with IDA

Code:
Data dump: _14CBaseAnimating_m_SaveData - 1 - 0x1b5140
    float    m_flFrameRate;        // offset 27 (108) - size 1

Data dump: _13CFuncRotating_m_SaveData - 1 - 0x1b5d00
    float    m_flFanFriction;        // offset 25 (100) - size 1

Data dump: _9CPendulum_m_SaveData - 2 - 0x1b5d60
    float    m_accel;        // offset 25 (100) - size 1
    float    m_distance;        // offset 26 (104) - size 1

Data dump: _10CEnvGlobal_m_SaveData - 1 - 0x1b6c20
    char *    m_globalstate;        // offset 25 (100) - size 1

Data dump: _12CMultiSource_m_SaveData - 1 - 0x1b6c60
    _EHANDLE*    m_rgEntities[32];        // offset 25 (100) - size 32

Data dump: _11CBaseButton_m_SaveData - 2 - 0x1b6ca0
    bool    m_fStayPushed;        // offset 65 (260) - size 1
    bool    m_fRotating;        // offset 66 (264) - size 1

Data dump: _19CMomentaryRotButton_m_SaveData - 1 - 0x1b6d20
    int    m_lastUsed;        // offset 65 (260) - size 1

Data dump: _9CEnvSpark_m_SaveData - 1 - 0x1b6d80
    float    m_flDelay;        // offset 25 (100) - size 1

Data dump: _11CBaseEntity_m_SaveData - 1 - 0x1b7dc0
    CBaseEntity*    m_pGoalEnt;        // offset 1 (4) - size 1

Data dump: _9CBaseDoor_m_SaveData - 1 - 0x1b9da0
    byte    m_bHealthValue;        // offset 65 (260) - size 1

Data dump: _14CMomentaryDoor_m_SaveData - 1 - 0x1b9e10
    byte    m_bMoveSnd;        // offset 65 (260) - size 1

Data dump: _9CBubbling_m_SaveData - 1 - 0x1ba3a0
    int    m_density;        // offset 25 (100) - size 1

Data dump: _10CLightning_m_SaveData - 3 - 0x1ba3e0
    int    m_active;        // offset 25 (100) - size 1
    char *    m_iszStartEntity;        // offset 26 (104) - size 1
    char *    m_iszEndEntity;        // offset 27 (108) - size 1

Data dump: _6CLaser_m_SaveData - 1 - 0x1ba4c0
    CBaseEntity*    m_pSprite;        // offset 25 (100) - size 1

Data dump: _5CGlow_m_SaveData - 1 - 0x1ba500
    float    m_lastTime;        // offset 25 (100) - size 1

Data dump: _7CSprite_m_SaveData - 1 - 0x1ba520
    float    m_lastTime;        // offset 25 (100) - size 1

Data dump: _11CGibShooter_m_SaveData - 1 - 0x1ba540
    int    m_iGibs;        // offset 27 (108) - size 1

Data dump: _13CEnvExplosion_m_SaveData - 1 - 0x1bb7c0
    int    m_iMagnitude;        // offset 170 (680) - size 1

Data dump: _10CBreakable_m_SaveData - 1 - 0x1bcb00
    int    m_Material;        // offset 27 (108) - size 1

Data dump: _9CPushable_m_SaveData - 1 - 0x1bcba0
    float    m_maxSpeed;        // offset 34 (136) - size 1

Data dump: _6CLight_m_SaveData - 1 - 0x1bec60
    int    m_iStyle;        // offset 25 (100) - size 1

Data dump: _11CRuleEntity_m_SaveData - 1 - 0x1bf0a0
    char *    m_iszMaster;        // offset 25 (100) - size 1

Data dump: _9CGameText_m_SaveData - 1 - 0x1bf0b0
    byte    m_textParms[40];        // offset 26 (104) - size 40

Data dump: _15CGamePlayerZone_m_SaveData - 1 - 0x1bf0c0
    char *    m_iszInTarget;        // offset 26 (104) - size 1

Data dump: _13CMonsterMaker_m_SaveData - 1 - 0x1c0200
    char *    m_iszMonsterClassname;        // offset 170 (680) - size 1

Data dump: _12CBaseMonster_m_SaveData - 9 - 0x1c0480
    _EHANDLE*    m_hEnemy;        // offset 66 (264) - size 1
    _EHANDLE*    m_hTargetEnt;        // offset 68 (272) - size 1
    _EHANDLE*    m_hOldEnemy[4];        // offset 70 (280) - size 4
    Vector    m_vecOldEnemy[4];        // offset 78 (312) - size 4
    float    m_flFieldOfView;        // offset 90 (360) - size 1
    float    m_flWaitFinished;        // offset 91 (364) - size 1
    float    m_flMoveWaitFinished;        // offset 92 (368) - size 1
    int    m_Activity;        // offset 93 (372) - size 1
    int    m_IdealActivity;        // offset 94 (376) - size 1

Data dump: _11CPathCorner_m_SaveData - 1 - 0x1c15e0
    float    m_flWait;        // offset 25 (100) - size 1

Data dump: _10CPathTrack_m_SaveData - 1 - 0x1c1600
    float    m_length;        // offset 25 (100) - size 1

Data dump: _14CBasePlatTrain_m_SaveData - 1 - 0x1c1920
    byte    m_bMoveSnd;        // offset 65 (260) - size 1

Data dump: _12CFuncPlatRot_m_SaveData - 1 - 0x1c1960
    Vector    m_end;        // offset 67 (268) - size 1

Data dump: _10CFuncTrain_m_SaveData - 1 - 0x1c1980
    int    m_sounds;        // offset 68 (272) - size 1

Data dump: _15CFuncTrackTrain_m_SaveData - 3 - 0x1c19c0
    CBaseEntity*    m_ppath;        // offset 25 (100) - size 1
    float    m_length;        // offset 26 (104) - size 1
    float    m_height;        // offset 27 (108) - size 1

Data dump: _16CFuncTrackChange_m_SaveData - 2 - 0x1c1a80
    CBaseEntity*    m_trackTop;        // offset 73 (292) - size 1
    CBaseEntity*    m_trackBottom;        // offset 74 (296) - size 1

Data dump: _10CGunTarget_m_SaveData - 1 - 0x1c1b10
    bool    m_on;        // offset 170 (680) - size 1

Data dump: _11CBasePlayer_m_playerSaveData - 8 - 0x1c26c0
    int    m_afButtonLast;        // offset 177 (708) - size 1
    int    m_afButtonPressed;        // offset 178 (712) - size 1
    int    m_afButtonReleased;        // offset 179 (716) - size 1
    int    m_rgItems[10];        // offset 184 (736) - size 10
    int    m_afPhysicsFlags;        // offset 196 (784) - size 1
    float    m_flTimeStepSound;        // offset 491 (1964) - size 1
    float    m_flTimeWeaponIdle;        // offset 492 (1968) - size 1
    float    m_flSwimTime;        // offset 493 (1972) - size 1

Data dump: _12CRevertSaved_m_SaveData - 1 - 0x1c2a00
    float    m_messageTime;        // offset 25 (100) - size 1

Data dump: _12CCineMonster_m_SaveData - 3 - 0x1c4780
    char *    m_iszIdle;        // offset 170 (680) - size 1
    char *    m_iszPlay;        // offset 171 (684) - size 1
    char *    m_iszEntity;        // offset 172 (688) - size 1

Data dump: _17CScriptedSentence_m_SaveData - 2 - 0x1c4860
    char *    m_iszSentence;        // offset 65 (260) - size 1
    char *    m_iszEntity;        // offset 66 (264) - size 1

Data dump: _15CAmbientGeneric_m_SaveData - 1 - 0x1c6620
    float    m_flAttenuation;        // offset 25 (100) - size 1

Data dump: _9CEnvSound_m_SaveData - 1 - 0x1c6660
    float    m_flRadius;        // offset 25 (100) - size 1

Data dump: _8CSpeaker_m_SaveData - 1 - 0x1c6690
    int    m_preset;        // offset 25 (100) - size 1

Data dump: _10CBaseDelay_m_SaveData - 1 - 0x1c7300
    float    m_flDelay;        // offset 25 (100) - size 1

Data dump: _11CBaseToggle_m_SaveData - 4 - 0x1c7320
    int    m_toggle_state;        // offset 32 (128) - size 1
    float    m_flActivateFinished;        // offset 33 (132) - size 1
    float    m_flMoveDistance;        // offset 34 (136) - size 1
    float    m_flWait;        // offset 35 (140) - size 1

Data dump: _12CTalkMonster_m_SaveData - 2 - 0x1c7ae0
    int    m_bitsSaid;        // offset 170 (680) - size 1
    int    m_nSpeak;        // offset 171 (684) - size 1

Data dump: _17CFrictionModifier_m_SaveData - 1 - 0x1c8620
    float    m_frictionFraction;        // offset 25 (100) - size 1

Data dump: _12CAutoTrigger_m_SaveData - 1 - 0x1c8640
    char *    m_globalstate;        // offset 27 (108) - size 1

Data dump: _13CTriggerRelay_m_SaveData - 1 - 0x1c8660
    int    triggerType;        // offset 27 (108) - size 1

Data dump: _13CMultiManager_m_SaveData - 1 - 0x1c8680
    int    m_cTargets;        // offset 65 (260) - size 1

Data dump: _12CChangeLevel_m_SaveData - 1 - 0x1c86e0
    byte    m_szMapName[32];        // offset 65 (260) - size 32

Data dump: _20CTriggerChangeTarget_m_SaveData - 1 - 0x1c8720
    char *    m_iszNewTarget;        // offset 27 (108) - size 1

Data dump: _15CBasePlayerItem_m_SaveData - 1 - 0x1ca9e0
    CBaseEntity*    m_pPlayer;        // offset 32 (128) - size 1

Data dump: _17CBasePlayerWeapon_m_SaveData - 1 - 0x1caa20
    float    m_flNextPrimaryAttack;        // offset 39 (156) - size 1

Data dump: _12CGlobalState_m_SaveData - 1 - 0x1caf9c
    int    m_listCount;        // offset 1 (4) - size 1
__________________

Divide et vinces
approved plugins | steam account

I don't accept PM for support. Just ask on forums.
If you're looking for private work, PM me.

Last edited by joropito; 05-31-2013 at 12:48.
joropito is offline
Send a message via MSN to joropito
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 05-31-2013 , 13:19   Re: Reverse Engineering from linux libraries
Reply With Quote #8

Quote:
Originally Posted by hleV View Post
Sweet!

Would it be much to ask for ESF's CBasePlayer?
Let's start a thread as it was done in the past with counter-strike where you would post already known offsets and where people could share new found ones, or ask for specific offsets if they think some offsets about something exist.
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
Old 05-31-2013, 13:24
Bos93
This message has been deleted by Bos93. Reason: Connor: I don't think it is correct place for such questions
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 05-31-2013 , 13:39   Re: Reverse Engineering from linux libraries
Reply With Quote #9

Quote:
Originally Posted by Bos93 View Post
int m_iWeaponVolume; /* 976 4 */

I can change the volume of the sound of the shot?
I don't know. I can try to check that with IDA.
But anyway you can test it

EDIT: It's used in CBasePlayer::UpdatePlayerSound and is used in same way as in hlsdk
__________________

Divide et vinces
approved plugins | steam account

I don't accept PM for support. Just ask on forums.
If you're looking for private work, PM me.

Last edited by joropito; 05-31-2013 at 13:57.
joropito is offline
Send a message via MSN to joropito
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 05-31-2013 , 14:02   Re: Reverse Engineering from linux libraries
Reply With Quote #10

I don't think it is correct place for such questions, gonna delete when you have read joropito's answer.
And that offset was already known as majority of CBasePlayer offsets.
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:42.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode