diff options
Diffstat (limited to 'mbd/access_list.pl')
-rw-r--r-- | mbd/access_list.pl | 294 |
1 files changed, 0 insertions, 294 deletions
diff --git a/mbd/access_list.pl b/mbd/access_list.pl deleted file mode 100644 index 89a8182..0000000 --- a/mbd/access_list.pl +++ /dev/null @@ -1,294 +0,0 @@ - -package Config; - -sub game_id { - my ($data, $offset) = @_; - my $id = ((ord(substr($data, $offset, 1)) << 8) | ord(substr($data, $offset + 1, 1))); - return $id; -} - -our @access_list = ( - # half-life - untested (packet dump only) - { - name => 'Half-Life', - ports => [ 27015 ], - sizes => [ 16 ] - }, - - # cs 1.6 - verified - # (funker muligens for _alle_ source-spill inkl. hl2/cs:s) - { - name => 'CS:Source', - ports => [ "26900..26903", "27015..27017" ], - sizes => [ 25 ], - filter => sub { return (game_id(shift, 4) == 0x4325); } - }, - { - name => 'Left 4 Dead', - ports => [ "26900..26903", "27015..27017" ], - sizes => [ 25 ], - filter => sub { return (game_id(shift, 4) == 0x43f3); } - }, - { - name => 'CS 1.6', - ports => [ "26900..26903", "27015..27017" ], - sizes => [ 25 ], - filter => sub { return (game_id(shift, 4) == 0x5453); } - }, - { - name => 'Unknown Source-based game (ID 0x4326)', - ports => [ "26900..26903", "27015..27017" ], - sizes => [ 25 ], - filter => sub { return (game_id(shift, 4) == 0x4326); } - }, - { - name => 'Other Source game (unknown game ID)', - ports => [ "26900..26903", "27015..27017" ], - sizes => [ 25 ], - }, - { - name => 'Other Source game (unknown game ID, odd length 33)', - ports => [ "26900..26903", "27015..27017" ], - sizes => [ 33 ], - }, - { - name => 'Other Source game (unknown game ID, odd length 58)', - ports => [ "26900..26903", "27015..27017" ], - sizes => [ 58 ], - }, - { - name => 'Other Source game (unknown game ID, odd length 15)', - ports => [ "26900..26903", "27015..27017" ], - sizes => [ 15 ], - }, - - # doom 3 - verified - { - name => 'Doom 3', - ports => [ "27666" ], - sizes => [ 14 ] - }, - - # quake 1 - verified - { - name => 'Quake 1', - ports => [ 26000 ], - sizes => [ 12 ] - }, - - # q3a - tested with demo only - # rtcw: enemy territory - untested (packet dump only) - { - name => 'Quake 3 Arena, RTCW: ET', -# ports => [ "27960..27969" ], - ports => [ "27960..27961" ], - sizes => [ 15 ] - }, - - # bf2 - tested with demo only - # bf2142 reportedly uses same engine - { - name => 'BF2/BF2142', - ports => [ "29900" ], - sizes => [ 8 ] - }, - - # bf1942 - unverified (packet dump only) - { - name => 'BF1942', - ports => [ "22000..22010" ], - sizes => [ 8 ] - }, - - # quake 4 - tested with demo only, MUST select "internet" - { - name => 'Quake 4', - ports => [ 27950, 28004 ], - sizes => [ 14 ] - }, - - # quake 2 - untested (packet dump only) - { - name => 'Quake 2', - ports => [ 27910 ], - sizes => [ 11 ] - }, - - # warcraft 3 - untested (packet dump only) - { - name => 'Warcraft 3: Reign of Chaos (1.00)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x3352 && ord(substr($data, 8, 1)) == 0; } - }, - { - name => 'Warcraft 3: Reign of Chaos (1.07)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x3352 && ord(substr($data, 8, 1)) == 7; } - }, - { - name => 'Warcraft 3: Reign of Chaos (1.20)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x3352 && ord(substr($data, 8, 1)) == 20; } - }, - { - name => 'Warcraft 3: Reign of Chaos (1.22)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x3352 && ord(substr($data, 8, 1)) == 22; } - }, - { - name => 'Warcraft 3: Reign of Chaos (1.23)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x3352 && ord(substr($data, 8, 1)) == 23; } - }, - { - name => 'Warcraft 3: Reign of Chaos (other patch level)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x3352; } - }, - { - name => 'Warcraft 3: The Frozen Throne (1.17)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x5058 && ord(substr($data, 8, 1)) == 17; } - }, - { - name => 'Warcraft 3: The Frozen Throne (1.18)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x5058 && ord(substr($data, 8, 1)) == 18; } - }, - { - name => 'Warcraft 3: The Frozen Throne (1.20)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x5058 && ord(substr($data, 8, 1)) == 20; } - }, - { - name => 'Warcraft 3: The Frozen Throne (1.21)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x5058 && ord(substr($data, 8, 1)) == 21; } - }, - { - name => 'Warcraft 3: The Frozen Throne (1.22)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x5058 && ord(substr($data, 8, 1)) == 22; } - }, - { - name => 'Warcraft 3: The Frozen Throne (1.23)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x5058 && ord(substr($data, 8, 1)) == 23; } - }, - { - name => 'Warcraft 3: The Frozen Throne (1.26)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x5058 && ord(substr($data, 8, 1)) == 26; } - }, - { - name => 'Warcraft 3: The Frozen Throne (other patch level)', - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) == 0x5058; } - }, - { - name => 'Warcraft 3 (unknown version)', -# ports => [ "6112..6119" ], - ports => [ 6112 ], - sizes => [ 16 ], - filter => sub { my $data = shift; return (ord(substr($data, 1, 1)) == 0x2f) && game_id($data, 4) != 0x5058 && game_id($data, 4) != 0x3352; } - }, - { - name => 'Warcraft 3 (unknown version, odd length)', - ports => [ 6112 ], - sizes => [ 19 ], - }, - - # ut2003/ut2004 - untested (packet dump only) - { - name => 'UT2003/UT2004', - ports => [ 10777 ], - sizes => [ 5 ] - }, - - # soldat - untested (packet dump only) - { - name => 'Soldat', - ports => [ 23073 ], - sizes => [ 8 ] - }, - - # starcraft - untested (packet dump only) - { - name => 'Starcraft', - ports => [ 6111, 6112 ], - sizes => [ 8 ], - filter => sub { return (game_id(shift, 0) == 0x08ef); } - }, - { - name => 'Starcraft: Brood War', - ports => [ 6111, 6112 ], - sizes => [ 8 ], - filter => sub { return (game_id(shift, 0) == 0xf733); } - }, - { - name => 'Starcraft (unknown game ID)', - ports => [ 6111, 6112 ], - sizes => [ 8 ], - filter => sub { my $id = game_id(shift, 0); return ($id != 0x08ef && $id != 0xf733); } - }, - - # trackmania nations - untested (packet dump only) - { - name => 'Trackmania Nations', - ports => [ "2350" ], - sizes => [ 42, 30 ] - }, - - # company of heroes - untested (packet dump only) - { - name => 'Company of Heroes', - ports => [ 9100 ], - sizes => [ 39 ] - }, - - # command & conquer 3 - untested (packet dump only, reported to have some kind - # of chat functionality) -# { -# name => 'Command & Conquer 3', -# ports => [ "8086..8093" ], -# sizes => [ 476 ], -# filter => sub { return 0; } -# }, - - # openttd - { - name => 'OpenTTD', - ports => [ 3979 ], - sizes => [ 3 ] - }, - - # CoD4 - { - name => 'Call of Duty 4', - ports => [ 28960 ], - sizes => [ 15 ], - }, - - # Far Cry 2 - { - name => 'Far Cry 2', - ports => [ 9004 ], - sizes => [ 114, 118, 122, 126 ], - }, - - # unreal tournament, port 9777? -) |