Как реверсировать функцию?

74
02 апреля 2022, 13:20

(Моя задача - найти определенный флаг и вписать его в поле на сайте)

В процессе выполнения задания я столкнулся с проблемой, что я не могу понять, что делает ф-ция:

Непонятная функция:

var n=1;for(i=0;i<28;i+=1)t+=e[n=420*n%29];return"fJbRXS_pKoAZvoSKfdZubxMsBWuWo"!=t?alert("NOT EPIC"):(alert("O M G"),window.location=window.location+o),!1})()

Весь код:

function kek(){var e=document.getElementById("s").value,o=e,t={A:"E",B:"l",C:"N",D:"U",E:"v",F:"x",G:"D",H:"H",I:"Y",J:"W",K:"S",L:"k",M:"d",N:"j",O:"g",P:"m",Q:"h",R:"I",S:"r",T:"F",U:"z",V:"L",W:"e",X:"t",Y:"A",Z:"q",a:"f",b:"C",c:"w",d:"P",e:"B",f:"V",g:"i",h:"y",i:"T",j:"O",k:"b",l:"_",m:"M",n:"a",o:"Z",p:"X",q:"R",r:"J",s:"n",t:"G",u:"Q",v:"c",w:"p",x:"s",y:"o",z:"K",_:"u"};e=e.replace(/[A-Za-z_]/g,c=>t[c]);if(29!=e.length)return alert("NOT EPIC"),!1;t=e[0];var n=1;for(i=0;i<28;i+=1)t+=e[n=420*n%29];return"fJbRXS_pKoAZvoSKfdZubxMsBWuWo"!=t?alert("NOT EPIC"):(alert("O M G"),window.location=window.location+o),!1})()

Мои догадки:

  1. Я так понимаю, что нам нужно идти с конца функции.
  2. Я решил уравнение n=420*n%29 записанное в цикле I<28 и получил
  3. И дальше возникает вопрос, нужно ли мне как то теперь идти от обратного и собирать этот флаг по индексам словаря или я вообще не туда пришел?

Пожалуйста, помогите найти флаг, или хотя бы понять, что делает данная функция.

READ ALSO
Преобразование массива данных

Преобразование массива данных

Необходимо преобразовать массив вида:

136
Проблема с Post запросом

Проблема с Post запросом

Есть такой vue метод:

209
Перенос svg в страницу с помощью js

Перенос svg в страницу с помощью js

Я решил реализовал код, который переносит svg иконку, которую берёт из 'src' тега img с классомsvg

63