Example #1
0
def encrypt_py(plain_text, key):
    if plain_text:
        try:
            scraper_key = hashlib.sha256(key).digest()
            IV = '\0' * 16
            decrypter = pyaes.Encrypter(
                pyaes.AESModeOfOperationCBC(scraper_key, IV))
            cipher_text = decrypter.feed(plain_text)
            cipher_text += decrypter.feed()
        except Exception as e:
            logger.log_warning('Exception during Py Encrypt: %s' % (e))
            cipher_text = ''
    else:
        cipher_text = ''

    return cipher_text
Example #2
0
def decrypt_py(cipher_text, key):
    if cipher_text:
        try:
            scraper_key = hashlib.sha256(key).digest()
            IV = '\0' * 16
            decrypter = pyaes.Decrypter(pyaes.AESModeOfOperationCBC(scraper_key, IV))
            plain_text = decrypter.feed(cipher_text)
            plain_text += decrypter.feed()
            if 'import' not in plain_text:
                plain_text = ''
        except Exception as e:
            logger.log_warning('Exception during Py Decrypt: %s' % (e))
            plain_text = ''
    else:
        plain_text = ''

    return plain_text
    def __decrypt(self, cipher_text, key):
        if cipher_text:
            try:
                scraper_key = hashlib.sha256(key).digest()
                IV = '\0' * 16
                decrypter = pyaes.Decrypter(
                    pyaes.AESModeOfOperationCBC(scraper_key, IV))
                plain_text = decrypter.feed(cipher_text)
                plain_text += decrypter.feed()
                if 'get_media_url' not in plain_text:
                    plain_text = ''
            except Exception as e:
                common.log_utils.log_warning(
                    'Exception during OpenLoad Decrypt: %s' % (e))
                plain_text = ''
        else:
            plain_text = ''

        return plain_text
Example #4
0
File: default.py Project: yogi81/ru
def generate_vs_request(player_url, player_page):
    mw_pid = re.compile(r"partner_id:\s*(\w*),").findall(player_page)[0]
    p_domain_id = re.compile(r"domain_id:\s*(\w*),").findall(player_page)[0]

    _mw_adb = False

    video_token = re.compile(r"video_token:\s*\S?\'([0-9a-f]*)\S?\'").findall(
        player_page)[0]

    cookies = get_cookies(player_page)

    js_path = re.compile(r'script src=\"(.*)\"').findall(player_page)[0]
    js_page = get_html("http://" + player_url.split('/')[2] + js_path)

    regex_window_value = r'eval\("window"\)\["' + cookies[0] + r'"\]="(\w+)"'
    window_value = re.compile(regex_window_value).findall(js_page)[
        0]  # d value

    e_value = re.compile(r'getVideoManifests:function\(\){var e="(\w+)"'
                         ).findall(js_page)[0]  # key

    r_value = re.compile(r'r="(\w+)",o').findall(js_page)[0]  # iv

    t = EncryptedData()
    t.a = mw_pid
    t.b = p_domain_id
    t.c = _mw_adb
    t.d = window_value
    t.e = video_token
    # t.f = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
    t.f = USER_AGENT

    json_string = t.to_json()

    encrypt_mode = pyaes.AESModeOfOperationCBC(
        binascii.a2b_hex('7316d0c4' + e_value), binascii.a2b_hex(r_value))
    encrypter = pyaes.Encrypter(encrypt_mode)
    encrypted = bytes()
    encrypted += encrypter.feed(json_string)
    encrypted += encrypter.feed()

    return base64.standard_b64encode(encrypted)
Example #5
0
 def aes_cbc_decrypt(self, data, key):
     # decryptor = AES.new(key, AES.MODE_CBC, '\0' * 16)
     decryptor = aes.AESModeOfOperationCBC(key, iv='\0' * 16)
     return ''.join((decryptor.decrypt(data[i:16 + i])
                     for i in xrange(0, len(data), 16)))