summaryrefslogtreecommitdiff
path: root/servergreps/hercules/src/hercules.py
diff options
context:
space:
mode:
Diffstat (limited to 'servergreps/hercules/src/hercules.py')
-rwxr-xr-xservergreps/hercules/src/hercules.py69
1 files changed, 10 insertions, 59 deletions
diff --git a/servergreps/hercules/src/hercules.py b/servergreps/hercules/src/hercules.py
index c2f41d3..344ec31 100755
--- a/servergreps/hercules/src/hercules.py
+++ b/servergreps/hercules/src/hercules.py
@@ -26,21 +26,6 @@ class Hercules:
namedPacketre = re.compile(
"((\t|[ ])*)(?P<name>[\w0-9_]+)([ ]*)=" +
"([ ]*)0x(?P<value>[0-9a-fA-F]+)")
- ourPacketre = re.compile(
- "(WFIFOW|WBUFW)([ ]*)[(]([ ]*)([\w>_-]+),([ ]*)" +
- "(?P<offset>0)([ ]*)[)]([ ]*)=([ ]*)0x(?P<packet>[0-9a-fA-F]+)([ ]*)[;]")
- ourPacketre2 = re.compile("PacketType([ ]*)=([ ]*)(?P<name>[\w_]+);")
- ourPacketre3 = re.compile(
- "(WFIFOW|WBUFW)([ ]*)[(]([ ]*)([\w>_-]+),([ ]*)" +
- "(?P<offset>0)([ ]*)[)]([ ]*)=([ ]*)(?P<packet>[0-9\w]+)([ ]*)[;]")
- ourPacketre4 = re.compile(" cmd([ ]*)=([ ]*)0x(?P<packet>[0-9a-fA-F]+);")
- ourPacketre5 = re.compile(
- "(WFIFOW|WBUFW)([ ]*)[(]([ ]*)([\w>_-]+),([ ]*)" +
- "(count[*]p_len)([ ]*)[)]([ ]*)=([ ]*)(?P<packet>[0-9\w]+)([ ]*)[;]")
- outPacketLoginre = re.compile(
- "([ ]*)PACKET_ID_(?P<name>[A-Z0-9_]+)([ ]*)=" +
- "([ ]*)0x(?P<packet>[0-9a-fA-F]+),")
- serverpacketLoginOutre = re.compile("packet_id([ ]*)=([ ]*)(?P<name>[\w_]+);")
clientpacketre = re.compile(
"(\t*)packet[(]0x(?P<packet>[0-9a-fA-F]+),(?P<len>[\w-]+)" +
",(?P<function>[0-9a-zA-Z_>-]+)(,|[)])")
@@ -52,6 +37,10 @@ class Hercules:
clientpacketLenre = re.compile(
"(\t*)packet[(]0x(?P<packet>[0-9a-fA-F]+),(?P<len>[\w-]+)" +
"[)]")
+ outPacketLoginre = re.compile(
+ "([ ]*)PACKET_ID_(?P<name>[A-Z0-9_]+)([ ]*)=" +
+ "([ ]*)0x(?P<packet>[0-9a-fA-F]+),")
+ serverpacketLoginOutre = re.compile("packet_id([ ]*)=([ ]*)(?P<name>[\w_]+);")
def collectNamedPackets(self, fileName):
with open(fileName, "r") as f:
@@ -99,20 +88,14 @@ class Hercules:
elif filt.search(file1):
with open(file2, "r") as f:
for line in f:
- m = self.ourPacketre4.findall(line)
- if len(m) > 0:
- for str in m:
- data = str[2]
- while len(data) < 4:
- data = "0" + data
- self.addServerPacket(data)
- m = self.ourPacketre5.findall(line)
+ Utils.getOutPackets(line, self)
+ m = self.serverpacketLoginOutre.findall(line)
if len(m) > 0:
for str in m:
- data = str[9]
- while len(data) < 4:
- data = "0" + data
- self.addServerPacket(data)
+ if str[2] in self.loginPacketNameToId:
+ data = str[2]
+ data = self.loginPacketNameToId[data]
+ self.addServerPacket(data)
m = self.outPacketLoginre.findall(line)
if len(m) > 0:
for str in m:
@@ -120,38 +103,6 @@ class Hercules:
while len(data) < 4:
data = "0" + data
self.loginPacketNameToId["PACKET_ID_" + str[1]] = data
- m = self.ourPacketre.findall(line)
- if len(m) == 0:
- m = self.ourPacketre3.findall(line)
- if len(m) > 0:
- for str in m:
- if str[9] == "0":
- continue
- data = str[9]
- if data == "cmd":
- continue
- while len(data) < 4:
- data = "0" + data
- self.addServerPacket(data)
-
- m = self.ourPacketre2.findall(line)
- if len(m) > 0:
- for str in m:
- if str[2] == "0":
- continue
- data = str[2]
- if len(data) > 2 and data[0:2] == "0x":
- data = data[2:]
- while len(data) < 4:
- data = "0" + data
- self.addServerPacket(data)
- m = self.serverpacketLoginOutre.findall(line)
- if len(m) > 0:
- for str in m:
- if str[2] in self.loginPacketNameToId:
- data = str[2]
- data = self.loginPacketNameToId[data]
- self.addServerPacket(data)
m = self.packetLenre.findall(line)
if len(m) > 0:
for str in m: