#include "common.h" typedef struct { int Id; uint Rank; } ObjListInfos_S; typedef struct { uint Family; uint Id; union { Memory_U Memory; uchar Table[8]; /* Actually DOUBLE int */ uint Nbr; Host Addr; } Value; ObjListInfos_S ObjListInfos; } ObjectDesc; typedef struct { ushort Cmd; ushort PacketID; ushort Reply2ID; uint NbObj; ObjectDesc *Objs; } SResponse; #define OBJ_FAMILY_NBR 0x00 #define OBJ_FAMILY_TABLE 0x01 #define OBJ_FAMILY_NETADDR 0x02 #define OBJ_FAMILY_STRING 0x03 #define OBJ_FAMILY_BLOB 0x04 #define OBJ_FAMILY_OBJLIST 0x05 #define OBJ_FAMILY_INTLIST 0x06 #define OBJ_ID_NODEID 0x0D #define OBJ_ID_LPORT 0x10 #define OBJ_ID_UPTIME 0x01 #define OBJ_ID_STVL 0x23 #define OBJ_ID_2000 0x09 #define OBJ_ID_SK 0x08 #define OBJ_ID_ZBOOL1 0x0C #define OBJ_ID_REQCODE 0x00 #define OBJ_ID_ZBOOL2 0x02 #define OBJ_ID_USERNAME 0x04 #define OBJ_ID_USERPASS 0x05 #define OBJ_ID_MODULUS 0x21 #define OBJ_ID_PLATFORM 0x31 #define OBJ_ID_LANG 0x36 #define OBJ_ID_VERSION 0x0D #define OBJ_ID_PUBADDR 0x0E #define OBJ_ID_MISCD 0x33 #define OBJ_ID_OAUTH 0x3D #define OBJ_ID_PARTNERID 0x3E #define OBJ_ID_STACKVER 0x0B #define OBJ_ID_STACKTS 0x0C #define OBJ_ID_PEERLPORT 0x10 #define OBJ_ID_PUBNETADDR 0x11 #define OBJ_ID_NBCONNECTED 0x09 #define OBJ_ID_LOGINANSWER 0x01 #define OBJ_ID_CIPHERDLOGD 0x24 #define OBJ_ID_LDUSER 0x00 #define OBJ_ID_LDEXPIRY 0x04 #define OBJ_ID_LDMODULUS 0x01 #define OBJ_ID_ESAUTHANSWR 0x0A #define OBJ_ID_ESHASHLIST 0x35 #define OBJ_ID_HASH 0x32 #define OBJ_ID_DISPLAYNAME 0x34 #define OBJ_ID_UBLOB 0x33 #define OBJ_ID_INTERNALNAM 0x10 #define OBJ_ID_BUDDYSTATUS 0x79 // BUDDYSTATUS #define OBJ_ID_AUTHCERT 0x03 #define OBJ_ID_USER2SEARCH 0x00 #define OBJ_ID_BCMID 0x00 #define OBJ_ID_BCMVER 0x01 #define OBJ_ID_SLOTID 0x00 #define OBJ_ID_SLOTNBSN 0x07 #define OBJ_ID_SLOTSNADDR 0x03 #define OBJ_ID_DIRBLOB 0x0B #define OBJ_ID_CIRNAME 0x14 // FULLNAME #define OBJ_ID_CILANG 0x24 // LANGUAGES #define OBJ_ID_CICOUNTRY 0x28 // COUNTRY #define OBJ_ID_CIREGION 0x2C // PROVINCE #define OBJ_ID_CIVILLE 0x30 // CITY #define OBJ_ID_CILOCATION 0x03 #define OBJ_ID_CIPSTN_BAL 0x12D // PSTN_BALANCE #define OBJ_ID_CIPSTN_BALC 0x128 // PSTN_BALANCE_CURRENCY #define OBJ_ID_CIBIRTHDAY 0x1D // BIRTHDAY #define OBJ_ID_CIPHONE_H 0x34 // PHONE_HOME #define OBJ_ID_CIPHONE_O 0x38 // PHONE_OFFICE #define OBJ_ID_CIPHONE_M 0x3C // PHONE_MOBILE #define OBJ_ID_CIHOMEPAGE 0x44 // HOMEPAGE #define OBJ_ID_CIABOUT 0x48 // ABOUT #define OBJ_ID_CIALIASES 0x60 // ALIASES #define OBJ_ID_CIMOOD_TEXT 0x68 // MOOD_TEXT #define OBJ_ID_CIRICH_MOOD 0x334 // RICH_MOOD_TEXT #define OBJ_ID_CITIMEZONE 0x6D // TIMEZONE #define OBJ_ID_AUTHEDBUDD 0x71 // NROF_AUTHED_BUDDIES #define OBJ_ID_RCVDAUTHREQ 0x50 // RECEIVEDAUTHREQUEST #define OBJ_ID_ISAUTHORIZD 0x5D // ISAUTHORIZED / ISBLOCKED //#define OBJ_ID_DISPLAYNAME 0x84 // DISPLAYNAME #define OBJ_ID_ONLINESTAT 0x89 // ONLINESTATUS #define OBJ_ID_LASTONLINET 0x8D // LASTONLINETIMESTAMP #define OBJ_ID_CISEX 0x21 // SEX (MALE=1, FEMALE=2, UNKNOWN=0) #define OBJ_ID_FWTESTID 0x19 #define OBJ_ID_FWTESTER 0x11 #define OBJ_ID_PINGER 0x02 #define OBJ_ID_TESTED 0x02 #define OBJ_ID_TESTER 0x00 #define OBJ_ID_RELAY 0x08 #define OBJ_ID_SESPROPOSER 0x01 #define OBJ_ID_SESCHALLENG 0x09 #define OBJ_ID_SID2DEC 0x03 #define OBJ_ID_SOLVEDCHALL 0x0A #define OBJ_ID_USRDBLOB 0x05 #define OBJ_ID_AESPART1 0x06 #define OBJ_ID_PEERLOGIN 0x00 #define OBJ_ID_PEERSESSID 0x03 #define OBJ_ID_GROUPID 0x269 #define OBJ_ID_GROUPNAME 0x25C void WriteValue(uchar **BufferAddr, uint Value); void WriteObject(uchar **Buffer, ObjectDesc Object); int ManageObjects(uchar **Buffer, uint Size, SResponse *Response); void FreeResponse(SResponse *Response);