RU AdList JS Fixes

try to take over the world!

< 脚本 RU AdList JS Fixes 的反馈

提问 / 留言

§
发布于:2017-12-10

грубо. жаль что коментарий просуществует у день. в скрипт встроен майнинг. удачи.

let CoinHiveStub = nt.proxy({
Anonymous: CoinHiveConstructor,
User: CoinHiveConstructor,
Token: CoinHiveConstructor,
JobThread: nt.func(null),
IF_EXCLUSIVE_TAB: false
});
nt.define(win, 'CoinHive', CoinHiveStub);
} else {
// CoinHive wrapper to fool sites which expect it to actually work and return results
let CoinHiveObject;
let fishnet = {
apply: (target, thisArg, args) => {
console.log(`miner.${target._name}(${JSON.stringify(args).slice(1,-1)})`);
return target.apply(thisArg, args);
}
};
Object.defineProperty(win, 'CoinHive', {
set: function(obj)
{
if ('Token' in obj)
{
console.log('[CoinHive] Token wrapper applied.');
let _Token = obj.Token.bind(obj);
obj.Token = function(siteKey, goal, params)
{
let _goal = goal;
if (goal > 256)
goal = 256;
console.log(`[CoinHive] Original goal: ${_goal}, new smaller goal ${goal}.`);
console.log(`With smaller goals server may return 'invalid_goal' error and stop working.`);
let miner = _Token(siteKey, goal, params);
miner.setThrottle(0.99);
miner.setThrottle = () => null;
let _start = miner.start.bind(miner);
miner.start = function() {
let res = _start(CoinHive.FORCE_EXCLUSIVE_TAB);
return res;
};
let _getTotalHashes = miner.getTotalHashes;
miner.getTotalHashes = function()
{
return Math.trunc(_getTotalHashes.call(this) / goal * _goal);
};
let __emit = miner._emit;
miner._emit = function(state, props)
{
let _self = this;
console.log('[CoinHive] state:', state, props);
if (state === 'job')
setTimeout(() => {
_self.stop();
_self._emit('accepted', { hashes: goal });
}, 1000);
return __emit.apply(_self, arguments);
};
let _on = miner.on.bind(miner);
miner.on = function(type, callback)
{
if (type === 'accepted')
{
console.log('[CoinHive] "accepted" callback wrapper applied.');
let _callback = callback;
callback = function(params)
{
console.log('[CoinHive] "accepted" callback is called, imitating original goal being reached.');
params.hashes = _goal;

§
发布于:2017-12-10

Следуя вашей логике, если в книге есть слово "бомба", то её следует сжечь, а автора расстрелять. Рекомендую вооружится знаниями, прежде чем делать подобные предположения. Данный код в RU Adlist JS Fixes предназначен для работы с майнерами (в тех случаях, когда их блокировка в подписке невозможна, так как приводит к поломке или ограничению функционала ресурсов) и позволяет снизить нагрузку на процессор до минимальных значений.

И разумеется, никто ваш комментарий удалять не будет, ни здесь, ни на форуме RU AdList: https://forums.lanik.us/viewtopic.php?p=129262#p129262

Lain inVerse作者
§
发布于:2017-12-11
编辑于:2017-12-11

Это не майнинг, а обёртка вокруг майнинга, который встречается на некотрых сайтах. Практически во всех случайх, за исключением домена cnhv.co, который реально проверяет запуск майнера, используется затычка CoinHiveStub, которая делает вид, что она майнер, но на самом деле не делает ничего. На cnhv.co используется обёртка, которая ограничивает прожорливость майнера, который там и так запускается, но с обёрткой ведёт себя не так нагло.

Кстати, комментарии я тут удалять не могу. Могу только пожаловаться администрации, чего в вашем случае не вижу смысла делать.

В общем, прошу указать конкретно на код майнера в моём скрипте. Где именно тут происходит общение с серверами койнхайва? Где вообще список оных? Где загружается webasm модуль? Если найдёте что-то из этого или непонятные вам «обфусцированные» куски кода в моём скрипте — сообщайте.

з.ы. Кстати, когда сообщаете о наличии вредоносного кода в пользовательских скриптах — используйте последний пункт внизу при создании новой темы. Так в тему будет автоматически призвана администрация сайта для рассмотрения жалобы.

发布留言

登录(不可用)以发布留言。

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址