File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change @@ -59,6 +59,7 @@ def create_message(self):
5959 f = open (self .addr , 'r' )
6060 md5string = ''
6161 msgfile = f .read ()
62+ f .close ()
6263 data = msgfile .split ('\n ' )
6364 md5string = data [0 ]
6465
@@ -135,6 +136,53 @@ def serialize(self, buff):
135136 buff.write(struct.pack('{}',self.{}))""" .format (def_types .get (data [i ].split (' ' )[0 ]), data [i ].split (' ' )[1 ]))
136137
137138 script .write ("""
139+ except Exception as e:
140+ print(e)
141+
142+ def deserialize(self, str):
143+ try:
144+ end = 0""" )
145+
146+ for i in range (0 ,len (data )- 1 ):
147+ temp = data [i ].split (' ' )[1 ]
148+ temppack = data [i ].split (' ' )[0 ]
149+
150+ if 'string' in temppack :
151+ script .write ("""
152+ start = end
153+ end += 4
154+ (length,) = struct.unpack('<I', str[start:end])
155+ start = end
156+ end += length
157+ self.{} = str[start:end].decode('utf-8')""" .format (temp ))
158+
159+ elif ('bool' or 'byte' or 'char' or '8' ) in temppack :
160+ script .write ("""
161+ start = end
162+ end += 1
163+ (self.{},) = struct.unpack('{}', str[start:end])""" .format (temp , def_types .get (temppack )))
164+
165+ elif '16' in temppack :
166+ script .write ("""
167+ start = end
168+ end += 2
169+ (self.{},) = struct.unpack('{}', str[start:end])""" .format (temp , def_types .get (temppack )))
170+
171+ elif '32' in temppack :
172+ script .write ("""
173+ start = end
174+ end += 4
175+ (self.{},) = struct.unpack('{}', str[start:end])""" .format (temp , def_types .get (temppack )))
176+
177+ elif '64' in temppack :
178+ script .write ("""
179+ start = end
180+ end += 8
181+ (self.{},) = struct.unpack('{}', str[start:end])""" .format (temp , def_types .get (temppack )))
182+
183+ script .write ("""
184+ return self
138185 except Exception as e:
139186 print(e)""" )
187+
140188 script .close ()
You can’t perform that action at this time.
0 commit comments