Как стать автором
Обновить

Комментарии 7

Хм.. не видел смысла сегодня писать, (тк я злобное зло=)), а поводов троллить нет. но напишу зачем минусовать эти статьи? Вы бы посмотрели, парень пишет целый цикл это уже четвертая где наглядно dev tools для начинающих и не только разбирает. И Вы посмотрите историю у него и читатели есть. Или минус просто так? На автомате? Да эта статья не полноценный ман, Но он и не претендует и в конце концов она гораздо более луТчше информативнее таких И у меня боольшие подорзения назовем это так;-) что набирают их вот тут Хотя это не подорзения но ладно.

Спасибо за поддержку.

Я думаю, это минусы не из злости или на автомате, а по причине какого-то консерватизма, что Хабр - не для джунов. Поэтому отношусь спокойно.

Интересно, а есть ли способ выключить debugger;? А то как-то столкнулся на одном сайте с таким противоотладочным приёмом — по setTimeout вызывалась функция, которая генерировала другую функцию с debugger; внутри. Собственно, я полез в отладчик для того, чтобы выяснить, почему страница дико тормозит, но с этим финтом отладка оказалась совершенно невозможной, так как выполнение постоянно приостанавливалось, а снять точку останова было нельзя.

Нужен конкретный пример, чтобы подобрать способ, поэтому пока просто накидаю вариантов.

Можно игнорировать точки останова полностью:

Кнопка игнорирования точек останова — перечёркнутая стрелка
Кнопка игнорирования точек останова — перечёркнутая стрелка

В таком случае код сохранит работоспособность и его можно изучать "в процессе".

Когда игнорирование точек останова не работает, можно попробовать игнорировать файл целиком:

В контекстном меню "Игнорировать исходник" или иконка глаза на панели снизу
В контекстном меню "Игнорировать исходник" или иконка глаза на панели снизу

В таком случае файл будет "отключён" от страницы, сайт скорее всего сломается, но код изучить можно будет.

К сожалению, конкретного примера не будет, так как столкнулся с этим давно, просто в памяти запало (тогда-то я впервые и узнал о том, что есть такое ключевое слово debugger;, да и сам приём показался любопытным (хотя и мерзким), поэтому и запомнился). Но игнорирование исходника не помогло бы, поскольку функция каждый раз генерировалась новая со своим собственным виртуальным исходником «скрипт» (или как он там называется). Короче, суть в том, что отключать бесполезно, на следующем тике будет сгенерирована новая функция и всё опять застопорится. Таймаут тоже было не очистить, так как его идентификатор нигде не сохранялся. Кнопки игнорирования точек останова тогда либо не было, либо же она не работала конкретно с debugger;, уже не помню.

Скорее всего не работала с debugger

Помню, на Авито такое было. Когда там Роман Дворнов работал, как-то на конференции обсуждали эту "защиту". Сейчас зашёл — ничего похожего не осталось.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории