Página 1 de 1

jjdecode

Publicado: 09 Sep 2016, 21:41
por robalo
Jugando jugando...

Código: Seleccionar todo

# -*- coding: utf-8 -*-

from core.scrapertools import *

def jjdecode(t):

    x = '0123456789abcdef'
    j = get_match(t, '^([^=]+)=')
    t = t.replace(j + '.','j.')

    t = re.sub(r'^.*?"\\""\+(.*?)\+"\\"".*?$', r'\1', t.replace('\\\\','\\')) + '+""'
    t = re.sub('(\(!\[\]\+""\)\[j\._\$_\])', '"l"', t)
    t = re.sub(r'j\._\$\+', '"o"+', t)
    t = re.sub(r'j\.__\+', '"t"+', t)
    t = re.sub(r'j\._\+', '"u"+', t)

    p = t.split('+')
    for e, c in enumerate(p):
        if not c.startswith('"'):
            try:
                d = p[e].split('.')
                n = d[1].replace('_','0').replace('$', '1')
                if len(n) == 4: p[e] = '"' + x[int(n,2)] + '"'
                else: p[e] = d[0] + '.' + n
            except: continue
    t = "+".join(p)

    p = find_multiple_matches(t, '(\\\\"\+[^"]+")')
    for e, c in enumerate(p):
        a = re.sub(r'j\.', '', c).split('+')[1:-1]
        n = int("".join(str(int(o, 2)) for o in a ), 8)
        if n >= 128:
            n1 =  int("".join(str(int(o, 2)) for o in a[0:2]) ,8)
            n2 =  int("".join(str(int(o, 2)) for o in a[2:]) ,8)
            s = chr(n1) + str(n2)
        else: s = chr(n)
        if c in t: t = t.replace(c, s)

    p = find_multiple_matches(t, '("\+j\.[^"]+")')
    for e, c in enumerate(p):
        n = re.sub(r'j\.', '', c).split('+')[1:-1]
        s = "".join(str(int(o, 2)) for o in n)
        if c in t: t = t.replace(c, s)

    r = t[1:-1].replace('"+"', '')

    return r
:lol: :lol: :lol: :lol:

Re: jjdecode

Publicado: 13 Sep 2016, 19:41
por Cmos
Increíble :shock: Y funciona perfecto claro, al final lo has sacado en menos de 40 líneas! Qué crack :D

Has visto el nuevo método de openload? Ahora antes de las jotas hay que hacer un unpack, he modificado con algo de ayuda el jsunpack.py para que funcione xD, pero de vez en cuando salta un error en la línea 42 al hacer el unbase en la 111:

Código: Seleccionar todo

self.unbase = lambda string: int(string, base)
ValueError: invalid literal for int() with base 4: 'z' #a veces también pasa con 'Z'
Lo raro es que por lo que he visto casi siempre o siempre utiliza base4 y pocas veces da error, sabes qué puede estar fallando? Porque yo le estoy dando vueltas y cada vez estoy más perdido :lol:

Re: jjdecode

Publicado: 15 Sep 2016, 18:52
por robalo
Perdona por no contestar antes estoy pegándole al Doom 4 :D

Sí que funciona sí :lol: :lol: :lol: Se tendría que testear con muchos casos pero de momento los que he podido probar si funciona

Sobre openload, un trabajo impecable, tu si que eres un crak! :D Lo que me he dado cuenta al ver tu code de la función openload_clean es que con esa función creo no hace falta usar jsunpack si le añaes al final un bucle de reemplazo ya que el array de reemplazo de del packed con len 4 es {'j','_','__','___'}, osease

Código: Seleccionar todo

def openload_clean(string):
    import urllib2
    if "function" in string:
        matches = re.findall(r"=\"([^\"]+).*?} *\((\d+)\)", string, re.DOTALL)[0]

        def substr(char):
            char = char.group(0)
            number = ord(char) + int(matches[1])
            if char <= "Z":
                char_value = 90
            else:
                char_value = 122
            if char_value >= number:
                return chr(ord(char))
            else:
                return chr(number - 26)

        string = re.sub(r"[A-Za-z]", substr, matches[0])
        string = urllib2.unquote(string)

        for n, z in enumerate(['j','_','__','___']):
            string = re.sub(r'%s' % n, z, string)

    return string

Re: jjdecode

Publicado: 18 Sep 2016, 21:02
por Cmos
Juegazo ese Doom! Yo porque tengo mucho juego pendiente y poco tiempo, sino me lo pillaba, otro gasto más en juegos y en casa me matan :mrgreen:

No sé si lo de openload ha quedado impecable, pero desde luego cada vez me hacen sudar más la gota gorda :lol: Tu función va de fábula, ni se me había pasado por la cabeza que con eso podía ahorrarme el paso del jsunpack y todo el lío que monté xD. De vez en cuando sigue saliendo error, creo que por el mismo fallo de la base 4, pero claro, ahora no pasa por ahí y no se detecta, pero vamos, como sucede de tanto en tanto pues no merece la pena preocuparse por ello. Con tu permiso lo voy a integrar en el conector y así no modifico el jsunpack.py ;)

Re: jjdecode

Publicado: 24 Sep 2016, 20:22
por robalo
Si que es un juegazo, yo no lo compro, lo pongo en mi lista de regalos para ponérselo fácil a la familia :lol: :lol: :lol:

El jjdecode que he puesto al principio tiene un pequeño bug, dí por sentado que era por el tema de la "Z" o "z" y lo dejé correr pero se me ha metido en la cabeza que se puede reducir más y he probado cosas nuevas lo que me ha hecho darme cuenta del que el bug era por otro motivo.

Pego la función jjdecode anterior con la correción

Código: Seleccionar todo

def jjdecode(t):

    x = '0123456789abcdef'
    j = get_match(t, '^([^=]+)=')
    t = t.replace(j + '.','j.')

    t = re.sub(r'^.*?"\\""\+(.*?)\+"\\"".*?$', r'\1', t.replace('\\\\','\\')) + '+""'
    t = re.sub('(\(!\[\]\+""\)\[j\._\$_\])', '"l"', t)
    t = re.sub(r'j\._\$\+', '"o"+', t)
    t = re.sub(r'j\.__\+', '"t"+', t)
    t = re.sub(r'j\._\+', '"u"+', t)

    p = t.split('+')
    for e, c in enumerate(p):
        if not c.startswith('"'):
            try:
                d = p[e].split('.')
                n = d[1].replace('_','0').replace('$', '1')
                if len(n) == 4: p[e] = '"' + x[int(n,2)] + '"'
                else: p[e] = d[0] + '.' + n
            except: continue
    t = "+".join(p)

    p = find_multiple_matches(t, '(\\\\"\+[^"]+")')
    for e, c in enumerate(p):
        a = re.sub(r'j\.', '', c).split('+')[1:-1]
        n = int("".join(str(int(o, 2)) for o in a ), 8)
        if n > 256:
            n1 =  int("".join(str(int(o, 2)) for o in a[:-1]) ,8)
            n2 =  int(a[-1], 2)
            s = chr(n1) + str(n2)
        else: s = chr(n)
        if c in t: t = t.replace(c, s)

    p = find_multiple_matches(t, '("\+j\.[^"]+")')
    for e, c in enumerate(p):
        n = re.sub(r'j\.', '', c).split('+')[1:-1]
        s = "".join(str(int(o, 2)) for o in n)
        if c in t: t = t.replace(c, s)

    r = re.sub(r'"\+"|\\\\','',t[1:-1])

    return r
Lo he probado bastantes veces en openload y no me ha dado ningún fallo pero ya sabes como funciona esto, nunca se prueba lo suficiente :)

A ver si soy capaz de dejarlo en la mitad de líneas :lol: :lol: :lol:

Re: jjdecode

Publicado: 25 Sep 2016, 18:57
por Cmos
Buah, qué trabajazo :D Pues voy a testearla yo también, aunque ya con la anterior y la de openload_clean que hiciste los fallos eran mínimos, y viendo el código ni se me ocurre la manera de reducirlo, mucho menos de dejarlo en la mitad :shock: :mrgreen:

Re: jjdecode

Publicado: 30 Sep 2016, 16:43
por Cmos
Pues robalo, después de bastantes pruebas con tu código para el jjdecode, creo que está funcionando bien, lo que no lo hace del todo es la función openload_clean, aunque al jsunpack le pasaba lo mismo. A veces da resultados como este que lógicamente fallan al hacer el jjdecode:

Código: Seleccionar todo

16:35:08 T:4636  NOTICE: eval (function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}(function(z){var a="0%3A%7B%5Y%5A%3Y0%3A%7Y3%3X%2Y%2Y0%2Z%24%24%24%24%3X%28%21%5Y%5A%2Y%22%22%29%5Y0%5A%2Z2%24%3X%2Y%2Y0%2Z%241%241%3X%28%21%5Y%5A%2Y%22%22%29%5Y0%5A%2Z1%241%3X%2Y%2Y0%2Z%241%24%24%3X%28%7Y%7A%2Y%22%22%29%5Y0%5A%2Z%24%241%24%3X%280%5Y0%5A%2Y%22%22%29%5Y0%5A%2Z1%24%24%3X%2Y%2Y0%2Z%24%24%241%3X%28%21%22%22%2Y%22%22%29%5Y0%5A%2Z%242%3X%2Y%2Y0%2Z%241%24%3X%2Y%2Y0%2Z%24%242%3X%28%7Y%7A%2Y%22%22%29%5Y0%5A%2Z%24%241%3X%2Y%2Y0%2Z%24%24%24%3X%2Y%2Y0%2Z%243%3X%2Y%2Y0%2Z%242%24%3X%2Y%2Y0%7A%3Y0.%241%3A%280.%241%3A0%2Y%22%22%29%5Y0.%241%24%5A%2Y%280.1%24%3A0.%241%5Y0.2%24%5A%29%2Y%280.%24%24%3A%280.%24%2Y%22%22%29%5Y0.2%24%5A%29%2Y%28%28%210%29%2Y%22%22%29%5Y0.1%24%24%5A%2Y%280.2%3A0.%241%5Y0.%24%241%5A%29%2Y%280.%24%3A%28%21%22%22%2Y%22%22%29%5Y0.2%24%5A%29%2Y%280.1%3A%28%21%22%22%2Y%22%22%29%5Y0.1%241%5A%29%2Y0.%241%5Y0.%241%24%5A%2Y0.2%2Y0.1%24%2Y0.%24%3Y0.%24%24%3A0.%24%2Y%28%21%22%22%2Y%22%22%29%5Y0.1%24%24%5A%2Y0.2%2Y0.1%2Y0.%24%2Y0.%24%24%3Y0.%24%3A%280.3%29%5Y0.%241%5A%5Y0.%241%5A%3Y0.%24%280.%24%280.%24%24%2Y%22%5Z%22%22%2Y%22%24%28%22%2Y0.%24%241%24%2Y0.1%24%2Y0.%24%242%2Y0.1%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%241%24%2Y0.%24%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%24%241%2Y0.2%2Y%22%29.%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y0.%24%24%241%2Y0.%241%241%2Y0.%24%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%24%24%2Y0.2%24%2Y%22%28%22%2Y0.%24%24%24%24%2Y0.1%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%24%241%2Y0.%24%242%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y0.1%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%24%241%2Y%22%28%29%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%7Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.%24%241%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%24%24%2Y0.3%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%3A%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%24%28%5Z%5Z%5Z%22%23%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.2%24%2Y0.%242%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.2%24%2Y0.%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y0.%24%242%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y0.2%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%24%24%2Y0.3%2Y%22%5Z%5Z%5Z%22%29.%22%2Y0.2%2Y0.%24%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%24%24%2Y0.3%2Y0.2%2Y%22%28%29%3Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.%24%241%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%24%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%3A%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%24%28%5Z%5Z%5Z%22%23%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.2%24%2Y0.%242%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.2%24%2Y0.%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y0.%24%242%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y0.2%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.2%24%2Y%22%5Z%5Z%5Z%22%29.%22%2Y0.2%2Y0.%24%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%24%24%2Y0.3%2Y0.2%2Y%22%28%29%3Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.%24%241%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y%22%3A%5Y%5A%3Y%22%2Y0.%24%24%24%24%2Y0.1%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%28%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.%24%241%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%3A%22%2Y0.3%2Y%22%3Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%3Z%5Z%5Z%22%2Y0.2%24%2Y0.%24%24%24%2Y0.2%24%2Y%22.%22%2Y%28%21%5Y%5A%2Y%22%22%29%5Y0.1%241%5A%2Y0.%24%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%242%2Y0.%24%24%24%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.3%2Y%22%3Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%2Y%2Y%29%7Y%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.%24%241%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.1%241%2Y%22%3A%5Z%5Z%22%2Y0.2%24%2Y0.%24%24%24%2Y0.2%24%2Y%22.%22%2Y0.%24%242%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.3%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.3%2Y0.1%24%24%2Y0.1%24%2Y0.%24%241%24%2Y0.%24%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.3%2Y0.2%24%2Y0.2%2Y%22%28%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%29%3Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y0.%24%24%24%24%2Y%22%28%28%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.1%241%2Y%22%3B%3A%22%2Y0.1%24%24%2Y0.1%24%24%2Y%22%29%26%26%28%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.1%241%2Y%22%3Z%3A%22%2Y0.2%24%2Y0.1%241%2Y0.%24%241%2Y%22%29%29%7Y%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y%22%5Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%5A%3A%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y0.1%24%24%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%242%2Y0.%24%24%24%2Y%22.%22%2Y0.%24%24%24%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y0.1%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.3%2Y0.1%24%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.3%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.3%2Y0.1%24%24%2Y0.1%24%2Y0.%24%241%24%2Y0.%24%24%241%2Y%22%28%22%2Y0.1%24%24%2Y0.1%24%24%2Y%22%2Y%28%28%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.1%241%2Y%22%2Y%22%2Y0.2%24%2Y0.%242%2Y%22%29%25%22%2Y0.%242%24%2Y0.%242%2Y%22%29%29%3Y%7A%22%2Y0.%24%24%241%2Y%28%21%5Y%5A%2Y%22%22%29%5Y0.1%241%5A%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y0.%24%24%241%2Y%22%7Y%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y%22%5Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%5A%3A%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y0.1%24%24%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%242%2Y0.%24%24%24%2Y%22.%22%2Y0.%24%24%24%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y0.1%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.3%2Y0.1%24%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.3%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.3%2Y0.1%24%24%2Y0.1%24%2Y0.%24%241%24%2Y0.%24%24%241%2Y%22%28%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.1%241%2Y%22%29%3Y%7A%7A%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.%24%241%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.3%2Y%22%3A%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y%22.%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.1%241%2Y0.1%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%24%241%2Y%22%28%5Z%5Z%5Z%22%5Z%5Z%5Z%22%29%3Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.%24%241%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%3A%5Z%5Z%22%2Y0.%242%2Y0.3%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.3%2Y%22.%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y0.1%2Y0.%241%24%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%242%2Y0.%24%24%24%2Y%22%28%22%2Y0.3%2Y%22%2Z%5Z%5Z%22%2Y0.%242%2Y0.3%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.3%2Y%22.%22%2Y%28%21%5Y%5A%2Y%22%22%29%5Y0.1%241%5A%2Y0.%24%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%242%2Y0.%24%24%24%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.3%2Y%22%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22-%5Z%5Z%22%2Y0.%242%2Y0.3%2Y0.2%24%2Y%22%29%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%2Y%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y0.1%24%24%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%242%2Y0.%24%24%24%2Y%22.%22%2Y0.%24%24%24%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y0.1%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.3%2Y0.1%24%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.3%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.3%2Y0.1%24%24%2Y0.1%24%2Y0.%24%241%24%2Y0.%24%24%241%2Y%22%28%22%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.3%2Y%22.%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y%28%21%5Y%5A%2Y%22%22%29%5Y0.1%241%5A%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.2%24%2Y0.%24%242%2Y0.%24%24%241%2Y%22%28-%22%2Y0.2%24%2Y%22%29.%22%2Y0.%24%242%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.3%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.3%2Y0.1%24%24%2Y0.1%24%2Y0.%24%241%24%2Y0.%24%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.3%2Y0.2%24%2Y0.2%2Y%22%28%22%2Y0.3%2Y%22%29%5Z%5Z%22%2Y0.%242%2Y0.3%2Y%22%2Y%5Z%5Z%22%2Y0.%242%2Y0.3%2Y0.1%241%2Y%22%29%3Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.2%24%2Y%22%24%28%5Z%5Z%5Z%22%23%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y0.%24%24%241%2Y0.%241%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y0.%241%24%2Y0.1%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%28%21%5Y%5A%2Y%22%22%29%5Y0.1%241%5A%2Y%22%5Z%5Z%5Z%22%29.%22%2Y0.2%2Y0.%24%24%241%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%24%24%2Y0.3%2Y0.2%2Y%22%28%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%24%24%2Y0.2%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.%24%241%2Y0.1%241%2Y%22%29%3Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y%22%7A%29%3Y%5Z%5Z%22%2Y0.2%24%2Y0.%241%24%2Y%22%5Z%5Z%22%2Y0.2%24%2Y0.1%241%2Y%22%5Z%22%22%29%28%29%29%28%29%3Y";return decodeURIComponent(a.replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+z)?c:c-26);}));}(3),4,4,('j^_^__^___'+'').split("^"),0,{}))

16:35:08 T:4636  NOTICE: j:{[Z;j:{___:++j,$$$$:(![Z+"")[jZ,__$:++j,$_$_:(![Z+"")[jZ,_$_:++j,$_$$:({z+"")[jZ,$$_$:(j[jZ+"")[jZ,_$$:++j,$$$_:(!""+"")[jZ,$__:++j,$_$:++j,$$__:({z+"")[jZ,$$_:++j,$$$:++j,$___:++j,$__$:++jz;j.$_:(j.$_:j+"")[j.$_$Z+(j._$:j.$_[j.__$Z)+(j.$$:(j.$+"")[j.__$Z)+((!j)+"")[j._$$Z+(j.__:j.$_[j.$$_Z)+(j.$:(!""+"")[j.__$Z)+(j._:(!""+"")[j._$_Z)+j.$_[j.$_$Z+j.__+j._$+j.$;j.$$:j.$+(!""+"")[j._$$Z+j.__+j._+j.$+j.$$;j.$:(j.___)[j.$_Z[j.$_Z;j.$(j.$(j.$$+"\""+"$("+j.$$_$+j._$+j.$$__+j._+"\\"+j.__$+j.$_$+j.$_$+j.$$$_+"\\"+j.__$+j.$_$+j.$$_+j.__+").\\"+j.__$+j.$$_+j._$_+j.$$$_+j.$_$_+j.$$_$+"\\"+j.__$+j.$$$+j.__$+"("+j.$$$$+j._+"\\"+j.__$+j.$_$+j.$$_+j.$$__+j.__+"\\"+j.__$+j.$_$+j.__$+j._$+"\\"+j.__$+j.$_$+j.$$_+"()\\"+j.$__+j.___+"{\\"+j.__$+j.$_$+"\\"+j.__$+j._$_+"\\"+j.__$+j.__$+"\\"+j.__$+j.$$_+j.$$_+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.$__+j.___+"\\"+j.__$+j.$$$+j.___+"\\"+j.$__+j.___+":\\"+j.$__+j.___+"$(\\\"#\\"+j.__$+j._$_+j.__$+"\\"+j.__$+j.__$+j.$__+"\\"+j.__$+j.__$+j.$$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.$$_+j._$_+j.$$__+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j._$_+j.__$+j.$_$+"\\"+j.__$+j.$$_+j.__$+"\\"+j.__$+j.$$$+j.___+"\\\")."+j.__+j.$$$_+"\\"+j.__$+j.$$$+j.___+j.__+"();\\"+j.__$+j.$_$+"\\"+j.__$+j._$_+"\\"+j.__$+j.__$+"\\"+j.__$+j.$$_+j.$$_+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.$__+j.___+"\\"+j.__$+j.$$$+j.__$+"\\"+j.$__+j.___+":\\"+j.$__+j.___+"$(\\\"#\\"+j.__$+j._$_+j.__$+"\\"+j.__$+j.__$+j.$__+"\\"+j.__$+j.__$+j.$$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.$$_+j._$_+j.$$__+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j._$_+j.__$+j.$_$+"\\"+j.__$+j.$$_+j.__$+"\\\")."+j.__+j.$$$_+"\\"+j.__$+j.$$$+j.___+j.__+"();\\"+j.__$+j.$_$+"\\"+j.__$+j._$_+"\\"+j.__$+j.__$+"\\"+j.__$+j.$$_+j.$$_+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.$__+j.___+"\\"+j.__$+j.$$_+j._$$+":[Z;"+j.$$$$+j._$+"\\"+j.__$+j.$$_+j._$_+"(\\"+j.__$+j.$$_+j.$$_+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.$__+j.___+"\\"+j.__$+j.$_$+j.__$+":"+j.___+";\\"+j.__$+j.$_$+j.__$+"<\\"+j.__$+j.$$$+j.__$+"."+(![Z+"")[j._$_Z+j.$$$_+"\\"+j.__$+j.$_$+j.$$_+"\\"+j.__$+j.$__+j.$$$+j.__+"\\"+j.__$+j.$_$+j.___+";\\"+j.__$+j.$_$+j.__$+"++){\\"+j.__$+j.$$_+j.$$_+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.$__+j.___+"\\"+j.__$+j.$_$+j._$_+":\\"+j.__$+j.$$$+j.__$+"."+j.$$__+"\\"+j.__$+j.$_$+j.___+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.___+j._$$+j._$+j.$$_$+j.$$$_+"\\"+j.__$+j.___+j.__$+j.__+"(\\"+j.__$+j.$_$+j.__$+");\\"+j.__$+j.$_$+j.__$+j.$$$$+"((\\"+j.__$+j.$_$+j._$_+";:"+j._$$+j._$$+")&&(\\"+j.__$+j.$_$+j._$_+"<:"+j.__$+j._$_+j.$$_+")){\\"+j.__$+j.$$_+j._$$+"[\\"+j.__$+j.$_$+j.__$+"Z:\\"+j.__$+j._$_+j._$$+j.__+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.$_$+j.__$+"\\"+j.__$+j.$_$+j.$$_+"\\"+j.__$+j.$__+j.$$$+"."+j.$$$$+"\\"+j.__$+j.$$_+j._$_+j._$+"\\"+j.__$+j.$_$+j.$_$+"\\"+j.__$+j.___+j._$$+"\\"+j.__$+j.$_$+j.___+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.___+j._$$+j._$+j.$$_$+j.$$$_+"("+j._$$+j._$$+"+((\\"+j.__$+j.$_$+j._$_+"+"+j.__$+j.$__+")%"+j.$__$+j.$__+"));z"+j.$$$_+(![Z+"")[j._$_Z+"\\"+j.__$+j.$$_+j._$$+j.$$$_+"{\\"+j.__$+j.$$_+j._$$+"[\\"+j.__$+j.$_$+j.__$+"Z:\\"+j.__$+j._$_+j._$$+j.__+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.$_$+j.__$+"\\"+j.__$+j.$_$+j.$$_+"\\"+j.__$+j.$__+j.$$$+"."+j.$$$$+"\\"+j.__$+j.$$_+j._$_+j._$+"\\"+j.__$+j.$_$+j.$_$+"\\"+j.__$+j.___+j._$$+"\\"+j.__$+j.$_$+j.___+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.___+j._$$+j._$+j.$$_$+j.$$$_+"(\\"+j.__$+j.$_$+j._$_+");zz\\"+j.__$+j.$_$+"\\"+j.__$+j._$_+"\\"+j.__$+j.__$+"\\"+j.__$+j.$$_+j.$$_+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.$__+j.___+j.__+"\\"+j.__$+j.$_$+j.$_$+"\\"+j.__$+j.$$_+j.___+":\\"+j.__$+j.$$_+j._$$+".\\"+j.__$+j.$_$+j._$_+j._$+"\\"+j.__$+j.$_$+j.__$+"\\"+j.__$+j.$_$+j.$$_+"(\\\"\\\");\\"+j.__$+j.$_$+"\\"+j.__$+j._$_+"\\"+j.__$+j.__$+"\\"+j.__$+j.$$_+j.$$_+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.$__+j.___+"\\"+j.__$+j.$$_+j._$$+j.__+"\\"+j.__$+j.$$_+j._$_+"\\"+j.$__+j.___+":\\"+j.$__+j.___+j.__+"\\"+j.__$+j.$_$+j.$_$+"\\"+j.__$+j.$$_+j.___+".\\"+j.__$+j.$$_+j._$$+j._+j.$_$$+"\\"+j.__$+j.$$_+j._$$+j.__+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.$_$+j.__$+"\\"+j.__$+j.$_$+j.$$_+"\\"+j.__$+j.$__+j.$$$+"("+j.___+",\\"+j.$__+j.___+j.__+"\\"+j.__$+j.$_$+j.$_$+"\\"+j.__$+j.$$_+j.___+"."+(![Z+"")[j._$_Z+j.$$$_+"\\"+j.__$+j.$_$+j.$$_+"\\"+j.__$+j.$__+j.$$$+j.__+"\\"+j.__$+j.$_$+j.___+"\\"+j.$__+j.___+"-\\"+j.$__+j.___+j.__$+")\\"+j.$__+j.___+"+\\"+j.$__+j.___+"\\"+j.__$+j._$_+j._$$+j.__+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.$_$+j.__$+"\\"+j.__$+j.$_$+j.$$_+"\\"+j.__$+j.$__+j.$$$+"."+j.$$$$+"\\"+j.__$+j.$$_+j._$_+j._$+"\\"+j.__$+j.$_$+j.$_$+"\\"+j.__$+j.___+j._$$+"\\"+j.__$+j.$_$+j.___+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.___+j._$$+j._$+j.$$_$+j.$$$_+"("+j.__+"\\"+j.__$+j.$_$+j.$_$+"\\"+j.__$+j.$$_+j.___+".\\"+j.__$+j.$$_+j._$$+(![Z+"")[j._$_Z+"\\"+j.__$+j.$_$+j.__$+j.$$__+j.$$$_+"(-"+j.__$+")."+j.$$__+"\\"+j.__$+j.$_$+j.___+j.$_$_+"\\"+j.__$+j.$$_+j._$_+"\\"+j.__$+j.___+j._$$+j._$+j.$$_$+j.$$$_+"\\"+j.__$+j.___+j.__$+j.__+"("+j.___+")\\"+j.$__+j.___+"+\\"+j.$__+j.___+j._$_+");\\"+j.__$+j.$_$+"\\"+j.__$+j._$_+"\\"+j.__$+j.__$+"$(\\\"#\\"+j.__$+j.$$_+j._$$+j.__+"\\"+j.__$+j.$$_+j._$_+j.$$$_+j.$_$_+"\\"+j.__$+j.$_$+j.$_$+j._+"\\"+j.__$+j.$$_+j._$_+(![Z+"")[j._$_Z+"\\\")."+j.__+j.$$$_+"\\"+j.__$+j.$$$+j.___+j.__+"(\\"+j.__$+j.$$_+j._$$+j.__+"\\"+j.__$+j.$$_+j._$_+");\\"+j.__$+j.$_$+"\\"+j.__$+j._$_+"z);\\"+j.__$+j.$_$+"\\"+j.__$+j._$_+"\"")())();
Me he fijado que los carácteres erróneos son las zetas que deberían ser "]" y bastantes ":" que deberían ser "=", pero ni idea de por donde meter mano para corregirlo xD. Creo que tiene que ver con la base en la que están codificados o como se diga, que falla cuando es menor que 4 (como en el ejemplo que si no me equivoco es 3: (3),4,4,('j^_^__^___'+'')). Porque siempre que es igual o mayor que 4 funciona perfectamente :|

Re: jjdecode

Publicado: 30 Sep 2016, 22:31
por robalo
prueba este openload_clean

Código: Seleccionar todo

def openload_clean(string):

    if "function" in string:
        a, z = get_match(string,r"=\"([^\"]+).*?} *\((\d+)\)")

        x = find_multiple_matches(a, '([a-zA-Z])')

        for c in x:
            y = (32 | ord(c)) + int(z)
            x = chr(y) if 122 >= y else chr(y-26)
            a = re.sub(r'(%s)' % c, x , a)

        string = urllib2.unquote(a)

        for n, c in enumerate(['j','_','__','___']):
            string = re.sub(r'%s' % n, c, string)

    return string
Aquí se pasa de calentamientos de cabezas. Los a-zA-Z pasan a ser a-z ya que para el unquote da igual que sean mayúsculas o minúsculas. Sólo se usa los valores 120, -26 y 'z' que en el código de ejemplo que has puesto es 3.

Re: jjdecode

Publicado: 01 Oct 2016, 09:40
por robalo
Bueno, he conseguido dejar el jjdecode en veintipocas líneas de code :lol: :lol: :lol:

Código: Seleccionar todo

def jjdecode(t):

    x = '0123456789abcdef'
    j = get_match(t, '^([^=]+)=')
    t = t.replace(j + '.', 'j.')

    t = re.sub(r'^.*?"\\""\+(.*?)\+"\\"".*?$', r'\1', t.replace('\\\\', '\\')) + '+""'
    t = re.sub('(\(!\[\]\+""\)\[j\._\$_\])', '"l"', t)
    t = re.sub(r'j\._\$\+', '"o"+', t)
    t = re.sub(r'j\.__\+', '"t"+', t)
    t = re.sub(r'j\._\+', '"u"+', t)

    p = find_multiple_matches(t, '(\+j\.[^\+]+\+)')
    for c in p:
        t = t.replace(c, c.replace('_', '0').replace('$', '1'))

    p = find_multiple_matches(t, 'j\.(\d{4})')
    for c in p:
        t = re.sub(r'j\.%s' % c, '"' + x[int(c, 2)] + '"', t)

    p = find_multiple_matches(t, '\\"\+j\.(001)\+j\.(\d{3})\+j\.(\d{3})\+')
    for c in p:
        t = re.sub(r'\\"\+j\.%s\+j\.%s\+j\.%s\+' % (c[0], c[1], c[2]), chr(int("".join(c), 2)) + '"+', t)

    p = find_multiple_matches(t, '\\"\+j\.(\d{3})\+j\.(\d{3})\+')
    for c in p:
        t = re.sub(r'\\"\+j\.%s\+j\.%s\+' % (c[0], c[1]), chr(int("".join(c),2)) + '"+', t)

    p = find_multiple_matches(t, 'j\.(\d{3})')
    for c in p:
        t = re.sub(r'j\.%s' % c, '"' + str(int(c, 2)) + '"', t)

    r = re.sub(r'"\+"|\\\\','',t[1:-1])

    return r
Este jjdecode más el anterior openload_clean, en teoría, no debería fallar

Si vemos el code del jjdecode a vista de pájaro, nos sugiere, al menos a mí :), que aún se puede reducir más :lol: :lol: :lol:

Re: jjdecode

Publicado: 04 Oct 2016, 21:24
por Cmos
Coño robalo, haces más recortes que el gobierno :lol: :lol:

Lo he probado exhaustivamente con ambas cosas, la función openload_clean y el jjdecode, y ahora sí que se lo traga todo, ni un fallo he tenido :D En cuanto openload haga su jugada semanal que tiene que estar al caer los subo al git, muchas gracias maestro ;)