Skip to content

Instantly share code, notes, and snippets.

@moriyoshi
Created July 3, 2014 03:30
Show Gist options
  • Save moriyoshi/2807bbc3292b01b41be1 to your computer and use it in GitHub Desktop.
Save moriyoshi/2807bbc3292b01b41be1 to your computer and use it in GitHub Desktop.
import re
encoded_chars = [
'^\100', '^\101', '^\102', '^\103', '^\104', '^\105', '^\106', '^\107',
'^\110', '^\111', '^\112', '^\113', '^\114', '^\115', '^\116', '^\117',
'^\120', '^\121', '^\122', '^\123', '^\124', '^\125', '^\126', '^\127',
'^\130', '^\131', '^\132', '^\133', '^\134', '^\135', '^\136', '^\137',
'\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
'\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
'\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
'\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
'\100', '\101', '\102', '\103', '\104', '\105', '\106', '\107',
'\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117',
'\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127',
'\130', '\131', '\132', '\133', '\134', '\135', '\136', '\137',
'\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
'\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
'\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
'\170', '\171', '\172', '\173', '\174', '\175', '\176', '^?',
'~\100', '~\101', '~\102', '~\103', '~\104', '~\105', '~\106', '~\107',
'~\110', '~\111', '~\112', '~\113', '~\114', '~\115', '~\116', '~\117',
'~\120', '~\121', '~\122', '~\123', '~\124', '~\125', '~\126', '~\127',
'~\130', '~\131', '~\132', '~\133', '~\134', '~\135', '~\136', '~\137',
'M-\040', 'M-\041', 'M-\042', 'M-\043', 'M-\044', 'M-\045', 'M-\046', 'M-\047',
'M-\050', 'M-\051', 'M-\052', 'M-\053', 'M-\054', 'M-\055', 'M-\056', 'M-\057',
'M-\060', 'M-\061', 'M-\062', 'M-\063', 'M-\064', 'M-\065', 'M-\066', 'M-\067',
'M-\070', 'M-\071', 'M-\072', 'M-\073', 'M-\074', 'M-\075', 'M-\076', 'M-\077',
'M-\100', 'M-\101', 'M-\102', 'M-\103', 'M-\104', 'M-\105', 'M-\106', 'M-\107',
'M-\110', 'M-\111', 'M-\112', 'M-\113', 'M-\114', 'M-\115', 'M-\116', 'M-\117',
'M-\120', 'M-\121', 'M-\122', 'M-\123', 'M-\124', 'M-\125', 'M-\126', 'M-\127',
'M-\130', 'M-\131', 'M-\132', 'M-\133', 'M-\134', 'M-\135', 'M-\136', 'M-\137',
'M-\140', 'M-\141', 'M-\142', 'M-\143', 'M-\144', 'M-\145', 'M-\146', 'M-\147',
'M-\150', 'M-\151', 'M-\152', 'M-\153', 'M-\154', 'M-\155', 'M-\156', 'M-\157',
'M-\160', 'M-\161', 'M-\162', 'M-\163', 'M-\164', 'M-\165', 'M-\166', 'M-\167',
'M-\170', 'M-\171', 'M-\172', 'M-\173', 'M-\174', 'M-\175', 'M-\176', '~?',
]
decode_map = dict((v, k) for k, v in enumerate(encoded_chars))
def decode(s):
retval = []
for c in re.finditer(r'\^[\100-\137?]|~[\100-\137?]|M-[\040-\176]|[\040-\176]', s):
retval.append(chr(decode_map[c.group(0)]))
return b''.join(retval)
if __name__ == '__main__':
print(decode('M-f~]M-!M-dM-;M-6M-f~V~GM-c~B~RM-hM-?M-=M-e~JM- '))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment