dvander@945: "Games" dvander@945: { dvander@1056: /* General Temp Entities */ faluco@1031: "#default" faluco@1031: { faluco@1031: "#supported" faluco@1031: { faluco@1031: "game" "cstrike" faluco@1031: "game" "dod" faluco@1031: "game" "hl2mp" ds@1068: "game" "ship" ds@1065: "game" "!Dystopia" ds@1065: "game" "!Insurgency" ds@1068: "game" "!Pirates, Vikings and Knights II" ds@1065: "game" "!SourceForts v1.9.2" faluco@1031: } faluco@1031: faluco@1031: "Offsets" faluco@1031: { faluco@1031: /* Offset into CBaseTempEntity constructor */ faluco@1031: "s_pTempEntities" faluco@1031: { faluco@1031: "windows" "17" faluco@1031: "linux" "27" faluco@1031: } faluco@1031: "GetTEName" faluco@1031: { faluco@1031: "windows" "4" faluco@1031: "linux" "4" faluco@1031: } faluco@1031: "GetTENext" faluco@1031: { faluco@1031: "windows" "8" faluco@1031: "linux" "8" faluco@1031: } faluco@1031: "TE_GetServerClass" faluco@1031: { faluco@1031: "windows" "1" faluco@1031: "linux" "1" faluco@1031: } faluco@1031: } faluco@1031: faluco@1031: "Signatures" faluco@1031: { faluco@1031: "CBaseTempEntity" faluco@1031: { faluco@1031: "library" "server" faluco@1031: "windows" "\x8B\xC1\x8B\x4C\x24\x04\xC7\x00\x2A\x2A\x2A\x2A\x89\x48\x04\x8B\x15\x2A\x2A\x2A\x2A\x89\x50\x08\xA3\x2A\x2A\x2A\x2A\xC2\x04\x00" faluco@1031: "linux" "@_ZN15CBaseTempEntityC2EPKc" faluco@1031: } faluco@1031: } faluco@1031: } ds@1065: ds@1065: /* General GameRules */ ds@1065: "#default" dvander@1056: { ds@1065: "#supported" ds@1065: { ds@1065: "game" "cstrike" ds@1065: "game" "dod" ds@1065: "game" "garrysmod" ds@1065: "game" "hl2mp" ds@1065: "game" "ship" ds@1065: "game" "!Dystopia" ds@1065: "game" "!Insurgency" ds@1068: "game" "!Pirates, Vikings and Knights II" ds@1065: "game" "!SourceForts v1.9.2" ds@1065: } ds@1065: dvander@1056: "Offsets" dvander@1056: { ds@1065: /* Offset into CreateGameRulesObject */ ds@1065: "g_pGameRules" dvander@1056: { ds@1065: "windows" "2" dvander@1056: } ds@1065: } ds@1065: ds@1065: "Signatures" ds@1065: { ds@1065: /* This signature sometimes has multiple matches, but this ds@1065: * does not matter as g_pGameRules is involved in all of them. ds@1065: * The same g_pGameRules offset applies to each match. ds@1065: * ds@1065: * Sometimes this block of bytes is at the beginning of the static ds@1065: * CreateGameRulesObject function and sometimes it is in the middle ds@1065: * of an entirely different function. This depends on the game. ds@1065: */ ds@1065: "CreateGameRulesObject" dvander@1056: { ds@1065: "library" "server" ds@1065: "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x6A\x01\xFF\x50" dvander@1056: } ds@1065: "g_pGameRules" dvander@1056: { ds@1065: "library" "server" ds@1065: "linux" "@g_pGameRules" dvander@1056: } dvander@1056: } dvander@1056: } dvander@1056: dvander@1056: /* Counter-Strike: Source */ dvander@1056: "cstrike" dvander@1056: { dvander@1056: "Offsets" dvander@1056: { dvander@1056: "GiveNamedItem" dvander@1056: { dvander@1056: "windows" "329" dvander@1056: "linux" "330" dvander@1056: } dvander@1056: "RemovePlayerItem" dvander@1056: { dvander@1056: "windows" "226" dvander@1056: "linux" "227" dvander@1056: } dvander@1056: "Weapon_GetSlot" dvander@1056: { dvander@1056: "windows" "224" dvander@1056: "linux" "225" dvander@1056: } dvander@1056: "Ignite" dvander@1056: { dvander@1056: "windows" "188" dvander@1056: "linux" "189" dvander@1056: } dvander@1056: "Extinguish" dvander@1056: { dvander@1056: "windows" "189" dvander@1056: "linux" "190" dvander@1056: } dvander@1056: "Teleport" dvander@1056: { dvander@1056: "windows" "98" dvander@1056: "linux" "99" dvander@1056: } dvander@1056: } dvander@1056: } dvander@1056: dvander@1056: /* Day of Defeat */ dvander@1056: "dod" dvander@1056: { dvander@1056: "Offsets" dvander@1056: { dvander@1056: "GiveNamedItem" dvander@1056: { dvander@1056: "windows" "328" dvander@1056: "linux" "330" dvander@1056: } dvander@1056: "RemovePlayerItem" dvander@1056: { dvander@1056: "windows" "226" dvander@1056: "linux" "227" dvander@1056: } dvander@1056: "Weapon_GetSlot" dvander@1056: { dvander@1056: "windows" "224" dvander@1056: "linux" "225" dvander@1056: } dvander@1056: "Ignite" dvander@1056: { dvander@1056: "windows" "188" dvander@1056: "linux" "189" dvander@1056: } dvander@1056: "Extinguish" dvander@1056: { dvander@1056: "windows" "189" dvander@1056: "linux" "190" dvander@1056: } dvander@1056: "Teleport" dvander@1056: { dvander@1056: "windows" "98" dvander@1056: "linux" "99" dvander@1056: } dvander@1056: } dvander@1056: } ds@1065: ds@1065: /* Half-Life 2: Deathmatch */ ds@1065: "hl2mp" dvander@1062: { dvander@1062: "Offsets" dvander@1062: { dvander@1062: "GiveNamedItem" dvander@1062: { ds@1065: "windows" "327" ds@1065: "linux" "328" dvander@1062: } dvander@1062: "RemovePlayerItem" dvander@1062: { ds@1065: "windows" "225" ds@1065: "linux" "226" dvander@1062: } dvander@1062: "Weapon_GetSlot" dvander@1062: { ds@1065: "windows" "223" ds@1065: "linux" "224" dvander@1062: } dvander@1062: "Ignite" dvander@1062: { ds@1065: "windows" "187" ds@1065: "linux" "188" dvander@1062: } dvander@1062: "Extinguish" dvander@1062: { ds@1065: "windows" "188" ds@1065: "linux" "189" dvander@1062: } dvander@1062: "Teleport" dvander@1062: { ds@1065: "windows" "97" ds@1065: "linux" "98" dvander@1062: } dvander@1062: } dvander@1062: } ds@1065: ds@1068: /* The Ship */ ds@1068: "ship" ds@1068: { ds@1068: "Offsets" ds@1068: { ds@1068: /* CBasePlayer */ ds@1068: "GiveNamedItem" ds@1068: { ds@1068: "windows" "316" ds@1068: "linux" "317" ds@1068: } ds@1068: "RemovePlayerItem" ds@1068: { ds@1068: "windows" "220" ds@1068: "linux" "221" ds@1068: } ds@1068: "Weapon_GetSlot" ds@1068: { ds@1068: "windows" "218" ds@1068: "linux" "219" ds@1068: } ds@1068: "Ignite" ds@1068: { ds@1068: "windows" "180" ds@1068: "linux" "181" ds@1068: } ds@1068: "Extinguish" ds@1068: { ds@1068: "windows" "181" ds@1068: "linux" "182" ds@1068: } ds@1068: "Teleport" ds@1068: { ds@1068: "windows" "100" ds@1068: "linux" "101" ds@1068: } ds@1068: ds@1068: /* Temp Entities */ ds@1068: "TE_GetServerClass" ds@1068: { ds@1068: "windows" "0" ds@1068: "linux" "0" ds@1068: } ds@1068: } ds@1068: } ds@1068: dvander@1056: /* Dsytopia */ ds@1065: "!Dystopia" dvander@1056: { dvander@1056: dvander@1056: "Offsets" dvander@1056: { dvander@1062: /* CBasePlayer */ dvander@1062: "GiveNamedItem" dvander@1062: { dvander@1062: "windows" "331" dvander@1062: "linux" "332" dvander@1062: } dvander@1062: "RemovePlayerItem" dvander@1062: { dvander@1062: "windows" "229" dvander@1062: "linux" "230" dvander@1062: } dvander@1062: "Weapon_GetSlot" dvander@1062: { dvander@1062: "windows" "227" dvander@1062: "linux" "228" dvander@1062: } dvander@1062: "Ignite" dvander@1062: { dvander@1062: "windows" "191" dvander@1062: "linux" "192" dvander@1062: } dvander@1062: "Extinguish" dvander@1062: { dvander@1062: "windows" "192" dvander@1062: "linux" "193" dvander@1062: } dvander@1062: "Teleport" dvander@1062: { dvander@1062: "windows" "100" dvander@1062: "linux" "101" dvander@1062: } dvander@1062: dvander@1056: /* Offset into CBaseTempEntity constructor. dvander@1056: * On Windows Dsytopia is heavily inlined; we use the function dvander@1056: * surrounding "aCouldnTFindTem" in IDA instead. dvander@1056: */ dvander@1056: "s_pTempEntities" dvander@1056: { dvander@1056: "windows" "70" dvander@1056: "linux" "29" dvander@1056: } dvander@1056: } dvander@1056: dvander@1056: "Signatures" dvander@1056: { dvander@1062: /* On Windows Dsytopia is heavily inlined; we use the function dvander@1062: * surrounding "aCouldnTFindTem" in IDA instead. dvander@1062: */ dvander@1056: "CBaseTempEntity" dvander@1056: { dvander@1056: "library" "server" dvander@1056: "windows" "\x81\xEC\x84\x00\x00\x00\x56\x8B\xF1\x8B\x46\x6C\x57\x8D\x7E\x6C\x8D\x4C\x24\x08\x83\xC8\x20\x51\x89\x44\x24\x0C\xE8\x2A\x2A\x2A" dvander@1056: } ds@1065: ds@1065: /* Dystopia always has to be different, doesn't it ds@1065: * ds@1065: * This is very similar to the general signature, except that ds@1065: * it does "mov edx, [eax+2Ch]" before making a call rather than ds@1065: * doing "call dword ptr [eax+2Ch]" ds@1065: */ ds@1065: "CreateGameRulesObject" ds@1065: { ds@1065: "library" "server" ds@1065: "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2" ds@1065: } ds@1065: } ds@1065: } ds@1065: ds@1065: /* Insurgency */ ds@1065: "!Insurgency" ds@1065: { ds@1065: "Offsets" ds@1065: { ds@1065: /* CBasePlayer */ ds@1065: "Ignite" ds@1065: { ds@1065: "windows" "174" ds@1065: "linux" "175" ds@1065: } ds@1065: "Extinguish" ds@1065: { ds@1065: "windows" "175" ds@1065: "linux" "176" ds@1065: } ds@1065: "Teleport" ds@1065: { ds@1065: "windows" "90" ds@1065: "linux" "91" ds@1065: } ds@1065: ds@1065: /* Temp Entities */ ds@1065: "s_pTempEntities" ds@1065: { ds@1065: "linux" "28" ds@1065: } ds@1065: } ds@1065: } ds@1068: ds@1068: /* Pirates, Vikings and Knights II */ ds@1068: "!Pirates, Vikings and Knights II" ds@1068: { ds@1068: "Offsets" ds@1068: { ds@1068: /* CBasePlayer */ ds@1068: "GiveNamedItem" ds@1068: { ds@1068: "windows" "328" ds@1068: "linux" "329" ds@1068: } ds@1068: "RemovePlayerItem" ds@1068: { ds@1068: "windows" "226" ds@1068: "linux" "227" ds@1068: } ds@1068: "Weapon_GetSlot" ds@1068: { ds@1068: "windows" "224" ds@1068: "linux" "225" ds@1068: } ds@1068: "Ignite" ds@1068: { ds@1068: "windows" "188" ds@1068: "linux" "189" ds@1068: } ds@1068: "Extinguish" ds@1068: { ds@1068: "windows" "189" ds@1068: "linux" "190" ds@1068: } ds@1068: "Teleport" ds@1068: { ds@1068: "windows" "98" ds@1068: "linux" "99" ds@1068: } ds@1068: ds@1068: /* Temp Entities */ ds@1068: "s_pTempEntities" ds@1068: { ds@1068: "linux" "29" ds@1068: } ds@1068: } ds@1068: } ds@1065: ds@1065: /* SourceForts 1.9.2 */ ds@1065: "!SourceForts v1.9.2" ds@1065: { ds@1065: "Offsets" ds@1065: { ds@1065: /* CBasePlayer */ ds@1065: "GiveNamedItem" ds@1065: { ds@1065: "windows" "294" ds@1065: "linux" "295" ds@1065: } ds@1065: "RemovePlayerItem" ds@1065: { ds@1065: "windows" "207" ds@1065: "linux" "208" ds@1065: } ds@1065: "Weapon_GetSlot" ds@1065: { ds@1065: "windows" "205" ds@1065: "linux" "206" ds@1065: } ds@1065: "Ignite" ds@1065: { ds@1065: "windows" "170" ds@1065: "linux" "171" ds@1065: } ds@1065: "Extinguish" ds@1065: { ds@1065: "windows" "171" ds@1065: "linux" "172" ds@1065: } ds@1065: "Teleport" ds@1065: { ds@1065: "windows" "90" ds@1065: "linux" "91" ds@1065: } ds@1065: ds@1065: /* Temp Entities */ ds@1065: "s_pTempEntities" ds@1065: { ds@1065: "linux" "29" ds@1065: } ds@1065: "TE_GetServerClass" ds@1065: { ds@1065: "windows" "0" ds@1065: "linux" "0" ds@1065: } dvander@1056: } dvander@1056: } dvander@945: }