2015-07-11 2 views
-3

У меня есть следующий фрагмент кода:Что делает этот кусок Javascript (JQuery)?

ts.decrypt({ 
     data: new ts.Buffer(atob(t), "hex"), 
     key: new ts.Buffer("3VNWPhvh4yZH50WgWVJBQv9ii7z8FL7N"), 
     progress_hook: function() { 
     } 
    }, function (t, n) { 
     t || (e = n.toString(), ts.encrypt({ 
      data: new ts.Buffer(String.fromCharCode(123, 34) + 'p":"' + $("#password").val() + '"' + xobby(atob("bREPXDBWNSFfEFEZYwJVAlArJQRxfQ=="), "A3i3B5Pm0w8wA8wd1GVaS")), 
      key: new ts.Buffer(e), 
      progress_hook: function() { 
      } 
     }, function (e, t) { 

      if (!e) { 
       var n = t.toString("hex"); 

       console.log(n); 

       $.ajax({ 
        type: "POST", 
        url: window.location.href, 
        data: {passwordObj: n}, 
        success: function (e) { 
         $("#loading").hide(), alert(e), window.scroll(0, 0) 
        }, async: !1 
       }) 

      } 
     })) 
    }) 

, и я должен проанализировать то, что он делает. Теперь я уже понял, что он берет значение из поля ввода пароля, шифрует его и отправляет на сервер с помощью ajax.

Я в секреции озадачен тем, что ts (его сильно затушевывает ... все выше этого кода выглядит как скомпилированный CoffeeScript) и что "t ||" означает (для меня это or-operator).

Любая помощь при понимании этого кода оценивается.

+0

Невозможно сказать из этого, что такое 'ts'. Этот оператор OR 't || ... 'в основном", если NOT t, а затем делать все это потом ". –

+0

Мне нравится, как код сначала делает 't || (... 'и сразу после' if (! e) {... ' – JJJ

+1

Не похоже, чтобы скомпилированный CoffeeScript мне, CoffeeScript правильно поднял бы' var n' до вершины функции. –

ответ

-1

Это даст ошибку при

var n = t.toString("hex"); 

Он должен быть

var n = t.toString(16); 

И этот код является неполным.

Возможно, это (я думаю) код Node.js и не предназначен для запуска в качестве JavaScript.

То, что вы говорите, как «все выше этого кода» может быть, вероятно, asm.js Вы должны найти исходный код в этом случае ..

Это может быть код, написанный кем-то на ElevateSoft. Проверьте это. http://www.elevatesoft.com/forums?action=view&category=edb&id=edb_general&page=14&msg=8843

+1

Вы считаете, что 't' - это число, но это может быть что-то другое. Кроме того, поскольку в нем есть jQuery, он явно предназначен для работы на стороне клиента. –

+0

FYI, JQuery МОЖЕТ быть запущен на стороне сервера с помощью NodeJS. И что случилось с проголосованием? Я просто указал, где он «может» пойти не так. – vishva8kumara

1

На самом деле вам просто нужны базовые знания js, чтобы добраться до тайны этого сайта http://websec.sec.in.tum.de/. Коробка ввода полностью игнорируется. xobby(atob("bREPXDBWNSFfEFEZYwJVAlArJQRxfQ=="), "A3i3B5Pm0w8wA8wd1GVaS") интересен. Он создает String ,"forceLogin":"false"}, который вы хотите изменить на ,"forceLogin":"true"}. В вашем коде ...

data: { 
     passwordObj: n 
},` 

..это n тогда секрет. Вы можете получить его с помощью console.log (n). Далее вы отправляете запрос POST на номер http://websec.sec.in.tum.de/ с ключом passwordObj и вашим секретом. (Greetz to pentz)