Página 2 de 44

Re: Reportar aquí cualquier problema con Openload

Publicado: 04 Sep 2016, 23:42
por robalo
Uso un html con un tres cajas con javascript; definiciones, cadena a evaluar y resultado. Con eso te das cuenta de que los numeros "j.???" o "j.$???" son números binario de 3 y 4 bits donde "_" es "0" y "$" es "1", el de 4 bits siempre tiene el bit más signicativo activado. El número siempre será un caracter de base 16; 3 bits: "01234567", 4 bits: "89abcdef" y como ya sabemos, a los números que le añaden "\" debemos interpretarlos como un número en base 8 :)

Re: Reportar aquí cualquier problema con Openload

Publicado: 05 Sep 2016, 08:00
por hav
Funcionando perfectamente ;)

Re: Reportar aquí cualquier problema con Openload

Publicado: 06 Sep 2016, 18:37
por super_berny
robalo escribió:
Cmos escribió:Estos de openload si no tocan algo cada semana no están tranquilos :lol:

Ya está corregido en el enlace del primer mensaje, además ahora es necesaria una nueva librería (guardadla en la carpeta lib)
Que pedazo librería!! Qué tentación por dios!! :lol: :lol: :lol: :lol:

Previa orden de la jefa no me calenté la cabeza y le puse

Código: Seleccionar todo

            try:
                dif = get_match(aadecode(text_encodes[0]), "charCodeAt.0.([^\)]+)\);")
            except:
                text_encodes = find_multiple_matches(data, '(j=~\[\];.*?".""\)\(\)\)\(\);)')
                for n in range(0, len(text_encodes)):
                    try:
                        dif = get_match(text_encodes[n], '\+j\.\$__\+j\.___\+j\.([^\+]+)\+"\);')
                        dif = str(int(dif.replace('_','0').replace('$','1'), 2))
                    except: continue
            data = decode_hidden(data, dif)
        pre_media_url = 'https://openload.co/stream/%s?mime=true' % data
Me guardo la librería para jugar y disfrutar un buen rato :lol: :lol: :lol: :lol:

Muchas gracias Cmos
Y con esto ya no hace falta la libreria? Donde lo inserto?

Re: Reportar aquí cualquier problema con Openload

Publicado: 06 Sep 2016, 20:36
por robalo
@super_berny

Hoy por hoy no haría falta la librería con eso pero la librería hace lo que debe, extraer todo el script. Estoy jugando con el texto ofuscado y, en apariencia, podemos crear una librería con pocas líneas. Ahora mismo estoy intentando buscar un algoritmo que se trague las representaciones de uno y dos bits y lo que sería en python "false"[n], "true"[n] y "[object Object]"[n] (no se si se me olvida alguno) para sacar los caracteres que puedan introducir con ese método como son los caractes "l", "o", "t" y "u" que vemos en la librería jjdecode. Las representaciones de 3 y 4 bits no debería tener ninguna complicación.

Te pego el archivo que uso de openload para trajinar para que lo veas más claro, que, aunque pueda parecer diferente es exactamante igual que el de Cmos, con las excepciones, claro está, de la libreria jjdecode por que lo hice antes del gran descubrimiento de Cmos :) y sin la parte de la api y la de download, ésto es por tener mas despejado el archivo para más comodidad en el trajín.

Código: Seleccionar todo

# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Conector for openload.co
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
# ------------------------------------------------------------

from core.scrapertools import *
from aadecode import decode as aadecode

headers = [
    ["User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0"],
    ["Accept-Encoding", "none"]
]

def test_video_exists(page_url):
    logger.info("[openload.py] test_video_exists(page_url='%s')" % page_url)

    data = cache_page(page_url, headers=headers)

    if 'We are sorry!' in data:
        return False, 'File Not Found or Removed.'

    return True, ""

def get_video_url(page_url, premium=False, user="", password="", video_password=""):
    logger.info("[openload.py] get_video_url page_url=" + page_url)
    video_urls = []

    data = cache_page(page_url, headers=headers)

    try:
        text_encodes = find_multiple_matches(data, "(゚ω゚ノ=\s*/`m´\).*?\(゚Θ゚\)\)\s*\('_'\);)")

        for n in range(0, len(text_encodes)):
            try:
                text_decode = aadecode(
                    text_encodes[
                        eval(
                            find_single_match(
                                aadecode(text_encodes[n]),
                                "\(([^\)]+)\)"
                            )
                        )
                    ]
                )
                break
            except: continue
        pre_media_url = "https://openload.co/stream/" + find_single_match(text_decode, "return\s*(.*?true)").split("/")[-1]
    except:
        try:
            data = linkimg(data)
        except:
            try:
                dif = get_match(aadecode(text_encodes[0]), "charCodeAt.0.([^\)]+)\);")
            except:
                text_encodes = find_multiple_matches(data, '(j=~\[\];.*?".""\)\(\)\)\(\);)')
                for n in range(0, len(text_encodes)):
                    try:
                        dif = get_match(text_encodes[n], '\+j\.\$__\+j\.___\+j\.([^\+]+)\+"\);')
                        dif = str(int(dif.replace('_','0').replace('$','1'), 2))
                    except: continue
            data = decode_hidden(data, dif)
        pre_media_url = 'https://openload.co/stream/%s?mime=true' % data


    ## assume mp4
    media_url = get_header_from_response(pre_media_url, header_to_get="location")
    video_urls.append( [ ".mp4" + " [openload]", media_url ] )

    return video_urls

def find_videos(text):
    encontrados = set()
    devuelve = []

    patronvideos = '//(?:www.)?openload.../(?:embed|f)/([0-9a-zA-Z-_]+)'
    logger.info("[openload.py] find_videos #" + patronvideos + "#")

    matches = re.compile(patronvideos, re.DOTALL).findall(text)

    for media_id in matches:
        titulo = "[openload]"
        url = 'https://openload.co/embed/%s/' % media_id
        if url not in encontrados:
            logger.info("  url=" + url)
            devuelve.append([titulo, url, 'openload'])
            encontrados.add(url)
        else:
            logger.info("  url duplicada=" + url)

    return devuelve

def linkimg(data):

    from png import Reader as png
    import base64
    import math

    data = png(bytes=base64.b64decode(get_match(data, '"linkimg"[^,]+,([^"]+)"'))).read()[2]

    _string = "".join(["".join([chr(c) if c != 0 else "" for c in w]) for w in data])

    image = _tabs(_string,12,20)

    data = cache_page("https://openload.co/assets/js/obfuscator/n.js")
    if not "signatureNumbers" in data:
        scripts = find_multiple_matches(data, '<script src="(/assets/js/obfuscator/[^"]+)"')
        for scr in scripts:
            data = cache_page('https://openload.co%s' % scr)
            if "signatureNumbers" in data: break

    _string = get_match(data, '''['"]([^"^']+?)['"]''')

    signature = _tabs(_string,11,26)

    link = {}
    for i in [2, 3, 5, 7]:
        link[i] = []
        tmp = ord('c')
        for j in range(len(signature[i])):
            for k  in range(len(signature[i][j])):
                if tmp > 122: tmp = ord('b')
                if signature[i][j][k] == chr(int(math.floor(tmp))):
                    if len(link[i]) > j: continue
                    tmp += 2.5;
                    if k < len(image[i][j]): link[i].append(image[i][j][k])
    res = []
    for idx in link:
        res.append(''.join(link[idx]).replace(',', ''))

    return res[3] + '~' + res[1] + '~' + res[2] + '~' + res[0]

def _tabs(_string,n1,n2):
    _array = []
    i = -1
    for idx in range(len(_string)):
        if 0 == (idx % (n1 * n2)):
            _array.append([])
            i += 1; j = -1
        if 0 == (idx % (n2)):
            _array[i].append([])
            j += 1
        _array[i][j].append(_string[idx])
    return _array

def decode_hidden(data, dif):
    hiddenurl = decodeHtmlentities(find_single_match(data, 'id="hiddenurl\s*">(.*?)<'))
    s = []
    for i in range(0, len(hiddenurl)):
        j = ord(hiddenurl[i])
        s.append(chr(33 + ((j+14) % 94)))
    tmp = "".join(s)
    str = tmp[:-1] + chr(ord(tmp[-1:])+eval(dif))
    return str
PD: Para todos: Nos confundáis lo pegado en este post como archivo alternativo ni a nada por el estilo. Mi recomendación es usar lo que enlace Cmos en este hilo.

Re: Reportar aquí cualquier problema con Openload

Publicado: 07 Sep 2016, 20:55
por Cmos
robalo escribió:Uso un html con un tres cajas con javascript; definiciones, cadena a evaluar y resultado. Con eso te das cuenta de que los numeros "j.???" o "j.$???" son números binario de 3 y 4 bits donde "_" es "0" y "$" es "1", el de 4 bits siempre tiene el bit más signicativo activado. El número siempre será un caracter de base 16; 3 bits: "01234567", 4 bits: "89abcdef" y como ya sabemos, a los números que le añaden "\" debemos interpretarlos como un número en base 8 :)
:shock: Madre mía, qué crack, ya me gustaría pensar de esa manera, a mí las conversiones a bits y demás se me dan fatal, me sacas del lenguaje práctico y me pierdo :lol:

El conector de openload como siga así va a haber que hacer un curso para entenderlo xD, cada vez que sale un nuevo cambio voy acumulándolo a lo anterior por si acaso vuelven a utilizar algún método antiguo, pero parece que no les gusta mucho repetirse :mrgreen:

Re: Reportar aquí cualquier problema con Openload

Publicado: 07 Sep 2016, 22:20
por robalo
Cmos escribió::shock: Madre mía, qué crack, ya me gustaría pensar de esa manera, a mí las conversiones a bits y demás se me dan fatal, me sacas del lenguaje práctico y me pierdo :lol:

El conector de openload como siga así va a haber que hacer un curso para entenderlo xD, cada vez que sale un nuevo cambio voy acumulándolo a lo anterior por si acaso vuelven a utilizar algún método antiguo, pero parece que no les gusta mucho repetirse :mrgreen:
Para nada, ya me gustaría :mrgreen: Lo que si me gusta jugar con estas cosas y muy agradecido que estoy a openload y a otros muchos. Gracias a ellos puedo jugar a algo que no sea pegar tiros :lol: me importa poco que pueda tener resultados o no pero si hay suerte se consigue hacer cosas que antes no veíamos y jugando jugando ves el código que buscas como el caso de jsunpack que ha pasado de tener cientipocas líneas de codigo a veintipocas líneas de código :)

Mi intención es dejar el jjdecode en unas treinta o cuarenta líneas :lol: :lol: :lol: a saber si podré, ya veremos :)

Re: Reportar aquí cualquier problema con Openload

Publicado: 07 Sep 2016, 23:12
por super_berny
robalo escribió:Estoy jugando con el texto ofuscado
Texto ofuscado dice jejeje yo si q me ofuscó mirando el código, no entiendo ni papa.
En fin, os dejo a los profesionales estos temas y yo continúo con mis chorradas.

Re: Reportar aquí cualquier problema con Openload

Publicado: 13 Sep 2016, 11:07
por dariomo
Ya lo han vuelto a cambiar... aquí en Pelisalacarta, no carga nada... y en el conector de PalcoTV que tb lo habían actualizado, salen de nuevo las Palomitas famosas.


Saludos.

Re: Reportar aquí cualquier problema con Openload

Publicado: 13 Sep 2016, 14:50
por Mike21
Así es, Openload vuelve a fallar desde ayer. En Kodi, aparece el mensaje habitual de cuando ha encontrado la dirección del vídeo:
Ver el vídeo.mp4 [Openload]
Pero luego no reproduce nada porque no ha encontrado la dirección completa:
DVDPlayer: Opening: |User-Agent=Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0.mp4

Re: Reportar aquí cualquier problema con Openload

Publicado: 13 Sep 2016, 19:23
por Cmos
Esta vez se han retrasado un poco pero al final han llegado los cambios semanales :mrgreen: Ya está reparado en el primer mensaje, he tenido que hacer algunos cambios al archivo jsunpack.py que va en la carpeta core, así que también es necesario descargarlo. Puede ser que en algún momento esporádico os falle ya que me ha salido un error un par de veces que tengo que mirar en profundidad, pero probad de nuevo si os pasa que debería funcionar. Cuando vea cómo corregir eso lo subiré a github...