def get_dots(n, s, e): captions = ['', 'First dots', 'Second dots'] dots = pcutils.get_string_from_page('return/', 'good', start=s, end=e, un='huge', pw='file') pcutils.print_lines(dots.split(pcutils.NEWLINE), captions[n]) dots = list(map(int, ''.join(dots.splitlines()).split(','))) print() return list(zip(dots[0::2], dots[1::2]))
def get_zip_archive(): archive = zipfile.ZipFile('channel.zip', 'r') readme = archive.read('readme.txt').decode('ascii') pcutils.print_lines(readme.split(pcutils.NEWLINE), 'readme') return archive
return 'a' if ch == 'z': return 'b' return chr(ord(ch) + 2) def shift_all(sentences): return [ ''.join(shift2(ch) if 'a' <= ch <= 'z' else ch for ch in sentence) for sentence in sentences ] if __name__ == '__main__': pcutils.try_page('def/', 'map', caption='Challenge page') print() encoded = pcutils.get_string_from_page('def/', 'map', start='<font color="#f000f0">', end='</tr></td>') pcutils.print_lines(encoded.split('. '), 'Message to decode') pcutils.print_lines(''.join(shift_all(encoded)).split('. '), 'Decoded message') page = ''.join(shift2(ch) for ch in 'map') print(f'map shifted: {page}') pcutils.try_page('def/', page, '.html', caption='Next challenge page')
def get_message(s): lines = s.split('. ') pcutils.print_lines(lines, 'Message from the bar') print() message = list(map(int, lines[1].split('[')[1][0:-1].split(', '))) return ''.join(map(chr, message))
import os def create_pickle_info(): pickle_data = pcutils.get_bytes_from_page('def/', 'banner', '.p') outfile = open('pickle.dat', 'wb') outfile.write(pickle_data) outfile.close() infile = open('pickle.dat', 'rb') pickle_table = pickle.load(infile) infile.close() os.remove('pickle.dat') return pickle_table if __name__ == '__main__': pcutils.try_page('def/', 'peak', caption='Challenge page') print() pickle_table = create_pickle_info() pcutils.print_lines(pickle_table, 'Pickle table') print() print(f'Printing banner...') for line in pickle_table: print(''.join(ch * w for ch, w in line)) pcutils.try_page('def/', 'channel', caption='Next challenge page')
''' the python challenge 3 ''' import pcutils import re if __name__ == '__main__': pcutils.try_page('def/', 'equality', caption='Challenge page') print() mess_below = pcutils.get_string_from_page('def/', 'equality', start='<!--', end='-->') pcutils.print_lines( mess_below.split(pcutils.NEWLINE)[0:10], 'Mess below from web page') print('...') print() pattern = '[a-z]{1}[A-Z]{3}[a-z]{1}[A-Z]{3}[a-z]{1}' matches = re.findall(pattern, mess_below) pcutils.print_lines(matches, 'Matches') print() page = ''.join(s[4] for s in matches) pcutils.try_page('def/', page, caption='Trying page in url...') message = pcutils.get_string_from_page( 'def/', page,
import pcutils import collections if __name__ == '__main__': pcutils.try_page('def/', 'ocr', caption='Challenge page') print() s = pcutils.get_string_from_page( 'def/', 'ocr', start='<!--', end='-->', ) mess_below = s[s.index('%'):] pcutils.print_lines( mess_below.split(pcutils.NEWLINE)[0:10], 'Mess below from web page') print('...') print() frequencies = collections.defaultdict(lambda: 0) for ch in mess_below: if ch.isalnum(): frequencies[ch] += 1 pcutils.print_lines(frequencies.items(), 'Frequencies of characters in mess') print() page = ''.join(ch for ch, f in frequencies.items() if f == 1) pcutils.try_page('def/', page, caption='Next challenge page')