<s> from templates import Plugin <EOL> from zipfile import ZipFile <EOL> import base64 <EOL> from Crypto . Cipher import Blowfish <EOL> import xml . etree . ElementTree as ET <EOL> class Thoughtcrime ( Plugin ) : <EOL> NAME = "<STR_LIT>" <EOL> def recon ( self ) : <EOL> return '<STR_LIT>' in self . zipfile . namelist ( ) and '<STR_LIT>' in self . zipfile . namelist ( ) <EOL> def extract ( self ) : <EOL> raw_resources = filter ( lambda x : x . startswith ( '<STR_LIT>' ) , self . zipfile . namelist ( ) ) <EOL> iv = "<STR_LIT>" <EOL> key = self . zipfile . open ( '<STR_LIT>' ) . read ( ) <EOL> key = '<STR_LIT>' . join ( [ '<STR_LIT>' % ord ( x ) for x in key ] ) [ <NUM_LIT:0> : <NUM_LIT:50> ] <EOL> cipher = Blowfish . new ( key , Blowfish . MODE_CBC , iv ) <EOL> decode = base64 . b64decode ( self . zipfile . open ( '<STR_LIT>' ) . read ( ) ) <EOL> config = cipher . decrypt ( decode ) <EOL> config = config [ : config . find ( '<STR_LIT>' ) + <NUM_LIT:9> ] <EOL> config = ET . fromstring ( config ) <EOL> c2 = config . findall ( '<STR_LIT>' ) [ <NUM_LIT:0> ] . get ( '<STR_LIT>' ) . split ( '<STR_LIT:;>' ) <EOL> phone = config . findall ( '<STR_LIT>' ) [ <NUM_LIT:0> ] . get ( '<STR_LIT>' ) <EOL> return { '<STR_LIT>' : c2 , '<STR_LIT>' : phone } </s>
