#!usr/bin/env python # -*- coding: utf-8 -*- ######################################################################## # # unescape.py # Elias Schwerdtfeger, http://www.tamagothi.de/ # # Das kleine bisschen Konvertierung der ganz tollen Javascript-Tricks # unserer Spammer. Kann übrigens auch mit einer URL aufgerufen werden, # was den Umweg mit wget erspart... # # Lizenziert unter Piratenlizenz, Share and Enjoy, but don't sue me! # http://wwwut.wordpress.com/lizenz/ # ######################################################################## import sys import os.path import re import urllib2 url_re = re.compile(r'https?://.*') scan_re = re.compile(r'(?:%[0-9a-f]+){3,}', re.IGNORECASE) def unescape(s): return u''.join([unichr(int(i, 16)) for i in s.split('%')[1:]]) def scan_text(name, txt): found = False for i in scan_re.findall(txt): if not found: found = True print 'Maskierte Textbereiche in', name print unescape(i).strip() if not found: print 'Keine maskierten Texte in', name print def scan_file(filename): f = open(filename, 'rt') ftxt = f.read() f.close() scan_text(filename, ftxt) def scan_url(url): f = urllib2.urlopen(url) ftxt = f.read() f.close() scan_text(url, ftxt) def arguments(arglist): for param in sys.argv[1:]: if url_re.match(param): scan_url(param) elif os.path.exists(param): scan_file(param) else: print unescape(param).strip() def interactive(): try: while True: t = raw_input('Unescape? ') for i in scan_re.findall(t): print unescape(i).strip() except: print def main(): args = sys.argv[1:] if len(args) > 0: arguments(args) else: interactive() if __name__ == '__main__': main()