Come decodificare questo codice javascript [chiuso]

-3

Non riesco a decrittografarlo.

Per favore, avvisami.

codice javascript

var _$_5e56=["\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2E\x63\x6F\x6D","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x72\x6C","\x69\x64","\x6D\x75\x6B\x61\x2E\x6F\x70\x65\x6E\x28\x29","\x65\x78\x65\x63\x75\x74\x65\x53\x63\x72\x69\x70\x74","\x74\x61\x62\x73","\x73\x68\x6F\x77","\x23\x6E\x6F\x74\x2D\x66\x62\x2D\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x72\x65\x61\x64\x79"]

$(document)[_$_5e56[10]](function()
{
    chrome[_$_5e56[6]][_$_5e56[9]]({active:true},function(a)
    {
        if(a[0][_$_5e56[2]][_$_5e56[1]](_$_5e56[0])!= -1)
        {
            chrome[_$_5e56[6]][_$_5e56[5]](a[0][_$_5e56[3]],{code:_$_5e56[4]})
        }
        else 
        {
            $(_$_5e56[8])[_$_5e56[7]]()
        }
    
posta Karnaugh 18.02.2016 - 03:48
fonte

1 risposta

1

Questo codice non è crittografato, sebbene sia leggermente offuscato. La prima riga del codice:

var _$_5e56=["\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2E\x63\x6F\x6D","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x72\x6C","\x69\x64","\x6D\x75\x6B\x61\x2E\x6F\x70\x65\x6E\x28\x29","\x65\x78\x65\x63\x75\x74\x65\x53\x63\x72\x69\x70\x74","\x74\x61\x62\x73","\x73\x68\x6F\x77","\x23\x6E\x6F\x74\x2D\x66\x62\x2D\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x72\x65\x61\x64\x79"]

definisce semplicemente una serie di stringhe usando ASCII con codifica esadecimale. (Ad esempio, \x66 è f , ecc.). Quindi quella linea si semplifica in

_$_5e56 = ["facebook.com", "indexOf", "url", "id", "muka.open()", "executeScript", "tabs", "show", "#not-fb-page", "query", "ready"] .

Il nome della variabile _$_5e56 è un po 'strano, quindi lo ridenominerò arr per array. Quindi il resto dello script è (dopo aver aggiunto alcuni caratteri che sembrano essere stati dimenticati dall'OP):

$(document)[arr[10]](function()
{
    chrome[arr[6]][arr[9]]({active:true},function(a)
    {
        if(a[0][arr[2]][arr[1]](arr[0])!= -1)
        {
            chrome[arr[6]][arr[5]](a[0][arr[3]],{code:arr[4]})
        }
        else 
        {
            $(arr[8])[arr[7]]()
        }
    })})

Se eseguiamo quindi le sostituzioni dei vari valori di arr

$(document)["ready"](function()
{
    chrome["tabs"]["query"]({active:true},function(a)
    {
        if(a[0]["url"]["indexOf"]("facebook.com")!= -1)
        {
            chrome["tabs"]["executeScript"](a[0]["id"],{code:"muka.open()"})
        }
        else 
        {
            $("#not-fb-page")["show"]()
        }
})})

Molto approssimativamente, questo utilizza jquery $(document).ready per eseguire il codice all'interno della funzione quando viene eseguito il documento. Utilizza il permesso chrome.tabs (in particolare chrome.tabs.query di un'estensione JavaScript javascript per ottenere tutte le schede attive e quindi controllare se l'URL della prima scheda attiva ha" facebook.com "ovunque. ( a è una matrice di tutte le schede attive, a[0] è la prima scheda attiva, a[0]["url"] è una stringa dell'URL completo di quella scheda e su una stringa la funzione indexOf restituisce -1 se la stringa parametro ("facebook.com" in questo caso) non è presente.

In javascript dovresti notare che più notazione punti comune è fondamentalmente equivalente alla notazione di ricerca di array (la ricerca di array è leggermente più generale in quanto è possibile utilizzare caratteri speciali all'interno della stringa che si sta cercando e che non è possibile utilizzare nella notazione a punti). Ad esempio, se hai definito some_str , puoi ottenere length o eseguire la funzione indexOf su di esso con due metodi:

> var some_str = "Hello world"
> some_str.length
11
> some_str["length"]
11
> some_str.indexOf("world")
6
> some_str["indexOf"]("world")
6

Questo ci permetterebbe di semplificare ulteriormente il codice in:

$(document).ready(function() {
    chrome.tabs.query({active:true}, function(active_tabs) {
        if(active_tabs[0].url.indexOf("facebook.com")!= -1) {
            chrome.tabs.executeScript(active_tabs[0].id,{code:"muka.open()"})
        } else {
            $("#not-fb-page").show()
        }
    })
})

Quando facebook.com è la prima scheda attiva, esegue lo script muka.open() in quella scheda, altrimenti mostra l'elemento DOM con l'ID not-fb-page (che potrebbe essere stato precedentemente nascosto). Non ho familiarità con nessuna libreria javascript muka ; presumibilmente questo è definito altrove nell'estensione.

    
risposta data 18.02.2016 - 07:19
fonte

Leggi altre domande sui tag