Задать вопрос
@maryaTurova

Как можно обойтись без document.write, или как лучше поступить?

Страница генерируется обфусцированным js скриптом,после чего перекидывает на другую страницу с помощью window.open.
Я решил поступить так:
прежде чем страница загрузилась,получить ее запросом,подменить что надо и через write
записать.Консоль выдает все как надо.
код на Tampermonkey
(function() {
    'use strict';
    window.stop();
    const xhr = new XMLHttpRequest();
    xhr.open('GET', window.location.href);
    xhr.onload = () => {
        var _html = xhr.responseText,
        _exit_html = '',
		_obfusc_code = _html.split('"use strict";')[0],
		_var1 = _obfusc_code.split('=\n')[0],
		_main_code = _obfusc_code.replace(_var1,'').replace(/[^A-Za-z0-9.]/g, ''),
		_uri ='';
		_main_code.split('.').forEach(function x(_string) {
			_uri += String.fromCharCode(parseInt(window.atob(_string).replace(/\D/g, '')) - 0);
		});
		_exit_html = decodeURIComponent(escape(_uri)).replace(/<script\b[\s\S]*?<\/script>/g, s => {
            // check if script tag should be replaced/deleted
            if (s.includes('window.open')) {
                return '';
            } else {
                return s;
            }
        });
		console.log(_exit_html)
        document.write(_exit_html);
    };
    xhr.send();
})();

Но вот беда.Если прекратить загрузку (window.stop) перед запросом, то write уже не работает. А если не использовать , то зловредные скрипты уже на странице.
Что посоветуете?
  • Вопрос задан
  • 95 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы