Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import binascii, struct, os, gzip, pdb
- def text_encode(s):
- s1 = ''
- flag = False
- for char in s:
- if ord(char) < 0x20 and ord(char) != 0xA:
- if not flag:
- flag = True
- s1 += '{'
- s1 += '{:0>2x}'.format(ord(char))
- else:
- if flag:
- flag = False
- s1 += '}'
- s1 += char
- return s1
- filename = 'MAP_T_KAN_00.BIN'
- size = os.path.getsize(filename)
- with open(filename, 'rb') as f:
- filedata = gzip.decompress(f.read())
- offset = struct.unpack('<I', filedata[0xC:0x10])[0]
- size = struct.unpack('<I', filedata[offset+0x24:offset+0x28])[0]
- filedata = filedata[offset:offset+size]
- string_num = struct.unpack('<I', filedata[0x30:0x34])[0]
- start = struct.unpack('<I', filedata[0x34:0x38])[0]
- end = struct.unpack('<I', filedata[0x3C:0x40])[0]
- print(start, end)
- s = filedata[start:end].split(b'\x00')[:string_num]
- with open('output.txt', 'w', encoding='utf-8') as f:
- for i, x in enumerate(s):
- f.write(str(i) + '\t')
- x = x.decode('utf-8')
- f.write(text_encode(x).replace('\n', '\n\t') + '\n')
Add Comment
Please, Sign In to add comment