Beispiel #1
0
def benchmark():
    # 128-bit key
    key = 'a1f6258c877d5fcd8964484538bfc92c'.decode('hex')
    iv  = 'ed62e16363638360fdd6ad62112794f0'.decode('hex')

    aes = pyaes.new(key, pyaes.MODE_CBC, iv)
    ciphertext = aes.encrypt(cleartext)

    # need to reset IV for decryption
    aes = pyaes.new(key, pyaes.MODE_CBC, iv)
    plaintext = aes.decrypt(ciphertext)

    assert plaintext == cleartext
Beispiel #2
0
def benchmark():
    # 128-bit key
    key = 'a1f6258c877d5fcd8964484538bfc92c'.decode('hex')
    iv = 'ed62e16363638360fdd6ad62112794f0'.decode('hex')

    aes = pyaes.new(key, pyaes.MODE_CBC, iv)
    ciphertext = aes.encrypt(cleartext)

    # need to reset IV for decryption
    aes = pyaes.new(key, pyaes.MODE_CBC, iv)
    plaintext = aes.decrypt(ciphertext)

    assert plaintext == cleartext
Beispiel #3
0
def play(listitem, item):
    played = False
    print 'i n pl;ay'
    try:
        try:
            print 'enc Item', item
            url = item["msg"]["channel"]["http_stream"]
            print 'encurl', url
            if not url.startswith('http'):
                import pyaes

                key = "ZGlmajM4OXJqZjgzZmY5MA==".decode("base64")
                iv = "Z3IwNGpoc2Y0Nzg5MCQ5Mw==".decode("base64")
                print 'trying to decode'
                decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
                url = decryptor.decrypt(url.decode("hex")).split('\0')[0]
                print repr(url)
            if '|' in url:  # and 1==2:
                url = url  #.split('|')[0]+"|User-Agent=UKTVNOW_PLAYER_1.2&Referer=www.uktvnow.net"
            elif url.startswith('http'):
                url = url.split('|')[0] + "|User-Agent=%s" % getUserAgent()

            if url.startswith('rtmp'):
                url += ' timeout=10'
            print 'first', url
            played = tryplay(url, listitem)

        except:
            print 'err in play'
            traceback.print_exc(file=sys.stdout)
        if played: return True
        #print "playing stream name: " + str(name)
        #xbmc.Player(  ).play( urlToPlay, listitem)
        url = item["msg"]["channel"]["rtmp_stream"]
        import pyaes
        key = "ZGlmajM4OXJqZjgzZmY5MA==".decode("base64")
        iv = "Z3IwNGpoc2Y0Nzg5MCQ5Mw==".decode("base64")
        decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
        url = decryptor.decrypt(url.decode("hex")).split('\0')[0]
        print repr(url)
        url = url.replace(' ', '')
        if '|' not in url and url.startswith('http'):
            url = url + "|User-Agent=%s" % getUserAgent()
        if url.startswith('rtmp'):
            url += ' timeout=10'
        if not played:
            played = tryplay(url, listitem)
    except:
        pass
    return played
def play(listitem, item):
    played=False
    print 'i n pl;ay'
    try:
        try:
            print 'enc Item',item
            url=item["msg"]["channel"]["http_stream"]
            print 'encurl',url
            if not url.startswith('http'):
                import pyaes

                key="ZGlmajM4OXJqZjgzZmY5MA==".decode("base64")
                iv="Z3IwNGpoc2Y0Nzg5MCQ5Mw==".decode("base64")
                print 'trying to decode'
                decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
                url= decryptor.decrypt(url.decode("hex")).split('\0')[0]
                print repr(url)
            if '|' in url:# and 1==2:
                url=url#.split('|')[0]+"|User-Agent=UKTVNOW_PLAYER_1.2&Referer=www.uktvnow.net"
            elif url.startswith('http') :
                url=url.split('|')[0]+"|User-Agent=%s"%getUserAgent()

            if url.startswith('rtmp'):
                url+=' timeout=10'
            print 'first',url
            played=tryplay(url,listitem)
            
        except: 
            print 'err in play'
            traceback.print_exc(file=sys.stdout)
        if played: return True
        #print "playing stream name: " + str(name) 
        #xbmc.Player(  ).play( urlToPlay, listitem)    
        url=item["msg"]["channel"]["rtmp_stream"]
        import pyaes
        key="ZGlmajM4OXJqZjgzZmY5MA==".decode("base64")
        iv="Z3IwNGpoc2Y0Nzg5MCQ5Mw==".decode("base64")
        decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
        url= decryptor.decrypt(url.decode("hex")).split('\0')[0]
        print repr(url)
        url=url.replace(' ','')
        if '|' not in url and url.startswith('http'):
            url=url+"|User-Agent=%s"%getUserAgent()
        if url.startswith('rtmp'):
            url+=' timeout=10'
        if not played:
            played=tryplay(url,listitem)
    except: pass
    return played
Beispiel #5
0
def decrypt(val,key):    
    f= decode(val);
    c=f[8:16]
    k=func_u(key);
    
    a,o= func_h(k, c)
#    print 'aaaaaaaaaaaaaaaaa is ',a
#    print 'oooooooooooooooo is ',o
    
    #print c
    f=f[16:]
    key=a
    iv=o
 #   print len(key)
    key2=""
    for k in range(0,len(key)):
        key2+=chr(key[k])
    iv2=""
    for k in range(0,len(iv)):
        iv2+=chr(iv[k])
    f2=""    
    for k in range(0,len(f)):
        f2+=chr(f[k])
        
    

    import pyaes
    decryptor = pyaes.new(key2, pyaes.MODE_CBC, IV=iv2)
    return decryptor.decrypt(f).replace('\x00', '')
Beispiel #6
0
def encode(plaintext,passphrase,saltsize=8):
    salt= os.urandom(saltsize)
    data = evpKDF(passphrase,salt)
    decryptor = pyaes.new(data['key'], pyaes.MODE_CBC, IV=data['iv'])
    plaintext = PKCS7Encoder().encode(plaintext)
    enctext= decryptor.encrypt(plaintext)
    return base64.b64encode("Salted__"+salt+enctext)
Beispiel #7
0
def benchmark(key, mode, runs, func, text):
    # IV is ignored for ECB mode
    aes = pyaes.new(key, mode, IV=iv)

    f = getattr(aes, func)
    for i in xrange(runs):
        f(text)
Beispiel #8
0
def decrypt(val, key):
    f = decode(val)
    c = f[8:16]
    k = func_u(key)

    a, o = func_h(k, c)
    #    print 'aaaaaaaaaaaaaaaaa is ',a
    #    print 'oooooooooooooooo is ',o

    #print c
    f = f[16:]
    key = a
    iv = o
    #   print len(key)
    key2 = ""
    for k in range(0, len(key)):
        key2 += chr(key[k])
    iv2 = ""
    for k in range(0, len(iv)):
        iv2 += chr(iv[k])
    f2 = ""
    for k in range(0, len(f)):
        f2 += chr(f[k])

    import pyaes
    decryptor = pyaes.new(key2, pyaes.MODE_CBC, IV=iv2)
    return decryptor.decrypt(f).replace('\x00', '')
Beispiel #9
0
def benchmark(key, mode, runs, func, text):
    # IV is ignored for ECB mode
    aes = pyaes.new(key, mode, IV=iv)

    f = getattr(aes, func)
    for i in xrange(runs):
        f(text)
Beispiel #10
0
 def _aes_decrypt(self, key, iv, text):
     if usepycrpto:
         return AES.new(key, AES.MODE_CBC, iv).decrypt(text)
     else:
         import pyaes
         decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
         ds1 = decryptor.decrypt(text)#.replace('\x00', '')
         return ds1
Beispiel #11
0
 def _aes_decrypt(self, key, iv, text):
     if usepycrpto:
         return AES.new(key, AES.MODE_CBC, iv).decrypt(text)
     else:
         import pyaes
         decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
         ds1 = decryptor.decrypt(text)  #.replace('\x00', '')
         return ds1
Beispiel #12
0
def getSoup(url,data=None):
        global viewmode,tsdownloader, hlsretry
        tsdownloader=False
        hlsretry=False
        if url.startswith('http://') or url.startswith('https://'):
            enckey=False
            if '$$TSDOWNLOADER$$' in url:
                tsdownloader=True
                url=url.replace("$$TSDOWNLOADER$$","")
            if '$$HLSRETRY$$' in url:
                hlsretry=True
                url=url.replace("$$HLSRETRY$$","")
            if '$$LSProEncKey=' in url:
                enckey=url.split('$$LSProEncKey=')[1].split('$$')[0]
                rp='$$LSProEncKey=%s$$'%enckey
                url=url.replace(rp,"")                
            data =makeRequest(url)
            if enckey:
                    import pyaes
                    enckey=enckey.encode("ascii")
                    print enckey
                    missingbytes=16-len(enckey)
                    enckey=enckey+(chr(0)*(missingbytes))
                    print repr(enckey)
                    data=base64.b64decode(data)
                    decryptor = pyaes.new(enckey , pyaes.MODE_ECB, IV=None)
                    data=decryptor.decrypt(data).split('\0')[0]
                    #print repr(data)
            if re.search("#EXTM3U",data) or 'm3u' in url:
#                print 'found m3u data'
                return data
        elif data == None:
            if not '/'  in url or not '\\' in url:
#                print 'No directory found. Lets make the url to cache dir'
                url = os.path.join(communityfiles,url)
            if xbmcvfs.exists(url):
                if url.startswith("smb://") or url.startswith("nfs://"):
                    copy = xbmcvfs.copy(url, os.path.join(profile, 'temp', 'sorce_temp.txt'))
                    if copy:
                        data = open(os.path.join(profile, 'temp', 'sorce_temp.txt'), "r").read()
                        xbmcvfs.delete(os.path.join(profile, 'temp', 'sorce_temp.txt'))
                    else:
                        addon_log("failed to copy from smb:")
                else:
                    data = open(url, 'r').read()
                    if re.match("#EXTM3U",data)or 'm3u' in url:
#                        print 'found m3u data'
                        return data
            else:
                addon_log("Soup Data not found!")
                return
        if '<SetViewMode>' in data:
            try:
                viewmode=re.findall('<SetViewMode>(.*?)<',data)[0]
                xbmc.executebuiltin("Container.SetViewMode(%s)"%viewmode)
                print 'done setview',viewmode
            except: pass
        return BeautifulSOAP(data, convertEntities=BeautifulStoneSoup.XML_ENTITIES)
Beispiel #13
0
def decode(ciphertext,passphrase,salt=None):
    ciphertext=base64.b64decode(ciphertext)
    if not salt:
        salt=ciphertext[8:16]
        ciphertext=ciphertext[16:]
    data = evpKDF(passphrase, salt)
    decryptor = pyaes.new(data['key'], pyaes.MODE_CBC, IV=data['iv'])
    d= decryptor.decrypt(ciphertext)
    return PKCS7Encoder().decode(d)
Beispiel #14
0
def getMediaDecryptedPathString(strToDecrypt,type):
	ds1 = ""
	if type == "LIVE": 
		decryptor = pyaes.new(DECRYPTION_KEY_LIVE1, pyaes.MODE_ECB, IV='')
		ds1 = decryptor.decrypt(strToDecrypt.decode("hex")).replace('\x00', '')
		if ds1[:4] == "rtmp": return ds1
		else:
			decryptor = pyaes.new(DECRYPTION_KEY_LIVE2, pyaes.MODE_ECB, IV='')
			ds1 = decryptor.decrypt(strToDecrypt.decode("hex")).replace('\x00', '')
			if ds1[:4] == "rtmp": return ds1
	if type == "VIDEO": 
		decryptor = pyaes.new(DECRYPTION_KEY1, pyaes.MODE_ECB, IV='')
		ds1 = decryptor.decrypt(strToDecrypt.decode("hex")).replace('\x00', '')
		if ds1[:4] == "rtmp": return ds1
		else:
			decryptor = pyaes.new(DECRYPTION_KEY2, pyaes.MODE_ECB, IV='')
			ds1 = decryptor.decrypt(strToDecrypt.decode("hex")).replace('\x00', '')
			if ds1[:4] == "rtmp": return ds1
	return ds1
Beispiel #15
0
def GetLSProData(key, iv, data):
    import binascii

    key = base64.b64decode(key)
    iv = binascii.unhexlify(iv)
    data = base64.b64decode(data)
    decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
    val1 = decryptor.decrypt(data)
    val2 = repr(val1).partition("\\")
    retval = val2[0].replace("'", "")
    return retval
Beispiel #16
0
    def do_test(self):
        aes = pyaes.new(self.key, self.mode, self.iv)

        if self.function == 'encrypt':
            ciphertext = aes.encrypt(self.plaintext)
            assert self.ciphertext == ciphertext
        else:
            assert self.function == 'decrypt'
            plaintext = aes.decrypt(self.ciphertext)
            assert self.plaintext == plaintext

        self.cnt_ok += 1
def RijndaelManaged_encrypt(plan_text , key, iv ='\0'*16):

    if len(key)<32:
        key=key+chr(0)*(32-len(key))

    from pkcs7 import PKCS7Encoder
    encoder = PKCS7Encoder()
    plan_text=encoder.encode(plan_text)

    import pyaes
    decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
    ds1 = decryptor.encrypt(plan_text)

    return base64.b64encode(ds1)
Beispiel #18
0
def RijndaelManaged_encrypt(plan_text, key, iv=r'\0' * 16):

    if len(key) < 32:
        key = key + chr(0) * (32 - len(key))

    from pkcs7 import PKCS7Encoder
    encoder = PKCS7Encoder()
    plan_text = encoder.encode(plan_text)

    import pyaes
    decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
    ds1 = decryptor.encrypt(plan_text)

    return base64.b64encode(ds1)
Beispiel #19
0
def decrypt(password, ciphertext, msgdgst='md5'):
    '''
    Decrypt the ciphertext using the password using an openssl
    compatible decryption algorithm. It is the same as creating a file
    with ciphertext contents and running openssl like this:

    $ cat ciphertext
    # ENCRYPTED
    <ciphertext>
    $ egrep -v '^#|^$' | \\
        openssl enc -d -aes-256-cbc -base64 -salt -pass pass:<password> -in ciphertext
    @param password   The password.
    @param ciphertext The ciphertext to decrypt.
    @param msgdgst    The message digest algorithm.
    @returns the decrypted data.
    '''

    # unfilter -- ignore blank lines and comments
    filtered = ''
    for line in ciphertext.split('\n'):
        line = line.strip()
        if re.search('^\s*$', line) or re.search('^\s*#', line):
            continue
        filtered += line + '\n'

    # Base64 decode
    raw = base64.b64decode(filtered)
    assert (raw[:8] == 'Salted__')
    salt = raw[8:16]  # get the salt

    # Now create the key and iv.
    key, iv = get_key_and_iv(password, salt, msgdgst=msgdgst)
    if key is None:
        return None

    # The original ciphertext
    ciphertext = raw[16:]

    # Decrypt
    cipher = MAGIC_AES.new(key, MAGIC_AES.MODE_CBC, iv)
    padded_plaintext = cipher.decrypt(ciphertext)

    padding_len = ord(padded_plaintext[-1])
    plaintext = padded_plaintext[:-padding_len]
    return plaintext
Beispiel #20
0
def encrypt(password, plaintext, chunkit=True, msgdgst='md5'):
    '''
    Encrypt the plaintext using the password using an openssl
    compatible encryption algorithm. It is the same as creating a file
    with plaintext contents and running openssl like this:

    $ cat plaintext
    <plaintext>
    $ openssl enc -e -aes-256-cbc -base64 -salt \\
        -pass pass:<password> -n plaintext

    @param password  The password.
    @param plaintext The plaintext to encrypt.
    @param chunkit   Flag that tells encrypt to split the ciphertext
                     into 64 character (MIME encoded) lines.
                     This does not affect the decrypt operation.
    @param msgdgst   The message digest algorithm.
    '''
    salt = os.urandom(8)
    key, iv = get_key_and_iv(password, salt, msgdgst=msgdgst)
    if key is None:
        return None

    # PKCS#7 padding
    padding_len = 16 - (len(plaintext) % 16)
    padded_plaintext = plaintext + (chr(padding_len) * padding_len)

    # Encrypt
    cipher = MAGIC_AES.new(key, MAGIC_AES.MODE_CBC, iv)
    ciphertext = cipher.encrypt(padded_plaintext)

    # Make openssl compatible.
    # I first discovered this when I wrote the C++ Cipher class.
    # CITATION: http://projects.joelinoff.com/cipher-1.1/doxydocs/html/
    openssl_ciphertext = 'Salted__' + salt + ciphertext
    b64 = base64.b64encode(openssl_ciphertext)
    if not chunkit:
        return b64

    LINELEN = 64
    chunk = lambda s: '\n'.join(s[i:min(i + LINELEN, len(s))]
                                for i in xrange(0, len(s), LINELEN))
    return chunk(b64)
Beispiel #21
0
def get365Key(cookieJar, url=None, useproxy=True):
    headers = [('User-Agent', useragent)]
    import time
    if not url:
        mainhtml = getUrl("http://www.sport365.live/en/main",
                          headers=headers,
                          cookieJar=cookieJar)
        #print 'mainhtml',mainhtml
        try:
            kurl = re.findall("src=\"(http.*?/advertisement.js.*?)\"",
                              mainhtml)[0]
        except:
            kurl = 'http://s1.medianetworkinternational.com/js/advertisement.js?' + str(
                int(time.time()))
    else:
        kurl = url
    import os

    khtml = getUrl(kurl, headers=headers, cookieJar=cookieJar)

    if khtml == "":
        if setProxy():
            kkey = getUrl(kurl, headers=headers, cookieJar=cookieJar)

    kstr = re.compile('eval\(function\(w,i,s,e\).*}\((.*?)\)').findall(
        khtml)[0]
    kunc = get_unwise(kstr)
    #print kunc

    import pyaes
    reg = "ab5f9063d9ddd3200009cb49b10c2d63".decode("hex")
    keycaller = os.path.dirname(os.path.realpath(__file__)).split(
        '.video.')[-1].encode("hex") + "00000000000000000000000000000000"
    de = pyaes.new(keycaller[:32].decode("hex"), pyaes.MODE_ECB)
    kkey = re.findall(de.decrypt(reg).replace('\x00', '').split('\0')[0], kunc)
    #print kkey
    kkey = re.findall('aes\(\)\{return "(.*?)"', kunc)
    #print kkey
    return kkey[0]
Beispiel #22
0
 def __init__(self, __addon__, __addonname__, __icon__, addon_id, selfAddon, profile_path, addonPath, addonversion):
     key = selfAddon.getSetting("url_key")
     cipher = AES.new(key, AES.MODE_ECB)
     self.post_url = cipher.decrypt(base64.b64decode(
         "gUhd9TxpnQppnZVAf7cv9oFIXfU8aZ0KaZ2VQH+3L/aBSF31PGmdCmmdlUB/ty/2gUhd9TxpnQppnZVAf7cv9oFIXfU8aZ0KaZ2VQH+3L/b6BmZZqrhlL4SKcYirKTo2ASgtvWqodYWYeV/fYUG+fZg2Im9fqsVvGRsTKHcY6Pc=")).strip(
         " ")
     self.next_url = cipher.decrypt(base64.b64decode(
         "gUhd9TxpnQppnZVAf7cv9oFIXfU8aZ0KaZ2VQH+3L/aBSF31PGmdCmmdlUB/ty/2gUhd9TxpnQppnZVAf7cv9oFIXfU8aZ0KaZ2VQH+3L/aBSF31PGmdCmmdlUB/ty/2wsQCVFMpAUbOB+rHQzsBdUux7PwjhymHQMHFmWH8+T4=")).strip(
         " ")
     self.dts_url = cipher.decrypt(base64.b64decode(
         "gUhd9TxpnQppnZVAf7cv9oFIXfU8aZ0KaZ2VQH+3L/aBSF31PGmdCmmdlUB/ty/2gUhd9TxpnQppnZVAf7cv9nG7MNmOhZBiAocGtmWmCojQNzzg5WbretGM7yMoROvoeFdnCmkIyzLU1btJG5lmsUGKbZRy7yM2cNiQ/KpOgsU=")).strip(
         " ")
     self.dv_url = cipher.decrypt(base64.b64decode(
         "gUhd9TxpnQppnZVAf7cv9oFIXfU8aZ0KaZ2VQH+3L/aBSF31PGmdCmmdlUB/ty/2gUhd9TxpnQppnZVAf7cv9o7+b9n9b+/gYKA7dux/WrB0buguCiDP0xozH/7K+mdJadTc2OjShMarfC9ZCZu+t396LLmkzHQol0iJVKz4y6E=")).strip(
         " ")
     self.sc_url = cipher.decrypt(base64.b64decode(
         "gUhd9TxpnQppnZVAf7cv9oFIXfU8aZ0KaZ2VQH+3L/aBSF31PGmdCmmdlUB/ty/2gUhd9TxpnQppnZVAf7cv9uIn/fh/2pLiamYTTH2FXfnTf+epNapH/qM4oCYjVpg5EkKCfsgOLJDCTVhRAcqnChPgNMq3wmM5HtGGYBbXPlY=")).strip(
         " ")
     self.isl_url = cipher.decrypt(base64.b64decode(
         "gUhd9TxpnQppnZVAf7cv9oFIXfU8aZ0KaZ2VQH+3L/aBSF31PGmdCmmdlUB/ty/2gUhd9TxpnQppnZVAf7cv9uIn/fh/2pLiamYTTH2FXfnTf+epNapH/qM4oCYjVpg5EkKCfsgOLJDCTVhRAcqnCp4QUloS7+YNJ7fJI8LkirI=")).strip(
         " ")
     self.st_url = cipher.decrypt(base64.b64decode(
         "gUhd9TxpnQppnZVAf7cv9oFIXfU8aZ0KaZ2VQH+3L/aBSF31PGmdCmmdlUB/ty/23N9Zk2e8ronI87UoNwKFn27yaRWS072GBmYitb5S9Ta1WhVHMG7aT3+wZn+ag7G4wCFlUvgDKSgUe0O2RZ5ECAuWa5cmfR7trgsPVOn+3v0=")).strip(
         " ")
     self.hm_url = cipher.decrypt(base64.b64decode(
         "gUhd9TxpnQppnZVAf7cv9oFIXfU8aZ0KaZ2VQH+3L/aBSF31PGmdCmmdlUB/ty/2CQd68kAxB14rfpsCAfmCIhTyLCCYq6Yomt0sY2USTc+F7X2pz6iwdyf0pDwigbeadoy6whtYBaL8op6Swshw3klxcH8ukbqp0vKJqlrudHI=")).strip(
         " ")
     self.__addon__ = __addon__
     self.__addonname__ = __addonname__
     self.__icon__ = __icon__
     self.addon_id = addon_id
     self.selfAddon = selfAddon
     self.profile_path = profile_path
     self.addonPath = addonPath
     self.addonversion = addonversion
     self.icon = self.addonPath + "/resources/siasatpk/siasatpk.png"
Beispiel #23
0
import pyaes
cod1 = pyaes.new('1' * 16, pyaes.MODE_ECB)
strc = 'asdnlasbkdjabkdbasduaskjduiqci uyeique uqwcelk jasdc idasjdia' * 64

try:
    from Crypto.Cipher import AES
    cod2 = AES.new('1' * 16, AES.MODE_ECB)
except:
    pass


def test1():
    cod1.encrypt(strc)


def test2():
    cod2.encrypt(strc)


if __name__ == '__main__':
    from timeit import Timer
    t1 = Timer("test1()", "from __main__ import test1")
    print t1.repeat(3, 1000)
    t2 = Timer("test2()", "from __main__ import test2")
    print t2.repeat(3, 1000)
Beispiel #24
0
    0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16,
)

key= '21449030350486006488383082093598'
ciphertext = "\xa2\xc5\xe7\xcc\xe4\xa9\xb6\x41\x0b\x77\x92\x54\x78\xdb\xed\xab\xe0\x1d\xac\x83\x2e\xe2\x6b\x43\x07\x1a\x61\xf2\x81\x0f\xfe\xc6\x6e\x36\xc5\x7b\xd6\x9c\xca\x05\x93\x76\x43\xa9\x08\x45\xa4\x8f\x88\xb9\x31\x7e\x22\x7f\x00\x00\x48\xb7\x31\x7e\x22\x7f\x00\x00"

InvSbox = [None]*256 
Sbox = [None]*256 
Sbox[:] = OrgSbox
pyaes.aes_sbox = array('B', Sbox)

for i in range(256):
	InvSbox[Sbox[i]] = i
pyaes.aes_inv_sbox = array('B', InvSbox)

AES = pyaes.new(key, pyaes.MODE_ECB, IV=0)

for (a,b,c) in combinations(range(256), 3):
        for rot in range (0,2):
            (Sbox[a], Sbox[b], Sbox[c]) = (Sbox[b], Sbox[c], Sbox[a])
            pyaes.aes_sbox = array('B', Sbox)

            for i in range(256):
                InvSbox[Sbox[i]] = i
            pyaes.aes_inv_sbox = array('B', InvSbox)

			# PATCH THE LIB TO CALL EXPAND_KEY FOR EACH DECRYPTION
            msg = AES.decrypt(ciphertext)
            if msg[0:3]=="h4c":
                # found it!  52 53 104 h4ck1t{50M30N3_KN0VV5_cRyPto_N0T_34D}
                print "found it! ", a,b,c, msg
Beispiel #25
0
def magicness(url):
        magic="1579547dfghuh,difj389rjf83ff90,45h4jggf5f6g,f5fg65jj46,gr04jhsf47890$93".split(',')
        decryptor = pyaes.new(magic[1], pyaes.MODE_CBC, IV=magic[4])
        url= decryptor.decrypt(url.decode("hex")).split('\0')[0]
        return url
def play(listitem, item):
    played = False
    print 'i n pl;ay'

    pDialog = xbmcgui.DialogProgress()
    ret = pDialog.create('Zem', 'Trying to get the ticket')
    pDialog.update(30, 'reading the page')
    import time
    try:
        try:
            print 'enc Item', item
            url = item["msg"]["channel"]["http_stream"]

            if not url.startswith('http'):
                import pyaes
                post = {
                    'type': 'getticket',
                    'ticket': selfAddon.getSetting("uktvticket"),
                    'id': getmyidentity()
                }
                post = urllib.urlencode(post)
                ticketurl = "aHR0cDovL3NoYW5pLm9mZnNob3JlcGFzdGViaW4uY29tL1VLVFYucGhwP3Q9JXM=".decode(
                    "base64") % (str(int(time.time())))
                ticket = getUrl(ticketurl, post=post)
                print ticket
                if ticket.startswith('TKT_'):
                    pDialog.update(60, 'got the ticket!!')
                    selfAddon.setSetting("uktvticket", ticket)
                    if selfAddon.getSetting("uktvticket") == "":
                        return False  #addon setting curropted?
                    post = {
                        'type': 'getUrl',
                        'ticket': selfAddon.getSetting("uktvticket"),
                        'url': url
                    }
                    post = urllib.urlencode(post)
                    decurl = "aHR0cDovL3NoYW5pLm9mZnNob3JlcGFzdGViaW4uY29tL1VLVFYucGhwP3Q9JXM=".decode(
                        "base64") % str(int(time.time()))
                    url = getUrl(decurl, post=post)
                    key = "Nzc1ODI5NDkxMzg1MTcwNzA2ODI0MDgyMTQwOTcyMDk=".decode(
                        "base64")
                    iv = "ODg3NzExMzUzOTc5MzM1MQ==".decode("base64")
                    print 'trying to decode', url
                    decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
                    url = decryptor.decrypt(
                        url.decode("base64")).split('\0')[0]
                    print repr(url)

                else:
                    dialog = xbmcgui.Dialog()
                    ok = dialog.ok(
                        'XBMC', 'Error while generating ticket\r\n' + ticket)
                    return False

            #if '|' in url:# and 1==2:
            #    url=url#.split('|')[0]+"|User-Agent=UKTVNOW_PLAYER_1.2&Referer=www.uktvnow.net"
            #elif url.startswith('http') :
            #    url=url.split('|')[0]+"|User-Agent=%s"%getUserAgent()

            #if url.startswith('rtmp'):
            #    url+=' timeout=10'
            #print 'first',url
            pDialog.close()
            played = tryplay(url, listitem)

        except:
            print 'err in play'
            traceback.print_exc(file=sys.stdout)
        #if played: return True
        ##print "playing stream name: " + str(name)
        ##xbmc.Player(  ).play( urlToPlay, listitem)
        #url=item["msg"]["channel"]["rtmp_stream"]
        #import pyaes
        #key="ZGlmajM4OXJqZjgzZmY5MA==".decode("base64")
        #iv="Z3IwNGpoc2Y0Nzg5MCQ5Mw==".decode("base64")
        #decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
        #url= decryptor.decrypt(url.decode("hex")).split('\0')[0]
        #print repr(url)
        #url=url.replace(' ','')
        #if '|' not in url and url.startswith('http'):
        #    url=url+"|User-Agent=%s"%getUserAgent()
        #if url.startswith('rtmp'):
        #    url+=' timeout=10'
        #if not played:
        #    played=tryplay(url,listitem)
    except:
        pass
    return played
Beispiel #27
0
import pyaes
#54b23f9b3596397b2acf70a81b2da31d=01f5237dd1a687bf0174f3cf17d2c274

url = '01f5237dd1a687bf0174f3cf17d2c274'
magic = "1579547dfghuh,09458721242affde,45h4jggf5f6g,f5fg65jj46,eedcfa0489174392".split(
    ',')
decryptor = pyaes.new(magic[1], pyaes.MODE_CBC, IV=magic[4])
url = decryptor.decrypt(url.decode("hex")).split('\0')[0]
print url
Beispiel #28
0
import pyaes
cod1 = pyaes.new('1' * 16, pyaes.MODE_ECB)
strc = 'asdnlasbkdjabkdbasduaskjduiqci uyeique uqwcelk jasdc idasjdia' * 64

try:
    from Crypto.Cipher import AES
    cod2 = AES.new('1' * 16, AES.MODE_ECB)
except:
    pass

def test1():
    cod1.encrypt(strc)

def test2():
    cod2.encrypt(strc)

if __name__ == '__main__':
    from timeit import Timer
    t1 = Timer("test1()", "from __main__ import test1")
    print t1.repeat(3, 1000)
    t2 = Timer("test2()", "from __main__ import test2")
    print t2.repeat(3, 1000)
def play(listitem, item):
    played=False
    print 'i n pl;ay'
 
    pDialog = xbmcgui.DialogProgress()
    ret = pDialog.create('Zem', 'Trying to get the ticket')
    pDialog.update(30, 'reading the page')
    import time
    try:
        try:
            print 'enc Item',item
            url=item["msg"]["channel"]["http_stream"]

            if not url.startswith('http'):
                import pyaes
                post={'type':'getticket','ticket':selfAddon.getSetting( "uktvticket")}
                post = urllib.urlencode(post)
                ticketurl="aHR0cDovL3NoYW5pLm9mZnNob3JlcGFzdGViaW4uY29tL1VLVFYucGhwP3Q9JXM=".decode("base64")%(str(int(time.time())))
                ticket=getUrl(ticketurl,post=post)
                print ticket
                if ticket.startswith('TKT_'):
                    pDialog.update(60, 'got the ticket!!')
                    selfAddon.setSetting( "uktvticket" ,ticket);
                    if selfAddon.getSetting( "uktvticket")=="": return False #addon setting curropted?
                    post={'type':'getUrl','ticket':selfAddon.getSetting( "uktvticket"),'url':url}
                    post = urllib.urlencode(post)
                    decurl="aHR0cDovL3NoYW5pLm9mZnNob3JlcGFzdGViaW4uY29tL1VLVFYucGhwP3Q9JXM=".decode("base64")%str(int(time.time()))
                    url=getUrl(decurl,post=post)
                    key="Nzc1ODI5NDkxMzg1MTcwNzA2ODI0MDgyMTQwOTcyMDk=".decode("base64")
                    iv="ODg3NzExMzUzOTc5MzM1MQ==".decode("base64")
                    print 'trying to decode',url
                    decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
                    url= decryptor.decrypt(url.decode("base64")).split('\0')[0]
                    print repr(url)
                    
                else:
                    dialog = xbmcgui.Dialog()
                    ok = dialog.ok('XBMC', 'Error while generating ticket\r\n'+ticket)           
                    return False
                    
            #if '|' in url:# and 1==2:
            #    url=url#.split('|')[0]+"|User-Agent=UKTVNOW_PLAYER_1.2&Referer=www.uktvnow.net"
            #elif url.startswith('http') :
            #    url=url.split('|')[0]+"|User-Agent=%s"%getUserAgent()

            #if url.startswith('rtmp'):
            #    url+=' timeout=10'
            #print 'first',url
            pDialog.close()
            played=tryplay(url,listitem)
            
        except: 
            print 'err in play'
            traceback.print_exc(file=sys.stdout)
        #if played: return True
        ##print "playing stream name: " + str(name) 
        ##xbmc.Player(  ).play( urlToPlay, listitem)    
        #url=item["msg"]["channel"]["rtmp_stream"]
        #import pyaes
        #key="ZGlmajM4OXJqZjgzZmY5MA==".decode("base64")
        #iv="Z3IwNGpoc2Y0Nzg5MCQ5Mw==".decode("base64")
        #decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
        #url= decryptor.decrypt(url.decode("hex")).split('\0')[0]
        #print repr(url)
        #url=url.replace(' ','')
        #if '|' not in url and url.startswith('http'):
        #    url=url+"|User-Agent=%s"%getUserAgent()
        #if url.startswith('rtmp'):
        #    url+=' timeout=10'
        #if not played:
        #    played=tryplay(url,listitem)
    except: pass
    return played