Secure preferences chrome как удалить
В этой теме обсуждаем браузеры, созданные на основе проекта Chromium
Настоятельные просьбы ко всем присутствующим:
1. Уважайте предпочтения других участников и не устраивайте здесь ненужный холивар.
2. Если правите шапку - сообщите* в теме о сделанных изменениях и обязательно* сделайте бэкап!
* В противном случае - не обижайтесь на то, что шапка будет принудительно восстановлена из предыдущей резервной копии.
Бэкап шапки можно сделать прямо в своём посте или в этой теме.
Добавлено:
У меня вот вопрос - чем так привлекает iron при наличии ungoogled-а? Тем, что позволяет ставить расширения из магазина напрямую? Откуда столько упорных попыток сделать непереносимый браузер таковым?
* в смысле - нет его пересчёта/проверки для аддонов, если о них говорим.. поэтому аддоны в центе и не слетают..
кстати, не проверял сам, но как вариант - а если саму папку аддонов сделать тупо ридонли - снесёт при переносе или как?
если список в преференсах остаётся - ну так пусть себе сам код ридондли будет, а после "успокоения" с перепривязкой = снять р/о..)
при унгуглед хрома установка расширки и в картинке, не из магазина это так должно быть? у всех так?
его перый день осваиваю, сравниваю с Iron
ща его 87 выкачал, flash есть, захожу в магазин и нет кнопки установить расширку ? это норм? или я чего в сборке поурезал ?
id, для .bat не знаю, насколько актально брать, т.е. при равных расширках
id разные
при переносе методом 3х-файлов
слетело это
и верно, мой способ с подменой Secure Preferences потерпел неудачу, 1-2 расширения пустые,
видимо не на том месте в строке стояли.
остался вариант, 3х файлов, но если забирать настройки расширок, я еще взял + Managed Extension Settings
там може идут настройки, или можно с 3мя папками не париться, т.к. могуть быть id другие,
пробежаться с настройками.
1. adblock.ini - уто очень удобно ложить на лопатки, мудовые сайты типа paypal кто пытается оставлять линки на youtube, т.к. их кнопки оплаты, в секунду нагадят в систему,
и google разрешить необходимое, для каждой ситуации
2. ставить расширения из магазина напрямую, удобно без вопросов.
TheBarmaley
в Iron, так и поэтому, теряем show_home_button, default_search_provider_data
+extensions
(они в хвосте прописаны в цикле "protection")
когда создается новый Secure Preferences
это все в одну строку в ini лепить,
может есть что типа переноса на новую строку ?
типа такого, как Linux
Пока разрабы браузера не внесут в код изменения, все это как мертвому припарки. п.2 вообще смешно. Вы каждый день ставите новые расширения?
Добавлено:
Как говорится, флаг в руки.
решит все проблемы с паролями, сохранить быстро в .txt и загрузить
хоть 10шт. за 1сек в сабж обратно из .txt
у меня все версии ниже 77 переносились
34 -примерно с нее начал щюпать сабж
46
55.1
57
сделал комплект 77 на одном, ноуте, решил перенести на другой и траблы,
gmail - это нужно ?
заход через браузер НЕ через профиль Iron войти.
это видимо для тех у кого 1 gmail и заходит с 5ти ноутов, в телефоне и планшете..
я помню на заре 2015 когда Iron запускался с hdd и скопировал на флешку,
так google вылогинился, и сказал мол устройство было изменено и просил звонок, добы номера
были еще живы виртуальные принял код и вошел,
с флешки не вариант, там же дожен быть device, flash-drive - это не ноутбук
вариант с Secure Preferences
1. сделать комплект свежак профиль, ставить все попорядку, и расширку. (cверху встроку не прятать под плитку, unpin/pin)
2. беру этот комплект удаляю профиль, но новой машине, запускаю
- делаю тоже, что и в п.1 Setting только эти 2-приблуды
можно без поиска как в унгугле
(.crx - отдельно в папках по алфавиту
как обзываются расширки, оченьудобно сохранить порядок установки, если кого нужно первым, спередка папки ставлю .floder с .crx), можно не настраивать
важны строчики в Secure Preferences их id,
закрываю, сохраняю отдельно Secure Preferences (новый под другую машину)
все остальное удаляю.
3. бере комплект из п.1 и удаляю Secure Preferences и добавляю новый Secure Preferences из п.2
Как и предполагает название, Secure Surf должен защитить вас от вредоносных программ. Он делает прямо противоположное, хотя. Хакеры не действительно склонны говорить правду об опасных программах, которые они разрабатывают. Это дело с Secure серфинга тоже. Эта вещь классифицируется как вирус adware типа. Она не может быть самой опасной инфекции там, но это, безусловно, создает беспорядок. В конце концов это вирус, который мы говорим о. Подлый злоумышленник создан кибер-преступников. Его последний цель заключается в том, чтобы расширить ваш опыт. Нет, гораздо более прозаические паразита намерения. Деньги. Хакеры используют adware типа программ для создания веб-трафика. Хитрый Secure Surf делает то же самое. Этот вредитель изменяет параметры браузера по умолчанию. Он берет на себя всей вашей деятельности в Интернете таким образом. Кроме того разрешение не требуется даже удаленно в процессе. Это потому, что хакеры не имеют единого основания для защиты вашей машины. Они заинтересованы в незаконной прибыли, полученной через механизм pay-per-click. К сожалению мошенники доход поступает исключительно за ваш счет. Как мы упоминали, вирус столовых с браузеров. Он добавляет расширение к ним. Рассмотрим браузеры не заслуживающим доверия. Эта неприятность вводит их авторами, потенциально поврежденных всплывающих окон. Все виды всплывающих окон. Все время. Вы оставили не в состоянии путешествовать в Интернете в мире, потому что объявления Secure Surf везде. Эти ролики охватывают все веб-сайты, которые вы пытаетесь посетить. Возможно, мы должны сказать, «попытка посетить» потому, что объявления являются невероятно упрямы. Secure Surf вирус отображает огромное количество не менее недостоверной рекламы. Те могут вести вас прямо на вредоносные страницы. Установка больше инфекций никогда не было так просто. Из-за присутствия паразита на борту ваш компьютер экран обстреляли с рекламой. Бесполезно, потенциально вредных и опасных объявлений. Сдерживать себя от нажатия, как вы можете причинить ущерб машины. Это, конечно, не риск стоит принимать. Кроме того adware может генерировать фиктивные программы обновления. Вы также получите перенаправлены на случайных страниц, которые не имеют ничего общего с помощью запросов. Этот вирус может вызвать вопросы конфиденциальности. Для предотвращения дальнейшего вреда, сейчас решать неприятностью.
Как я заразиться с?
Почему это опасно?
На нашем форуме и не только, с некоторой периодичностью люди интересуются алгоритмом генерации "защитного кода" в файле Secure Preferences для браузера Google Chrome.
Зачем он браузеру? Этот код используется для проверки целостности настроек расширений и некоторых других параметров, проще говоря - HMAC. Зачем он людям? Вероятно, это необходимый этап для тихой установки расширений или изменения настроек браузера. Давайте разберемся, где и как происходит генерация этих HMAC'ов.
Для начала заглянем в исходный код проекта Chromium. Беглый поиск по слову hash вывел меня на файл pref_hash_calculator.cc. И, что характерно, именно здесь все и происходит. Процитирую код основных методов, которые отвечают за генерацию:
std : : string PrefHashCalculator : : Calculate ( const std : : string & path, const base::Value* value) const
std : : string GetMessage ( const std : : string & device_id, const std::string& path, const std::string& value_as_string)
Авторское форматирование было задвинуто подальше, так как у меня личная неприязнь к такому стилю. Код выглядит довольно простым, осталось понять, что вообще подается на вход. Чтобы не скачивать весь исходный код Chromium и не собирать его, поступим следующим образом: поставим официальный Chrome, скачаем один лишь файл pref_hash_calculator.cc и укажем в Visual Studio путь к отладочным символам для Google Chrome:
Все готово к исследованию. Запускаем браузер, атачимся к процессу, ждем, пока прогрузятся отладочные символы (можно в настройках указать загрузку символов только для модуля chrome.dll, этого будет достаточно), открываем файл pref_hash_calculator.cc в MSVC и ставим брейкпоинт на методе Calculate. Теперь нам необходимо совершить какое-нибудь действие, которое приведет к вычислению хэша, например, установить произвольное расширение из Chrome Web Store. Устанавливаем и попадем на наш брейкопинт.
Мы видим значения seed_ (перевел в hex для удобства):
Причем seed_ - постоянная величина (но, скорее всего, может меняться от версии к версии), а device_id - уникальный идентификатор компьютера. Откуда берется seed_? Не вдаваясь в подробности поиска, скажу, что он содержится в файле resources.pak, который находится в директории с браузером. Формат содержимого файла известный и давно описан, например, тут. Давайте попробуем самостоятельно извлечь seed_ из resources.pak. Для этого я напишу простенький скрипт на Perl:
print "Version: $version" , NL , "Resources: $resources_total" , NL , "Encoding: " , $encoding , NL , NL ;
Делаем тестовый прогон и узнаем, что seed_ содержится в ресурсе с ID 609, который скорее всего тоже меняется.
Теперь нам необходимо получить device_id. Откуда его берет Chrome? Не буду вас утомлять отладчиком, просто скажу, что нас интересует функция GetMachineId из файла machine_id.cc. Приведу ее исходный код на всякий случай:
Этот код является частью сторонней библиотеки RLZ. Я не стал особо копаться в логике вызовов, а просто выдрал код, немного подредактировал и сделал из него отдельный файл, который можно смело собирать и тестировать под Windows (генерация device_id отличается в зависимости от ОС). Ссылка на проект для Microsoft Visual Studio 2013 в конце статьи.
Итак, у нас есть seed_, device_id, осталось обратить свое внимание на два оставшихся аргумента, которые передаются в GetMessage - это path и value. Зайдем сразу внутрь функции GetMessage и посмотрим, что она формирует.
Мы видим, что path содержит путь к настройкам расширения в Secure Preferences:
А value (value_as_string) - настройки расширения в JSON:
Подытожим логику вычисления:
В качестве hmac используется HMAC SHA256, это видно по коду. Приведу пример простого скрипта, который парсит расширения из файла Secure Preferences и вычисляет hmac для каждого из них, а также super_mac. Алгоритм вычисления прост:
super_mac используется для проверки целостности некоторых настроек браузера и массива пар ид_расширения - hmac. Наконец-таки скрипт:
print $ext_name , ' - our: ' , $our_hmac_part , '; ref: ' , $ref_hmac_part , '; ' , ( $hmac eq $ref_hmac ? 'OK' : 'ERR' ) , NL ;
print NL , 'Super mac - our: ' , $our_hmac_part , '; ref: ' , $ref_hmac_part , '; ' , ( $hmac eq $ref_hmac ? 'OK' : 'ERR' ) , NL ;
Запустим скрипт, указав в качестве аргументов device_id, seed и путь к файлу Secure Preferences:
Как мы видим, скрипт успешно отработал и корректно вычислил HMAC'и.
Скрипты из статьи и проект для MSVC 2013, вычисляющий device_id: скачать
Google Chrome и Secure Preferences: 69 комментариев
Kaimi :
Почему не получить? FireFox внезапно стал браузером с закрытым исходным кодом?
Я скачал исходники, там нет этой библиотеки
Kaimi :
Т.е. нет пути типа: toolkit/library/moz.build?
И в файле moz.build ни единого упоминания слова xul?
A lil bit offtop, but who wants use Chrome, Opera(nu) & Vivaldi, etc with WebRTC, that cannot be disabled.
vasya_voin: Otherwise - u can always filter FF quotes, and other stuff with "Privoxy", check rdot forum topic for this.
А как на счёт других полей?
Что они кодируют для startup url, например?
Kaimi :
А как на счет самому проделать подобные действия с отладчиком и посмотреть?
@Kaimi,
да не вопрос, просто компиляция ещё часов 10 возьмёт.
А вообще спасибо за статью.
Kaimi :
Зачем компилировать? Я же писал, что достаточно отладочные символы подключить и интересующие одиночные файлы скачать
Сейчас увидел, спасибо.
Privet Kaimi, iskal infu nas4iot faila Secure Preferences i natknulsia na tvoi sait(o4eni interesnii kstati, molodez), doljen skazati cho ti edinstvenii isto4nik takoi poleznoi informazii (poleznoi dlia griaznih del pravda :D).
Ia doljen sdelati installer kotorii v konze dobavliaet stranizu nashei kompanii v startup_pages v chrome. Vsio kak po maslu no na samom glavnom:
c:\Users\operatore 3\AppData\Local\Google\Chrome\User Data\Default>hmac.pl 837552B31736B91B48643763FE6E1F494FC1D936AE09173C3D E748F336D85EA5F9DCDF25D8F347A65B4CDF667600F02DF6724A2AF18A212D26B788A25086910CF3A90313696871F3DC05823730C91DF8BA5C4FD9C884B505A8
"Secure Preferences"
values on reference is experimental at C:\Users\operatore 3\AppData\Local\Google\Chrome\User Data\Default\hmac.pl line 91.
Can't use an undefined value as a HASH reference at C:\Users\operatore 3\AppData\Local\Google\Chrome\User Data\Default\hmac.pl line 36.
Ogromnoe spasibo za takuiu infu, i sait krasava :)
Privet iz Italii
Izvini, script rabotaet otli4no, prosto ia emu podoval osobii file "Secure preferences", neznaiu po4emu no na moiom pk tam nahoditsia tolko super-mac i vesit 105byte, daje s novoi ustanovkoi, a na drugih pk 30-50kb i oni rabotaiut na tvoiom scripte.
Izviniaiusi, po4ital script paru raz i vsio ponial, Perl menia pugal a v konze konzov vsio o4eni prosto, u menia on ne rabotal potomu4to ia imel levii "Secure Preferences" file, tam tolko super-mac nohoditsia, a ostalnie mac v "Preferences".
Иллюстрация напомнила о комиксе Fisheye Placebo. Красивый комикс. Рекомендую.
Скрипт, запущенный в версиях Perl под Windows (ActivePerl 5.20.? x64, Strawberry 5.22.0 x32) каждый раз возвращают разные MAC для расширений: как собственно посчитанные, так и ref (
SuperMac всегда считается верно
Kaimi :
Не наблюдаю такой проблемы с Strawberry Perl 5.22 x64.
Правда выдает warning на строку if(scalar values $ref-> == 0) , но считает корректно.
Другое дело список расширений каждый раз в произвольном порядке выдается, но это ни на что не влияет.
> Другое дело список расширений каждый раз в произвольном порядке выдается, но это ни на что не влияет.
Ааа, точно, в произвольном порядке.
Здравствуйте.
Я получил $seed с помощью скрипта и $device_id с помощью проекта rlz_id. Вместо аргументов командной строки в скрипте вычисления hmac указал:
my $sec_pref_file = 'C:\\Users\\. \\Default\\Secure Preferences';
my $seed = 'e748f33. 505a8';
my $device_id = '6A7411E. 290539F';
При запуске получаю такие ошибки:
values on reference is experimental at startpage.pl line 90.
Global symbol "$device_id" requires explicit package name (did you forget to declare "my $device_id"?) at startpage.pl line 48.
Global symbol "$key" . line 50.
Global symbol "$device_id" . line 66.
Global symbol "$key" . line 68.
Строки кода:
48 while(my $ref = shift @queue)
50 next unless ref $ref eq ref <>;
66 68 delete $ref-> ;
Подобные ошибки perl выдает если переменные не инициализированы в режиме strict, однако они инициализированы! не понимаю в чем причина.
В perl я новичок, установил только ради Вашего скрипта
Помогите устранить указанные ошибки компиляции, пожалуйста :)
Kaimi :
спасибо. заработало. я запускал и редактировал разные файлы :(
Существует ли один скрипт, выполняющий все этапы вычисления hmac включая определение входных параметров?
Kaimi :
У меня такого нет
Kaimi, большое спасибо за пост, очень познавательно. Есть вопрос..я в MSVC 2012 Ultimate указал путь к серверу с отладочными символами и при подключении к процессу chrome.exe, идет их подгрузка, но когда я открываю файл pref_hash_calculator.cc и ставлю бряк, появляется мессага о том, что символы для данного элемента не подгружены и остановки не будет?.
Kaimi :
Может символы не подгрузились (можно посмотреть в логе студии), также не вижу pref_hash_calculator в исходниках по старому пути (видимо куда-то перенесли), может не к тому процессу хрома подключился, может еще что-то.
How to calculate HMAC "startup_urls":?
key = seed_
message = device_id + '[ "http://www.google.es/"]'
HMAC (message, key)
This method does not work for me.
Greetings.
Kaimi :
Install Visual Studio, attach debugger to the Chrome process, change startup url, observe how is it being hashed.
А чё с 51 хромом еще работает фишка?
Kaimi :
Hello,
When I try to get the HMAC from your example in C++ or Python I have the same hash, but is different than yours. What is wrong? (Please see below)
import hmac
import hashlib
import base64
import binascii
Kaimi :
You can debug Chrome to ensure that you pass correct data to the digest
It's not about Chrome, it's all hardcoded right now with the values of your example. The fact is that my HMAC method doesn't return the same hash as you, so I'm wondering where my mistake is.
I'm trying to validating the algorithm before actually working on real data.
Kaimi :
It is about Chrome. Your data probably is not normalized, there're a few things like empty objects, quotes. By debugging Chrome you can view correct representation of data that is passed to HMAC
I understand your statement, however I'm just playing with the data (already normalized) you've put in your demonstration. The blocking point is the very last part, where we calculate the HMAC. I'm sure there's something, non-obvious, missing in the explanations.
Ok, I will answer to myself. I have been able to get the correct value on Python, by fixing several things:
- Json needs to be parsed/dumped as string (validation)
- Json needs to PRESERVE keys order
- I had an error in Json string, \\ needs to be \
Here's the correct Python:
import hmac
import hashlib
import base64
import binascii
import json
from collections import OrderedDict
try:
content_json = json.loads(content, object_pairs_hook=OrderedDict)
except Exception, e:
print 'Invalid json: %s' % e
exit(1)
content_str = json.dumps(content_json, separators=(',', ':'))
msg = device_id + path + content_str
Спасибо за интересную и очень полезную работу.
проблему с кодом:
Experimental values on scalar is now forbidden at hmac.pl line 91.
я решил так:
if(scalar values %> == 0)
I am using the latest version of Chrome (58.0.3029.81) and this code/technique about is not longer working.
Is anybody experiencing the same? If so, any ideas on how to fix it?
Kaimi :
I can confirm, that script is no longer providing correct results. You can use a debugger to figure out what was changed in order to make it work again
Hi Kaimi, How are you doing?
I'm looking for a good C++ dev. to :
basically - make it work again - $2,000 offer.
Email : [email protected]
Kaimi :
Hello,
Generally my code is working, though there was a minor change in logic: device_id value is now equivalent to User SID (without group id part). You can get it using wmic useraccount get name,sid or using WinAPI function LookupAccountName
Example:
>wmic useraccount get name,sid
Administrator S-1-5-21-1180699209-877415012-3182924384-500
Guest S-1-5-21-1180699209-877415012-3182924384-501
HomeGroupUser$ S-1-5-21-1180699209-877415012-3182924384-1002
Tim S-1-5-21-1180699209-877415012-3182924384-1004
UpdatusUser S-1-5-21-1180699209-877415012-3182924384-1007
Hi Kaimi, How are you?
What about Opera 51? Now new secure string in Preferences perf_counters.ext_load_metric What is the calculation algorithm for the new secure string? I tried to use a debugger to figure out the calculation algorithm but did not find out! Please help, you're a genius!
Kaimi :
1. Attach to Chromium
2. set breakpoint around digest function
3. notice how it looks in assembly
4. search similar instructions sequences in opera dll
5. set breakpoints for such places
6. observe stack and registers
This way you'll likely find, what is current hmac composition
Kaimi, в новой опере другой алгоритм вычисления хеша совсем не тот что в хроме, отладка по аналогии с хромом здесь не применима, Kaimi, пожалуйста посмотри, что используется для вычисления хеша?
Kaimi :
Берешь отладчик, ловишь открытие файла Secure Preferences, трассируешь до получения необходимого результата
Hi Kaimi.
can you refresh articles for google chrome version 70+?
Kaimi :
Hello,
Probably, not sure when exactly
Can you please contact me at : [email protected]
I have several technical questions ;)
Kaimi :
I haven't looked into current Chrome, though there was a comment regarding 'device_id', look into it, probably still works
Thanks,
How can I reach you in private ?
Kaimi :
Google Chrome protects its user preferences using a hashing (HMAC SHA256) mechanism. However, there’s a way to bypass it and it’s quite used by malware in the wild.
We will first study the way Chrome protects its user settings (Secure Preferences), then we will see how it can be defeated by rewriting the needed hashes. In the end, we will study a malware that uses that technique and we will see how RogueKiller Anti-malware can defeat it using that technique as well.
Secure Preferences
Each user profile (located in %localappdata%/Google/Chrome/User Data/ProfileName) has a bunch of configuration files for storing bookmarks, history, and preferences. Among those files, two of them (Preferences, Secure Preferences) are storing the user settings like homepage, search engine, etc…
Secure Preferences implements (as its name suggests) some securing mechanism to ensure no malware comes to modify the file manually. This is achieved by hashing some of the json nodes with a custom hashing protocol, based on HMAC SHA256, each time a setting is modified by Google Chrome.
At startup, Chrome then verifies all the hashes and if something doesn’t match it asks for a restore.
This is how (an infected) Secure Preferences file looks like:
We can see a few interesting fields regarding startup urls and homepage (highlighted). For each field, we have a corresponding entry in the “protection.macs” node. If some program modifies (manually) one of the settings above it will need to update the corresponding hash in the macs, as well as the “super_mac” entry.
Custom HMAC
The custom HMAC hash is fortunately documented from the Chromium sources. With a little bit of reverse, guesses and code reading, we’ve been able to reproduce the algorithm:
The HMAC SHA256 is a hashing mechanism that produces a SHA256 from a key (or seed) and a message. Let’s see how to obtain them:
HMAC Seed
The seed is unique to a machine where Chrome is installed (or per Chrome version?). It’s stored in Chrome’s installation path (C:\Program Files (x86)\Google\Chrome\Application\ChromeVersion\resources.pak). This format is quite known now, and well explained here.
All you need to do is to look for the first resource with a length of 64.
HMAC Message
To build the message, we first need to get a Machine ID (unique identifier per machine). We can follow the logic once again in the Chromium sources, but basically it looks like this:
Obtain machine SID
- Get machine name with GetComputerName (JOHN-PC)
- Get SID for machine name with LookupAccountName
- Convert SID to string with ConvertSidToStringSid (S-1-5-21-1650828501-840997873-2917006960)
Obtain volume ID
- Get system drive letter with GetSystemDirectory (C:)
- Get serial number with GetVolumeInformation (1551496638)
Create machine ID
The machine ID can then be obtained with the following pseudo-code (please note everything is performed as binary operations):
Obtain the message
The message can be obtained using the following pseudo-code:
Please note that the Json content needs to be modified a little bit by removing the empty arrays and objects, and that the “
Hashing the Message
Find below the code (shortened) we use to hash a json node, given its path and required machine ID and seed. It’s using a HMAC 256 method from cryptopp, but you can use any method you like (works with OpenSSL).
Once you have that HMAC, it’s easy to replace the corresponding entry in the protection.macs node. After that, you need to get and replace the super_mac as well with the following information:
We have developed a small script able to check and replace all the broken macs from the secure preferences, here’s some screenshots:
In the Wild
Some malware are using that trick to bypass Chrome protection and install themselves in the user settings.
This the case of the adware Trotux/Elex, which replaces the homepage, startup urls and the search engine. The infected secure preferences given as example comes from this malware.
Detection and Removal
Starting with version 12.8.0, RogueKiller is able to detect infectious Chrome settings, and remove them. It’s also able to update the protection.macs settings so that the cleanup will be totally transparent for the Chrome browser, and it won’t restore the infected setup.
It’s really important, because any setting restored without updating the HMAC hashes will result in a restoration of the infectious state by the Chrome browser iteself.
- Введите в поиск Windows "%AppData%..\Roaming\Opera Software" без кавычек и нажмите Enter.
- Итоговый путь к нужной папке выглядит так: C:\Users\ИмяПользователя\AppData\Roaming\Opera Software
- В папке Opera Software откройте:
- папку Opera Stable (если используете обычный браузер)
- папку Opera GX Stable (если используете браузер для геймеров)
- папку Opera Developer (если используете бета-браузер)
- Найдите файл Secure Preferences и откройте через любой текстовый редактор (Notepad++, Блокнот и т.п.)
Найдите строчку "vpn":
(Скорее всего она будет в самом конце, либо можно найти через поиск ctrl + F) - Удалите из строчки ,"ru" должно получиться так:
"vpn": - Сохраните и закройте файл, установите в свойствах атрибут только для чтения
- Далее необходимо перезапустить браузер, затем открыть настройки (ALT + P) и в меню "Дополнительно" –> "Возможности" включить VPN. Или вставьте в адресную строку: opera://settings/?search=VPN
- Если у вас портативная версия браузера, то проделываете то же самое, однако нужный файл называется Preferences (а не Secure Preferences). И находится он по адресу "Папка с порт. Opera" –> Opera\profile\data
Если поиск не даёт результатов, значит вы сделали что-то неправильно.
Всем удачи и терпения.
P.S.
ну, а файл "Local State" поставил "только для чтения" только для того, что бы не слетал поиск GOOGLE
Файл Local State открыть блокнотом и найти строку Заменить символы:
"ua" -> на "us" и "UA" -> "US"
"ru" -> на "us" и "RU" -> "US"
Если не поможет, то заменить вместо "us" и "US" -> на "en" и "EN"
Если и это не поможет, то найти строку и заменить на
Поставить "только для чтения" .
@sergik2017
К сожалению с настольной версией этот вариант уже давно не работает и в конце строки вы не дописали фигурной скобки, в оригинале она выглядит так:
"vpn":>
Если и это не поможет, то найти строку и заменить на
например:
ru_RU
en_US
@vasyag19
В дублирующей скобке нет надобности, нет логики.
@sergik2017
К сожалению с настольной версией этот вариант уже давно не работает и в конце строки вы не дописали фигурной скобки, в оригинале она выглядит так:
"vpn":>
Если не работает - оставьте её и перейдите на портативную. Что мучиться?
не в логике дело, а в работоспособности.
Подходящий девиз для России.
@sergik2017 Разобрался я с вашим способом, ВПН работает. Вы многое упустили в инструкции, поэтому ни у кого и не получается это повторить. По пунктам:
Сразу после установки любой портабельной версии Opera (если не менять настройки, а сразу закрыть браузер) в файле "Preferences" вообще нет строчки "vpn": Последняя строчка выглядит так
"vpn":>
Строчка
"vpn": появляется уже потом, когда начинаешь пользоваться браузером и менять настройки.
Так что я заменил именно эту последнюю строчку
"vpn":
на
"vpn":
Дальше всё по инструкции - сохранил и поставил атрибут "только для чтения"
После запуска браузера ВПН действительно можно включить через меню, и он работает, но через некоторое время значок ВПН пропадает из верхней строчки, и в меню соответствующий пункт тоже исчезает. Причина - файл "Preferences.backup". Как я понял, браузер после запуска создаёт этот бэкап, копируя первоначальный вариант файла "Preferences" (до наших правок), и после какой-то своей внутренней проверки переключается с "повреждённого" файла "Preferences" на "правильный" файл "Preferences.backup". Что делать? Закрыть браузер и удалить "Preferences.backup". Он потом снова автоматически будет создан, но теперь уже на основе измененного нами файла "Preferences".
Ну и опять же повторюсь. Всё зависит от провайдера. На домашнем компе у меня это получилось сделать, на рабочем - нет. Провайдеры разные.
Как я понял, браузер после запуска создаёт этот бэкап, копируя первоначальный вариант файла "Preferences" (до наших правок), и после какой-то своей внутренней проверки переключается с "повреждённого" файла "Preferences" на "правильный" файл "Preferences.backup"
После правки Preferences надо было сразу сделать его копию и переименовать в Preferences.backup , а потом запускать оперу.
Раньше настройка vpn в opera://settings присутствовала даже если сеть неактивна (если еще профиль не был сформирован). В последних версиях такого нет.
Крайне неудобно для тех, кому необходимо менять права доступа к Preferences .
Preferences.backup после остается неизменным в отличие от Preferences .
Скорее Preferences.backup нужен только для функции Update & Recovery .
После правки Preferences надо было сразу сделать его копию и переименовать в Preferences.backup, а потом запускать оперу.
Я сначала так и сделал, но после этого браузер запустился только один раз. Повторно не запускался (кликаешь на ярлык, и ничего не происходит). Поэтому пошёл другим путём.
Я сначала так и сделал, но после этого браузер запустился только один раз. Повторно не запускался (кликаешь на ярлык, и ничего не происходит).
В таких случаях стоит включить логирование или режим дебага. В линуксе логирование включается например так (один из вариантов)
этот вариант можно назвать human readable
В профиле создается файл opera.log
ИМХО для портабельной в винде все проще.
- Установить Оперу в USB варианте, запустить.
- При запущеном браузере подождать пока не прилетит патч для файла preferences в профиле. (1-5 минут, патч прилетает однократно по ID профиля).
В preferences появится "vpn": - Отредактировать Preferences."vpn": Больше ничего не нужно, значок восстановлен, дальше все зависит от провайдера.
Советы по установке атрибута "Read only" для файлов конфигурации не просто бесполезные, они вредные, ничего этого не нужно.
Больше ничего не нужно, значок восстановлен
Он очень быстро исчезнет вместе с с пунктом меню про ВПН.
Если бы не ставили атрибут на preferences, ничего бы не исчезало.
Не так выразился, если патч один раз прилетел, атрибут уже не нужен, прилет патча для конкретного профиля зафиксирован на серверах Оперы, больше не прилетит.
Дальше атрибут будет только доставлять проблемы с установкой и удалением расширений.
Снимите атрибуты перед установкой или удалением дополнений, изменений конфигурации в настройках и так далее. А потом вновь поставьте . Ну, для надёжности. Хуже не будет. А то ведь пишут и пишут, что ничего не получается, что всё слетает.
Уж сколько раз я писал и приводил скриншоты как я делал, что бы всё работало и обновлялось исправно. Если люди хотят "идти своим путём", как сказала когда-то одна мразота, то пожалуйста - дерзайте
@sergik2017 Да я знаю, что ваш способ работает для текущей портабельной версии в винде. Мне было интересно разобраться в механизме блокировки VPN сервиса для РФ со стороны Оперы. Я считаю, что установка атрибутов для файлов профиля после прилета VPN патча Оперы - лишнее, вы - нет. Ну и ладно, не вижу причин для спора.
Мне было интересно разобраться в механизме блокировки VPN сервиса для РФ со стороны Оперы.
Читайте также: