+  HandyCache форум
|-+  Главная категория» Дополнения, плагины» Content Master v.2.0
Имя пользователя:
Пароль:
Страниц: 1 ... 84 85 [86] 87 88 ... 113   Вниз
  Отправить эту тему    Печать  
Автор Тема: Content Master v.2.0  (Прочитано 525008 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #1700 : 07 августа 2017, 20:19:23 »

1. Детект использует те части скрипта, которые неизменны уже очень долгое время, и поэтому достаточно устойчив.
2. Изменить скрипт так, чтоб обойти детект, можно, но внедрить это обновление на всех использующих его сайтах - это на порядок сложнее и дольше. А мы за пять минут обновим соответствующим образом правила СМ.
Добавлено: 07 Август 2017, 20:12:52

Это подозрительно :-).
Иронию можно убрать. Подавляющее большинство обфусцированных скриптов из Украины являются вредоносными. В Украине это направление дейтельности, к сожалению, процветает.
И если Вы видите обфусцированный скрипт, и он от украинского анонимного источника, то это существенный повод насторожиться.
Сообщить модератору   Записан
stealzy
Пользователь
**

Репутация: +1/-2
Offline Offline

Сообщений: 52


« Ответ #1701 : 07 августа 2017, 21:33:48 »

Так вы даже отслеживаете его изменения, круто.
За иронию простите, не знал. Можно узнать как вы определяете страну происхождения, если скрипт встроен в тело html  Непонимаю?
Сообщить модератору   Записан

HC 1.0.0.551
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #1702 : 07 августа 2017, 21:47:25 »

Вскрытие деобфускация показало... Улыбка
Сообщить модератору   Записан
zed
Постоялец
***

Репутация: +4/-0
Offline Offline

Сообщений: 141


« Ответ #1703 : 07 августа 2017, 22:52:55 »

А можно по-подробнее?

Вот этот скрипт:
Код:
<script type="text/javascript">
    (function() {
        function c() {
            var b = {};
            for (var a = 0; a < arguments.length; a += 2) {
                b[arguments[a]] = arguments[a + 1]
            };
            return b
        }
        function b() {
            function h() {
                var d = l[a[1]](a[0]);
                var c = 0;
                for (var f = 0; f < d[a[2]]; f++) {
                    if (b == false) {
                        b(true, true, false, true, false)
                    };
                    if (d[f][a[3]] && d[f][a[3]] != a[4]) {
                        d[f][a[3]] = a[4];
                        if (!a) {
                            b(true);
                            return
                        } else {
                            c++
                        }
                    }
                };
                return c
            }
            function n() {
                if (b == true) {
                    b(false, 1);
                    b = false
                } else {
                    var c = l[a[5]]
                };
                for (var d = 0; d < c[a[2]]; d++) {
                    c[d][a[6]] = true
                };
                h();
                if (b == false) {
                    b();
                    return
                };
                F[a[7]]()
            }
            function y(f, d, h) {
                function c() {
                    return g
                }
                var g = f[d][a[8]]();
                if (!a) {
                    b = true;
                    return
                };
                h[a[9]] = f[d][a[10]](f);
                if (b == a[98]) {
                    return
                };
                f[d] = h;
                f[d][a[8]] = c
            }
            function G(c) {
                var b = F[a[12]][a[11]]() - c[a[13]];
                if (b < v) {
                    n()
                }
            }
            function w(f, d, g) {
                if (b === null) {
                    b = true;
                    return
                };
                F[a[19]][a[18]](f, d, c(a[14], false, a[15], false, a[16], false, a[17], g))
            }
            function r(b) {
                b = z(b);
                var c = l[a[21]](a[20]);
                c[a[22]] = false;
                c[a[23]] = b;
                l[a[25]][a[24]](c);
                l[a[25]][a[26]](c)
            }
            function z(b) {
                var c = a[27] + F[a[30]][a[29]]()[a[8]]()[a[28]](2, 4);
                F[c] = x;
                b = a[31] + b + a[32] + c + a[33];
                return b
            }
            function A(g, f) {
                function c() {
                    f(h)
                }
                function d() {
                    G(h)
                }
                var h = new F[a[34]]();
                h[a[36]](a[35], g, true);
                if (!b) {
                    b()
                };
                h[a[37]] = a[38];
                if (b === true) {
                    b = 1
                };
                h[a[13]] = F[a[12]][a[11]]();
                h[a[40]](a[39], c);
                h[a[40]](a[41], d);
                h[a[42]](null)
            }
            function m(f) {
                var m = f[a[45]](new F[a[44]](a[43]));
                if (m) {
                    var n = m[1];
                    var s = n[a[47]](a[46]);
                    var o = a[4],
                        p = a[4],
                        v = 0,
                        c = [];
                    while (s[v] != a[48]) {
                        p += s[v];
                        if (++v == s[a[2]]) {
                            return
                        }
                    };
                    if (!a) {
                        b(0);
                        return
                    } else {
                        for (var g = v + 1; g < s[a[2]]; g++) {
                            var u = s[g],
                                h = g - v - 1;
                            var t = p[a[28]](h * 2, 2);
                            var l = F[a[49]](t, 16),
                                j = l;
                            var r = a[4];
                            for (var i = 0; i < u[a[2]]; i += 2) {
                                var q = F[a[49]](u[a[28]](i, 2), 16);
                                var d = q ^ l;
                                l = d ^ j;
                                d = d[a[8]](16);
                                if (d[a[2]] < 2) {
                                    d = a[50] + d
                                };
                                r += d
                            };
                            c[a[51]](r)
                        }
                    };
                    f = f[a[53]](n, c[a[52]](a[46]))
                };
                return f
            }
            function q(g) {
                function c(g) {
                    function f(b) {
                        var c = b[a[64]];
                        var g = null;
                        try {
                            g = c[a[65]][a[54]]
                        } catch (e) {};
                        if (g) {
                            q(g);
                            d[a[66]](a[39], f)
                        }
                    }
                    var c = arguments[a[60]][a[9]];
                    var d = c[a[61]](this, arguments);
                    if (d[a[62]] == a[63]) {
                        if (b === 1) {
                            b = false;
                            return
                        } else {
                            d[a[40]](a[39], f)
                        }
                    };
                    if (!b) {
                        b = 0;
                        return
                    } else {
                        return d
                    }
                }
                function d() {
                    var b = arguments[a[60]][a[9]];
                    var c = this[a[67]];
                    b[a[61]](this, arguments);
                    if (c == a[68]) {
                        o(this)
                    }
                }
                function f() {
                    var c = arguments[a[60]][a[9]];
                    c[a[61]](this, arguments);
                    if (b === false) {
                        b();
                        return
                    };
                    o(this)
                }
                y(g, a[21], c);
                var h = d;
                y(g, a[69], h);
                y(g, a[70], h);
                y(g, a[36], f);
                if (!b) {
                    b();
                    b = 0;
                    return
                };
                x[a[71]][a[51]](g);
                o(g)
            }
            function p(d, f) {
                var g = d[a[64]];
                if (!a) {
                    return
                };
                var c = (f) ? x[a[72]] : x[a[73]];
                if (!b) {
                    return
                };
                c[a[51]](g)
            }
            function o(b) {
                b[a[40]](a[41], x[a[74]], true);
                b[a[40]](a[39], x[a[75]], true)
            }
            function s() {
                function f(j) {
                    function g(b) {
                        r(m(b[a[93]]))
                    }
                    if (b == null) {
                        return
                    };
                    if (j[a[76]] == 204) {
                        if (c[a[77]]) {
                            if (!a) {
                                b(0)
                            } else {
                                F[a[80]][a[79]](a[78])
                            };
                            return
                        };
                        c[a[77]] = l[a[82]][a[81]];
                        A(d(), f);
                        return
                    };
                    x[a[84]][a[83]] = j[a[86]](a[85]);
                    if (!a) {
                        return
                    };
                    var h = j[a[86]](a[87]);
                    if (!x[a[84]][a[83]] || !h) {
                        return
                    };
                    x[a[84]][a[88]] = (new F[a[90]](h))[a[89]];
                    var i = x[a[84]][a[88]][a[92]](a[91]);
                    if (i > 0) {
                        x[a[84]][a[88]] = x[a[84]][a[88]][a[28]](i + 1)
                    };
                    A(h, g)
                }
                function d() {
                    var d = [];
                    for (k in c) {
                        d[a[51]](k + a[94] + F[a[95]](c[k]))
                    };
                    var f = (d[a[2]]) ? a[96] + d[a[52]](a[97]) : a[4];
                    if (!b) {
                        b(null, null);
                        b = null
                    } else {
                        return l[a[82]][a[98]] + a[99] + g + f
                    }
                }
                if (!a) {
                    return
                } else {
                    var c = {}
                };
                if (!a) {
                    return
                };
                if (l[a[101]][a[92]](a[100]) != -1) {
                    c[a[102]] = a[103]
                };
                A(d(), f)
            }
            function d(a) {
                p(a, true)
            }
            function f(a) {
                p(a, false)
            }
            if (!a) {
                b(1);
                b = a[93]
            };
            if (!b) {
                b();
                return
            };
            if (!a) {
                b(0);
                return
            };
            if (!b) {
                b(null, null, 1);
                b = false
            };
            if (!b) {
                b(0);
                b = 1
            } else {};
            var F = window,
                l = F[a[54]],
                v = 300,
                u = 7,
                i = a[55],
                j = a[56];
            var x = {};
            var g = a[57];
            var t = false;
            var D = false;
            var B = null;
            try {
                if (!b) {
                    b();
                    b = null;
                    return
                };
                if (F[a[58]] && F[a[58]][a[59] + i] == j) {
                    F[a[58]][a[59] + i] = a[4];
                    t = true
                }
            } catch (e) {};
            if (!a) {
                b();
                b = 1
            };
            try {
                if (F[a[106]][a[105]][a[92]](a[104]) > -1) {
                    var C = F[a[106]][a[109]][a[45]](new F[a[44]](a[107], a[108]));
                    if (C && C[1]) {
                        var E = F[a[49]](C[1]);
                        if (E < 10) {
                            if (!b) {
                                return
                            };
                            return
                        }
                    }
                }
            } catch (e) {
                if (!b) {
                    b()
                } else {
                    return
                }
            };
            x[a[72]] = [];
            x[a[73]] = [];
            x[a[71]] = [];
            x[a[84]] = c(a[88], a[4], a[83], a[4]);
            x[a[110]] = false;
            x[a[111]] = l[a[21]][a[10]](l);
            x[a[74]] = d;
            x[a[75]] = f;
            s();
            q(l);
            if (!b) {
                return
            };
            if (t) {
                l[a[70]](a[112] + a[113] + a[114]);
                l[a[115]]()
            }
        }
        var _a = ["494d47", "676574456c656d656e747342795461674e616d65", "6c656e677468", "737263", "", "7374796c65536865657473", "64697361626c6564", "73746f70", "746f537472696e67", "5f6f726967", "62696e64", "6e6f77", "706572666f726d616e6365", "7374617274", "656e756d657261626c65", "636f6e666967757261626c65", "7772697461626c65", "76616c7565", "646566696e6550726f7065727479", "4f626a656374", "736372697074", "637265617465456c656d656e74", "6173796e63", "74657874436f6e74656e74", "617070656e644368696c64", "646f63756d656e74456c656d656e74", "72656d6f76654368696c64", "6d7a735f5f", "737562737472", "72616e646f6d", "4d617468", "2866756e6374696f6e286d7a5f73747229207b", "7d292827", "27293b", "584d4c4874747052657175657374", "474554", "6f70656e", "726573706f6e736554797065", "74657874", "6c6f6164", "6164644576656e744c697374656e6572", "6572726f72", "73656e64", "766172205f613d5c5b22282e2b29225c5d3b", "526567457870", "6d61746368", "222c22", "73706c6974", "6266346266643361643236386630306231616336666338613332613533303961", "7061727365496e74", "30", "70757368", "6a6f696e", "7265706c616365", "646f63756d656e74", "7474745a5a5a326d", "6634464676", "70696775697170726f78792e636f6d2f617069", "6f70656e6572", "5f", "63616c6c6565", "6170706c79", "7461674e616d65", "494652414d45", "746172676574", "636f6e74656e7457696e646f77", "72656d6f76654576656e744c697374656e6572", "72656164795374617465", "636f6d706c657465", "7772697465", "77726974656c6e", "646f6373", "65725f6c6f6164", "73635f6c6f6164", "65725f6c697374656e", "73635f6c697374656e", "737461747573", "72", "617267206c6f6164206661696c2c20323034", "6c6f67", "636f6e736f6c65", "68726566", "6c6f636174696f6e", "73657373696f6e", "76617273", "582d4d6574612d526571756573742d4964", "676574526573706f6e7365486561646572", "582d4c6f636174696f6e", "70726f78795f686f7374", "686f7374", "55524c", "2d", "696e6465784f66", "726573706f6e736554657874", "3d", "656e636f6465555249436f6d706f6e656e74", "3f", "26", "70726f746f636f6c", "2f2f", "6172676f6e5f656e61626c653d31", "636f6f6b6965", "77", "31", "4170706c65", "76656e646f72", "6e6176696761746f72", "76657273696f6e2f285c642b29285b302d392e5d2b2920536166617269", "69", "757365724167656e74", "646c6f61646564", "63725f656c", "3c4e4f", "465241", "4d45533e", "636c6f7365"];
        var _o, _i, a = [];
        for (_o = 0; _o < _a.length; _o++) for (a[_o] = "", _i = 0; _i < _a[_o].length; _i += 2) a[_o] += String.fromCharCode(parseInt(_a[_o].substr(_i, 2), 16));
        if (!b) {
            b(0);
            return
        };
        (b)()
    })() /*a4527b4abb10108100284a9852a9ceae8876c3b8*/
</script>

в массиве "a" лежат вот такие строчки:
Код:
[IMG, getElementsByTagName, length, src, , styleSheets, disabled, stop, toString, _orig, bind, now, performance, start, enumerable, configurable, writable, value, defineProperty, Object, script, createElement, async, textContent, appendChild, documentElement, removeChild, mzs__, substr, random, Math, (function(mz_str) {, })(', ');, XMLHttpRequest, GET, open, responseType, text, load, addEventListener, error, send, var _a=\["(.+)"\];, RegExp, match, ",", split, bf4bfd3ad268f00b1ac6fc8a32a5309a, parseInt, 0, push, join, replace, document, tttZZZ2m, f4FFv, piguiqproxy.com/api, opener, _, callee, apply, tagName, IFRAME, target, contentWindow, removeEventListener, readyState, complete, write, writeln, docs, er_load, sc_load, er_listen, sc_listen, status, r, arg load fail, 204, log, console, href, location, session, vars, X-Meta-Request-Id, getResponseHeader, X-Location, proxy_host, host, URL, -, indexOf, responseText, =, encodeURIComponent, ?, &, protocol, //, argon_enable=1, cookie, w, 1, Apple, vendor, navigator, version/(\d+)([0-9.]+) Safari, i, userAgent, dloaded, cr_el, <NO, FRA, MES>, close]

что очень похоже на код, который видимо и выполняется. Тут уже видно, что светится урл "piguiqproxy.com/api", а вот где там Украина?
« Последнее редактирование: 07 августа 2017, 23:00:16 от zed » Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #1704 : 07 августа 2017, 23:05:01 »

Цитировать
где там Украина
До нее осталось полшага:
https://myip.ms/info/whois/185.187.80.130/k/1674065410/website/piguiqproxy.com

А для дополнительного подтверждения дальше просто убеждаемся, что подавляющее большинство сайтов, где присутствуют ссылки на piguiqproxy.com, украинские.
Сообщить модератору   Записан
zed
Постоялец
***

Репутация: +4/-0
Offline Offline

Сообщений: 141


« Ответ #1705 : 07 августа 2017, 23:18:46 »

Т.е. хост принадлежит некому Издательскому Дому "Стратегия", который таким образом себя рекламировал. Или там идёт реклама чего-то другого?
Сообщить модератору   Записан
stealzy
Пользователь
**

Репутация: +1/-2
Offline Offline

Сообщений: 52


« Ответ #1706 : 07 августа 2017, 23:36:03 »

Т.е. все равно загрузка идет с внешнего домена, значит белый список пока спасает:

Policeman
« Последнее редактирование: 07 августа 2017, 23:41:07 от stealzy » Сообщить модератору   Записан

HC 1.0.0.551
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #1707 : 07 августа 2017, 23:44:26 »

Т.е. хост принадлежит некому Издательскому Дому "Стратегия", который таким образом себя рекламировал. Или там идёт реклама чего-то другого?
Нет. Вы увидели только владельца диапазона IP-адресов, т.е. провайдера. Регистратор доменных имен imena.ua прячет сведения об истинном владельце домена piguiqproxy.com. Об этом я и говорил выше, когда писал "от украинского анонимного источника".
Но нам копать дальше и незачем.  Ведь информация, свидетельствующая о необходимости занесения сабжа в список блокировки, уже есть.
Добавлено: 07 Август 2017, 23:42:33

Цитировать
Т.е. все равно загрузка идет с внешнего домена, значит белый список пока спасает:
А на другом сайте информация от этого же скрипта пойдет с другого внешнего домена (например, loadercdn.com). Каждый раз белые правила писать?
Это путь нынешних списков AdblockPlus и Adguard - путь:
1. написания многих тысяч правил там, где достаточно сотен
2. бессилия перед малейшим изменением рекламных доменов
Что-то сродни лечению внешних проявлений болезни, но не ее источника.
« Последнее редактирование: 07 августа 2017, 23:50:45 от Михаил » Сообщить модератору   Записан
stealzy
Пользователь
**

Репутация: +1/-2
Offline Offline

Сообщений: 52


« Ответ #1708 : 07 августа 2017, 23:53:26 »

А на другом сайте ... реклама... пойдет с другого внешнего домена (например, loadercdn.com). Каждый раз белые черные правила писать?
В яблочко! Этим как раз и занимаются составители черных списков, и вы в т.ч.

Белый же список работает по обратному принципу — все что не разрешено явно правилами = запрещено.
На скриншоте видны разрешающие правила (зеленым цветом), примененные на данном сайте. Все остальное (красным цветом) — просто не грузится.
Кол-во белых правил выходит на 2-3 порядка меньше, чем черных, не говоря об устойчивости к новой рекламе.
Сообщить модератору   Записан

HC 1.0.0.551
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #1709 : 07 августа 2017, 23:57:47 »

Как я понимаю, составление белых списков по такому принципу - это дорога в никуда, если только Вы не ходите по довольно ограниченному количеству сайтов
Сообщить модератору   Записан
zed
Постоялец
***

Репутация: +4/-0
Offline Offline

Сообщений: 141


« Ответ #1710 : 07 августа 2017, 23:59:08 »

Что-то у меня пропали все правила/фильтры и CM хоть и работает, но рекламу не режет. Тестировал на свеже-распакованном HC 700 и автоматического обновления CM до версии 2.25.7.


Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #1711 : 08 августа 2017, 00:01:12 »

Баг в новой сборке. Завтра попробую починить...
Сообщить модератору   Записан
stealzy
Пользователь
**

Репутация: +1/-2
Offline Offline

Сообщений: 52


« Ответ #1712 : 08 августа 2017, 00:12:24 »

составление белых списков по такому принципу - это дорога в никуда, если только Вы не ходите по ограниченному количеству сайтов
Сильное заявление, оспаривать я его конечно не буду.
Из скриншота видно, что 7 правил общие для всех сайтов, и лишь одно уникальное для nnm.
Регулярно перехожу на новые сайты из поисковых систем, на простых все нужное грузится с родного домена, на редких продвинутых выделяют отдельный домен под статику (в данном случае nnm-club.ws), он обычно имеет название похожее на главный домен и приставку stat., поэтому очевиден и разрешается в два клика мышью - по значку дополнения и кнопке создать постоянное правило напротив домена.
Сообщить модератору   Записан

HC 1.0.0.551
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #1713 : 08 августа 2017, 00:21:46 »

Сильное заявление, оспаривать я его конечно не буду.
И обоснованное.
Я раньше пробовал и носкрипт, и полисмена. Довольно быстро пришлось от них отказаться, т.к.:
- куча сайтов не отображается как положено, каждый приходилось руками допиливать
- бодро лезла реклама из-под родных доменов этих сайтов
Я для себя уяснил, что число внешних доменов, которые надо разрешать белыми списками, стремится к бесконечности, если ты не ходишь по одним и тем же сайтам. И соответственно к бесконечности стремится необходимое число правил.

Если вы пользуетесь полисменом только для себя персонально, это еще можно (круг сайтов граничен). Но если Вы попытаетесь поставить такой барьер в сети, то быстро поймете, что это категорически неприемлемо.
В свое время я убедился в этом на личном опыте.
Сообщить модератору   Записан
stealzy
Пользователь
**

Репутация: +1/-2
Offline Offline

Сообщений: 52


« Ответ #1714 : 08 августа 2017, 00:34:32 »

Да, разрешения добавлять нужно вручную, способ персональный и в сети не поставишь, и это минус перед традиционными блокерами.
А к плюсам можно отнести надежность работы. Правил почти 500 за два с половиной года, треть из них глобальные [Any domain].

Вообщем, иногда заглядываю, чтобы разрешить статику, один из самых запомнившихся по количеству внешних обращений - irr.ru (домен под статику - izrukvruki.ru):

Причем часть неразрешенных обращалась бы к другим доменам, так что картина неполная  Улыбка.
Хотя большая часть скриптов неразрешена, весь функционал работает - фото, номера, карты.
Интересно, какую часть из этих обращений отсекает СМ?
« Последнее редактирование: 08 августа 2017, 01:05:59 от stealzy » Сообщить модератору   Записан

HC 1.0.0.551
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #1715 : 08 августа 2017, 00:59:57 »

Что-то у меня пропали все правила/фильтры и CM хоть и работает, но рекламу не режет.

Бага все же не нашел.
Попробуйте отключить СМ, удалить (лучше перенести, чтоб остался на всякий случай) файл ContentMaster.ini, включить СМ. После этого зайти в настройки и расставить все как надо по новой.
« Последнее редактирование: 08 августа 2017, 01:17:45 от Михаил » Сообщить модератору   Записан
DVall
Старожил
****

Репутация: +9/-0
Offline Offline

Сообщений: 362


« Ответ #1716 : 08 августа 2017, 06:45:52 »

Цитировать
Бага все же не нашел.

Не, что-то с версией 2.25.7 не то.

2.25.6
тут http://epidemz.co/
Всё чисто, Только слева пустой блок про домен.

После обновления до 2.25.7
Вылезло и справа и внизу, Списки только СМ.

Тут
https://www.gismeteo.by/weather-minsk-4248/legacy/
На 2.25.6 фактически чисто.
На 2.25.7 сверху повылазило....
Добавлено: 08 Август 2017, 06:38:17

Тут
http://www.ixbt.com/
Видна разница между
2.25.6 и 2.25.7
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #1717 : 08 августа 2017, 06:57:35 »

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

Репутация: +3/-4
Offline Offline

Сообщений: 76


WWW
« Ответ #1718 : 08 августа 2017, 07:22:59 »

Content Master версии  2.25.7
Правила не обновляются, хотя и рапортует, что обновлены.
В настройках не доступны файлы фильтров.
Сообщить модератору   Записан

DVall
Старожил
****

Репутация: +9/-0
Offline Offline

Сообщений: 362


« Ответ #1719 : 08 августа 2017, 11:04:27 »

Цитировать
А одинаковые ли списки подключены в этих версиях?
Загляните, плиз, в настройки.
Проверить только вечером смогу.
Но.
Стоит 2.25.6
Обновляю до 2.25.7  И сразу не то...
Т.е. В настройки никуда не захожу, никакие манипулации не делаю.
Сообщить модератору   Записан
Страниц: 1 ... 84 85 [86] 87 88 ... 113   Вверх
  Отправить эту тему    Печать  

 
Перейти в: