Helpviewer/FlashCookieManager/FlashCookieReader.py

changeset 4614
e8996f522895
parent 4466
184660eecb94
child 4631
5c1a96925da4
equal deleted inserted replaced
4613:c7951eb9d525 4614:e8996f522895
118 .format(sDataType)) 118 .format(sDataType))
119 self.__data.read(6) 119 self.__data.read(6)
120 lenSolName, = struct.unpack(">H", self.__data.read(2)) 120 lenSolName, = struct.unpack(">H", self.__data.read(2))
121 # unsigned short, big-endian 121 # unsigned short, big-endian
122 solName = self.__data.read(lenSolName) 122 solName = self.__data.read(lenSolName)
123 solName = solName.decode("utf-8") 123 solName = solName.decode("utf-8", "replace")
124 self.__result["SolName"] = ("string", solName) 124 self.__result["SolName"] = ("string", solName)
125 self.__data.read(4) 125 self.__data.read(4)
126 while self.__data.tell() < lenSolData: 126 while self.__data.tell() < lenSolData:
127 lenVariableName, = struct.unpack(">H", self.__data.read(2)) 127 lenVariableName, = struct.unpack(">H", self.__data.read(2))
128 # unsigned short, big-endian 128 # unsigned short, big-endian
129 variableName = self.__data.read(lenVariableName) 129 variableName = self.__data.read(lenVariableName)
130 variableName = variableName.decode("utf-8") 130 variableName = variableName.decode("utf-8", "replace")
131 variableType = self.__data.read(1) 131 variableType = self.__data.read(1)
132 if len(variableType): 132 if len(variableType):
133 if variableType == self.Number: 133 if variableType == self.Number:
134 self.__parseNumber(variableName, self.__result) 134 self.__parseNumber(variableName, self.__result)
135 elif variableType == self.Boolean: 135 elif variableType == self.Boolean:
209 @type dict 209 @type dict
210 """ 210 """
211 lenStr, = struct.unpack(">H", self.__data.read(2)) 211 lenStr, = struct.unpack(">H", self.__data.read(2))
212 # unsigned short, big-endian 212 # unsigned short, big-endian
213 b = self.__data.read(lenStr) 213 b = self.__data.read(lenStr)
214 value = b.decode("utf-8") 214 value = b.decode("utf-8", "replace")
215 parent[variableName] = ("string", value) 215 parent[variableName] = ("string", value)
216 216
217 def __parseDate(self, variableName, parent): 217 def __parseDate(self, variableName, parent):
218 """ 218 """
219 Private method to parse a date. 219 Private method to parse a date.
247 @type dict 247 @type dict
248 """ 248 """
249 lenCData, = struct.unpack(">L", self.__data.read(4)) 249 lenCData, = struct.unpack(">L", self.__data.read(4))
250 # unsigned long, big-endian 250 # unsigned long, big-endian
251 cData = self.__data.read(lenCData) 251 cData = self.__data.read(lenCData)
252 value = cData.decode("utf-8") 252 value = cData.decode("utf-8", "replace")
253 parent[variableName] = ("xml", value) 253 parent[variableName] = ("xml", value)
254 254
255 def __parseOjm(self, variableName, parent): 255 def __parseOjm(self, variableName, parent):
256 """ 256 """
257 Private method to parse an m_object. 257 Private method to parse an m_object.
301 301
302 lenVariableName, = struct.unpack(">H", self.__data.read(2)) 302 lenVariableName, = struct.unpack(">H", self.__data.read(2))
303 # unsigned short, big-endian 303 # unsigned short, big-endian
304 while lenVariableName != 0: 304 while lenVariableName != 0:
305 variableName = self.__data.read(lenVariableName) 305 variableName = self.__data.read(lenVariableName)
306 variableName = variableName.decode("utf-8") 306 variableName = variableName.decode("utf-8", "replace")
307 variableType = self.__data.read(1) 307 variableType = self.__data.read(1)
308 if variableType == self.Number: 308 if variableType == self.Number:
309 self.__parseNumber(variableName, value) 309 self.__parseNumber(variableName, value)
310 elif variableType == self.Boolean: 310 elif variableType == self.Boolean:
311 self.__parseBoolean(variableName, value) 311 self.__parseBoolean(variableName, value)
352 352
353 lenVariableName, = struct.unpack(">H", self.__data.read(2)) 353 lenVariableName, = struct.unpack(">H", self.__data.read(2))
354 # unsigned short, big-endian 354 # unsigned short, big-endian
355 while lenVariableName != 0: 355 while lenVariableName != 0:
356 variableName = self.__data.read(lenVariableName) 356 variableName = self.__data.read(lenVariableName)
357 variableName = variableName.decode("utf-8") 357 variableName = variableName.decode("utf-8", "replace")
358 variableType = self.__data.read(1) 358 variableType = self.__data.read(1)
359 if variableType == self.Number: 359 if variableType == self.Number:
360 self.__parseNumber(variableName, value) 360 self.__parseNumber(variableName, value)
361 elif variableType == self.Boolean: 361 elif variableType == self.Boolean:
362 self.__parseBoolean(variableName, value) 362 self.__parseBoolean(variableName, value)
396 file is found 396 file is found
397 """ 397 """
398 lenCname = struct.unpack(">H", self.__data.read(2)) 398 lenCname = struct.unpack(">H", self.__data.read(2))
399 # unsigned short, big-endian 399 # unsigned short, big-endian
400 cname = self.__data.read(lenCname) 400 cname = self.__data.read(lenCname)
401 cname = cname.decode("utf-8") 401 cname = cname.decode("utf-8", "replace")
402 402
403 value = {} 403 value = {}
404 parent[variableName] = ("c_object; cname={0}".format(cname), value) 404 parent[variableName] = ("c_object; cname={0}".format(cname), value)
405 405
406 lenVariableName, = struct.unpack(">H", self.__data.read(2)) 406 lenVariableName, = struct.unpack(">H", self.__data.read(2))
407 # unsigned short, big-endian 407 # unsigned short, big-endian
408 while lenVariableName != 0: 408 while lenVariableName != 0:
409 variableName = self.__data.read(lenVariableName) 409 variableName = self.__data.read(lenVariableName)
410 variableName = variableName.decode("utf-8") 410 variableName = variableName.decode("utf-8", "replace")
411 variableType = self.__data.read(1) 411 variableType = self.__data.read(1)
412 if variableType == self.Number: 412 if variableType == self.Number:
413 self.__parseNumber(variableName, value) 413 self.__parseNumber(variableName, value)
414 elif variableType == self.Boolean: 414 elif variableType == self.Boolean:
415 self.__parseBoolean(variableName, value) 415 self.__parseBoolean(variableName, value)

eric ide

mercurial