Ищу сервисы и методы для дэобфускации JS. В одном из тасков наткнулся на код, в общих чертах понял его работу, но не смог полностью самостоятельно разобрать код. В PHP я могу в нужном месте делать exit(); и предварительно смотреть через var_dump() нужные мне переменные. Что можете посоветовать для JS? Нагугленые дэобфускаторы: https://lelinhtinh.github.io/de4js/ https://deobfuscate.io/ Код из таска: Code: var _0x49ca=['onreadystatechange','send','POST','stringify','createElement','length','responseText','innerHTML','/assets/php/search.php','results','appendChild','getElementById','replace','target','parse','open','createTextNode','value'];(function(_0x4b4363,_0x49ca1a){var _0x3926ef=function(_0x23f2a2){while(--_0x23f2a2){_0x4b4363['push'](_0x4b4363['shift']());}};_0x3926ef(++_0x49ca1a);}(_0x49ca,0x1a0));var _0x3926=function(_0x4b4363,_0x49ca1a){_0x4b4363=_0x4b4363-0x0;var _0x3926ef=_0x49ca[_0x4b4363];return _0x3926ef;};function submit(){var _0x25c265=document[_0x3926('0x9')](_0x3926('0xb'))[_0x3926('0xf')][_0x3926('0xa')](/[^a-zA-Z0-9. ]|exec/gi,'');var _0x33c045=document[_0x3926('0x9')](_0x3926('0x7'));_0x33c045[_0x3926('0x5')]='';var _0x5a6bb1=new XMLHttpRequest();_0x5a6bb1[_0x3926('0x10')]=function(){if(this['readyState']==0x4&&this['status']==0xc8){response=JSON[_0x3926('0xc')](_0x5a6bb1[_0x3926('0x4')]);for(var _0xde072e=0x0;_0xde072e<response[_0x3926('0x3')];_0xde072e++){var _0x6abcb4=document[_0x3926('0x2')]('li');_0x6abcb4[_0x3926('0x8')](document[_0x3926('0xe')](response[_0xde072e]));_0x33c045[_0x3926('0x8')](_0x6abcb4);_0x33c045['style']='display:block;';}document[_0x3926('0x9')](_0x3926('0xb'))[_0x3926('0xf')]='';}};_0x5a6bb1[_0x3926('0xd')](_0x3926('0x0'),_0x3926('0x6'),!![]);_0x5a6bb1[_0x3926('0x11')](JSON[_0x3926('0x1')]({'target':_0x25c265}));} p.s. как спрятать код от гугл?
Если хочешь потанцевать с бубном, то можешь по переменно, вставлять переменные на вывод и складывать в читаемый код например так: https://prnt.sc/I83OWTGishrn HTML: //var _0x25c265=document[_0x3926('0x9')](_0x3926('0xb'))[_0x3926('0xf')][_0x3926('0xa')](/[^a-zA-Z0-9. ]|exec/gi,''); //var _0x25c265=document.getElementById('target').value.replace(/[^a-zA-Z0-9. ]|exec/gi,''); document.write('<textarea>'+ _0x3926('0x9') +'</textarea>'); //или так document.write('<br><b>'+ _0x3926('0x9') +'</b>');
Никакой деобфускатор не сделает код нормальным. Всегда придется делать вручную Code: function submit() { var target = document.results("getElementById").open.appendChild(/[^a-zA-Z0-9. ]|exec/gi, ""); var html = document.results("innerHTML"); var xhr = new XMLHttpRequest; xhr.createTextNode = function () { if (this.readyState == 4 && this.status == 200) { response = JSON.replace(xhr.createElement); var i = 0; for (; i < response.stringify; i++) { var data = document.POST("li"); data["/assets/php/search.php"](document.parse(response[i])); html["/assets/php/search.php"](data); html.style = "display:block;"; } document.results("getElementById").open = ""; } }; xhr.target("onreadystatechange", "responseText", true); xhr.value(JSON.send({target: target})); }
На правах КО, напомню, что для отладки монструозных скриптов, удобно юзать отладчик в браузере, например Debugger из FireFox. Просто расставляешь бряки на нужные строки, а тулза тормозит выполнение JS в этих местах и подсвечивает что где лежит и куда ссылается. Для завёрнутого N раз кода это не совсем то что нужно, но всяко удобнее чем ловить окошечки с алертами. Так же, рядом в консоли, при должной сноровке, можно компоновать и стартовать скрипт как хочется.
да вот как раз то что нужно, я совсем забыл про брейкпоинты, осталось только слегка подружится с жабаскриптом. Есть аналог var_dump из PHP в JS?
console.log() Это вопрос большого количества $$$$ и на публику никто подобным не поделится. К примеру, прошаренные СЕОшники создают сотни или даже тысячи экспериментов в разных вариациях, прежде чем придут к какому-то приемлемому варианту клоаки, а далее отжимают это дело по полной, что поисковые системы по аномалиям фиксят это байпас
Под спрятать код я подразумевал хайд на форуме, т.к. код из таска и не хочу чтоб он светился в гугле, темболее в теме выложили его читаемый вид) Но это не принциапиально, таск решался и без дэобфускации кода.