-
Notifications
You must be signed in to change notification settings - Fork 86
/
minerkill.js
65 lines (57 loc) · 1.75 KB
/
minerkill.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
'use strict';
function triggerMblockEvent(miner) {
let event = new CustomEvent('minerBlocked', {
detail: {
minerUrl: miner
}
});
document.dispatchEvent(event);
}
setTimeout(function() {
for(let name in this) {
if(name === 'webkitStorageInfo') {
continue;
}
try {
// Check CoinHive like miners
if( this[name]
&& typeof this[name] !== 'undefined'
&& typeof this[name].isRunning === 'function'
&& typeof this[name].stop === 'function'
&& (typeof this[name]._siteKey === 'string' || typeof this[name]._sitek === 'string' || typeof this[name]._newSiteKey === 'string' || typeof this[name]._address === 'string')
) {
console.log('[+] Coinhive miner found, stopping...');
this[name].stop();
this[name] = null;
triggerMblockEvent('CoinHive (inline)');
}
// Check Mineralt miners
if( this[name]
&& typeof this[name] !== 'undefined'
&& typeof this[name].db === 'function'
&& typeof this[name].getlf === 'function'
&& typeof this[name].stop === 'function'
&& typeof this[name].hps === 'function'
&& typeof this[name].hps() === 'number'
) {
console.log('[+] Mineralt miner found, stopping...');
this[name].stop();
this[name] = null;
triggerMblockEvent('Mineralt (inline)');
}
// Check Webminerpool miners
if( this[name]
&& typeof this[name] !== 'undefined'
&& typeof this[name].addWorker === 'function'
&& typeof this[name].startMining === 'function'
&& typeof this[name].stopMining === 'function'
&& typeof this[name].totalhashes === 'number'
) {
console.log('[+] Webminerpool miner found, stopping...');
this[name].stopMining();
this[name] = null;
triggerMblockEvent('Webminerpool (inline)');
}
} catch(mberr) {}
}
}, 2000);