Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Opera на основе Chromium (часть 8)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139

Открыть новую тему     Написать ответ в эту тему

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошлые части темы: 1 | 2 | 3 | 4 | 5 | 6 | 7

 

Stable
(109.0.5097.68 от 25.04.2024)
Изменения

Beta
(110.0.5130.13 от 25.04.2024)
Изменения

Developer
(111.0.5145.0 от 22.04.2024)
Изменения

GX
(109.0.5097.62 от 23.04.2024)
Изменения

Сrypto
(108.0.5067.28 от 14.03.2024)
Изменения

Windows: Скачать
Windows (x64): Скачать
Windows (Portable): Скачать
Windows 7/8 (Opera 95): Скачать
Windows XP/Vista (Opera 36): Скачать
Linux: Скачать
macOS: Скачать

Windows: Скачать
Windows (x64): Скачать
Windows (Portable): Скачать
Linux: Скачать
macOS: Скачать

Windows: Скачать
Windows (x64): Скачать
Windows (Portable): Скачать
Linux: Скачать
macOS: Скачать
Windows: Скачать
Windows (x64): Скачать
Windows 7/8 (Opera GX 95): Скачать
Windows (x64): Скачать
macOS: Скачать
Android: Скачать
Версия для старых ПК
(процессор без SSE2)
: Скачать
Архив старых версий

 

Сборник настроек, расширений, скриптов, вопросов и ответов
Полезное для Opera Blink
Расширения, плагины, темы, утилиты для Operа Blink

Всего записей: 38836 | Зарегистр. 26-02-2002 | Отправлено: 14:17 12-03-2023 | Исправлено: MAX63ru, 16:35 25-04-2024
Capushon

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UnnPacK:
Цитата:
на самом деле тут нужна программа которая просто выводила бы найденные позиции в dll:
позиция - шаблон для замены, или позиция - шаблон для поиска
основная трудоемкость именно в поиске
По 3-му пункту сейчас так и работает, причём список остаётся, забыл добавить удаление).
 
UnnPacK:
Цитата:
на замену уходит 0.300 мс )
Неа, там полнотекстовой перебор по всему файлу, попробуй, минуты две не меньше. Так скорость практически такая же как и построчным перебором (пункт 2).
 
greeple:
Цитата:
а ты powershell смотрел? что скидывали https://github.com/belane/PS-BinDiff
Я с powershell никогда не работал.
 
greeple:
Цитата:
создал патч [?]  
Жуть, как же его редактировать и понять что от чего?
 
greeple:
Цитата:
у меня сейчас после патча на 102ой версии при первом запуске вылезла ошибка что в ресурсах что то не так и всё, потом запустил заново (но у меня не было профиля) всё запустилось, надо было бы с профилем проверить
Это нормально при первом запуске, всегда так было в Опере при удалении/замене partner_speeddials.json.
 
Для сравнения:
 
   
 
test.7z

Всего записей: 4325 | Зарегистр. 18-07-2006 | Отправлено: 23:55 07-02-2024
Dicinson



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UnnPacK

Цитата:
Хорошо бы работу скриптов где-нибудь в соответствующей теме наладить.

Ибо все эти патчинги походу в Opera как-то не будут работать в свете последней новинки 107.0.5045.15. Эту версию хотя бы без патчинга запустить.

Всего записей: 1724 | Зарегистр. 09-03-2010 | Отправлено: 23:57 07-02-2024
UnnPacK

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dicinson
да мы играемся тут)
наиграемся да выбросим эту оперу, перейдем на какой-нить Supermium
 
Capushon

Цитата:
Неа, там полнотекстовой перебор по всему файлу, попробуй, минуты две не меньше. Так скорость практически такая же как и построчным перебором (пункт 2).

я не про sfk имел ввиду, а обобщенно, сделать замену по заранее заготовленным позициям - это очень быстро
 
толку от этих hexfind, -match - как от козла молока)
ну нашло оно там что-то и все? потом опять искать для замены?))

Всего записей: 226 | Зарегистр. 26-01-2014 | Отправлено: 00:17 08-02-2024
kraeved



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
Патчи для файлов можно разделить на две категории.
 
Статические. Их создают, сравнивая оригинальные и изменённые файлы программы
с помощью генераторов вроде Courgette, Hdiffz, JojoDiff, Xdelta, Zstandard. Такие патчи,
помимо инструкции заменить «елку на ёлку», содержат координаты деревьев в лесу, что
позволяет не тратить силы на поиски, а сразу идти куда нужно. Это особенно ценят при
распространении обновлений в больших проектах. Скажем, у нас есть игра весом 20 ГБ,
а исправление ошибок весит 20 МБ, и чем перекачивать игру, мы берём и применяем патч.
 
Применять патчи Xdelta можно прямо в браузере:  
* Откройте https://kotcrab.github.io/xdelta-wasm/
* Добавьте в первую строку оригинальный opera_browser.dll из вашего сообщения
* Добавьте во вторую строку статический патч opera.xdelta3 из моего архива (весит менее 5 КБ)
* Нажмите Apply patch и почти мигом получите файл один в один как после SFK,
в чём можно убедиться, сравнив контрольные суммы файлов

 
Динамические. Стоит разработчику добавить хотя бы иконки, как меняется вес файла,
сдвигается расположение нужных нам функций. Скажем, проверка регистрации может
уехать в начало или в конец. Поэтому мы не идём к елкам напрямую, а ищем их в лесу.
Генераторы такого рода, как и сами динамические патчи, скорее встретишь в Варезнике.
 
   
 
Поделка Капюшона относится ко второй категории. Только вместо использования
генератора, который создал бы небольшой .exe, мы имеем батник, использующий
утилиту SFK для разнообразной работы с файлами, в т.ч. для поиска и замены
в шестнадцатеричном (hex) режиме. Если бы мы шли дорогой статического патча,
то всякий раз, как выходили бы новые версии Оперы и Вивальди, пришлось бы
менять файлы, сравнивать их с оригиналами, а потом публиковать тут новые патчи.
С динамическим патчем достаточно сказать: «Патч из шапки по-прежнему работает».

Всего записей: 1000 | Зарегистр. 01-03-2003 | Отправлено: 00:35 08-02-2024 | Исправлено: kraeved, 17:27 08-02-2024
x_BORLAND_x

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dicinson
107.0.5045.15 нужен файл continue_shopping.json, без него не запустится.
Первое появление этого файла в версии 86.0.4363.32 - 34 KB, а в 107.0.5045.15 - 149 KB
В профиле тоже не забудьте заменить.
 

Всего записей: 97 | Зарегистр. 16-12-2012 | Отправлено: 00:58 08-02-2024
Capushon

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kraeved:
Цитата:
Только вместо использования генератора динамических патчей, который создал бы небольшой .exe, мы имеем батник, использующий утилиту SFK для разнообразной работы с файлами, в т.ч.
Специально для ньюфагов в этой теме, которые любят поумничать: до этого патча был другой в exe'шнике, на чистом ассемблере, работал с такой же скоростью, на него ругались антивири и правка потрохов была невозможна со стороны пользователей, от него пришлось отказаться. Но ты же весь такой умный, полистать тему это не твоё...
 
   
 
kraeved:
Цитата:
Поделка Капюшона
Сделай свою поделку - посмотрим.

Всего записей: 4325 | Зарегистр. 18-07-2006 | Отправлено: 00:59 08-02-2024 | Исправлено: Capushon, 01:07 08-02-2024
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kraeved
это был пример и проверка (для проверки скорости, и точности)
я скидывал и динамический

Код:
The text file just contained the word ‘hello’, and the code replaces the first two letters.
 
#Read in the text file as bytes
$bytes = Get-Content E:\Temp\filea.txt -Encoding Byte -ReadCount 0
 
#Convert the bytes to hex
$hexString = [System.BitConverter]::ToString($bytes)
 
#Replace 'h' and 'e' with 'f' and 'g'
$newHexString = $hexString -replace '68-65','66-67'
 
#Convert the hex back to bytes
$newBytes = $newHexString.Split('-') | foreach {[byte]::Parse($_, 'hex')}
 
#Update the contents of the file
$newBytes | Set-Content E:\Temp\filea.txt -Encoding Byte

 
тут вот чел скидывал Opera на основе Chromium (часть 8)
через [System.IO.File]::ReadAllBytes($file) так же как в PS-BinDiff
тут вот я такой же находил Opera на основе Chromium (часть 8)
они работают +- одинаково, переводят в текст или массив и заменяют все найденные реплэйсом так же как sfk и потом кодируют обратно, не перезаписывая каждый раз файл
 
Добавлено:
одним скриптом powershell можно, скачать браузер, распаковать, сделать портабл, и пропатчить, без каких либо прог
но для скачки используют curl, для распаковки 7zip, а патчат sfk
ну, когда нибудь, кто то запилит один скрипт, а пока что есть то есть

Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 01:03 08-02-2024 | Исправлено: greeple, 01:05 08-02-2024
UnnPacK

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
динамические патчи - они универсальны, и могут использоваться для создания статических патчей (что бы узнать в какой позиции в файле сделать замену - нужно сначала эту позицию найти)
 
а со статическими патчами возникают проблемы:
нужно хранить все варианты подверсий, или не все - рынок решает?)
кто-то должен этим заниматься - создавать их
отмену изменений нужно применять ко всем версиям патчей - то есть, заново прийдется создавать патчи - или создавать дополнительный патч для отмены
из плюсов только скорость выполнения, если не учмтывать время на получение хеша, это самый быстрый способ патчинга
 
P.S. а на C/C++ никто не пишет?
сама задача не сильно сложная, есть небольшой опыт на C, но такое не делал, да и в C(99) нет функций для глобального поиска в памяти с offset - то есть, надо самому писать эту функцию

Всего записей: 226 | Зарегистр. 26-01-2014 | Отправлено: 01:20 08-02-2024 | Исправлено: UnnPacK, 01:24 08-02-2024
kraeved



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
Динамический патчер на PowerShell однажды писал и я. Но история с чтением всего файла
в память, где байты перегоняются в строку ради обычной текстовой замены, после которой
строка перегоняется обратно в байты, подходит именно что для маленьких файлов. Скажем,
я убирал мешающее окно в программе Sandboxie, файл которой весит 300 КБ. А с файлом
opera_browser.dll, который весит около 170 МБ, у меня завис компьютер. Почему так вышло?
Потому что с большими файлами нужно работать иначе. В частности, считывать их частями,
как делают те же программы для подсчёта контрольных сумм, и оставаться в рамках байт,
не уходя в строки. В PowerShell, вернее в .NET, который тот использует, всё для этого есть
(вроде System.IO.BinaryReader и System.IO.StreamReader), но в первой десятке результатов
поисковой системы вы вряд ли встретите скрипты-патчеры с этими фишками.
 
Ладушки, я заглянул сюда, ибо люди просили оптимизировать решение Капюшона, дабы то
меньше насиловало диск. Я предложил два варианта ускорения: а) вынести условия поиска
и замены во внешний файл и патчить в один проход без многократной перезаписи, но это
подразумевает отказ от лога, и б) оставить лог, но предварительно анализировать, какие
условия для замены подходят, а потом патчить в один проход. Долгой жизни вашим дискам!
 
 

Всего записей: 1000 | Зарегистр. 01-03-2003 | Отправлено: 01:23 08-02-2024 | Исправлено: kraeved, 17:23 08-02-2024
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kraeved
Цитата:
подходит именно что для маленьких
файлов.

а что у тебя за компьютер? у меня норм всё отработало
сейчас проверил на старом ноуте этом https://www.sony.ru/electronics/support/laptop-pc-vpc-series/vpceb3e1r/specifications (только у меня 4гб памяти)
во время создания патча 600мб памяти занимает и ничего не падает, во время применения патча 200 https://i.imgur.com/j7aAreF.png и ничего не падает, правда на таком старом ноуте он не 40секунд применяет патч, а 2 минуты ровно, я засекал, но не засекал сколько sfk (по ощущениям намного дольше, я выбрал в последнем скрипте 4 вариант, там на экране появлялись строки, он каждую строку показывал ~2секунды, и самые долгие были строки где есть [00] )
но не суть, суть в том что работает и на таком старом и ничего не падает
 

Цитата:
Динамический патчер на PowerShell однажды писал и я

там кстати тебе чел ответил, а ты ему нет, а он ждал
 
Добавлено:

Цитата:
Долгой жизни вашим дискам!

да че им будет то, из за таких вот людей кто это всё пропагандировал (не запись на диск, перевод в ram, на жесткий...) и стали производители делать в несколько слоёв ssd чтобы быстрее изнашивались, потому что надо продавать, а если они не будут ломаться то они все обанкротятся, такие пироги
люди уже больше 10лет гоняют старые ssd и в хвост и в гриву, и они до сих пор не изнасились
жесткие ломаются быстрее чем ssd, а это ещё хуже

Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 02:41 08-02-2024
Sputnikk



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Работу патча нельзя сделать многопоточной? Январский грузит 1 поток и то не постоянно, а циклично.

Всего записей: 6809 | Зарегистр. 17-10-2011 | Отправлено: 08:13 08-02-2024 | Исправлено: Sputnikk, 08:17 08-02-2024
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
И всё ж, удостойте ответа: ЗАЧЕМ вы патчите браузеры?
 
Я понимаю, что задача сделать динамический патч интересная, и по сути, и тем более что наглядно требует оптимизации...  

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 17:02 08-02-2024
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
И всё ж, удостойте ответа: ЗАЧЕМ вы патчите браузеры?

все вопросы к Capushon

Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 22:44 08-02-2024
Capushon

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple:
Цитата:
все вопросы к Capushon
Ко мне? Если кто-то не знает назначение предмета, зачем он ему?)

Всего записей: 4325 | Зарегистр. 18-07-2006 | Отправлено: 22:47 08-02-2024
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Capushon
ну ты же патч делаешь

Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 00:09 09-02-2024
Capushon

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple:
Цитата:
ну ты же патч делаешь
Ну я же тебе не объяснял для чего он?)

Всего записей: 4325 | Зарегистр. 18-07-2006 | Отправлено: 00:11 09-02-2024
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Capushon
 
Я не спрашиваю, что он делает, я интересуюсь зачем вам понадобилось это делать.
Я вот ничего такого не делаю, наверное я должен страдать от несовершенства браузера, по-вашему?
 

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 00:16 09-02-2024 | Исправлено: LevT, 00:21 09-02-2024
Capushon

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Тролль 80-го уровня желает и тут развести срач? Не интересно, продолжай там...

Всего записей: 4325 | Зарегистр. 18-07-2006 | Отправлено: 00:38 09-02-2024
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Capushon
Забей. Правильное дело делаешь. Конечно, некоторые шероховатости и "побочные эффекты" всегда были и будут, это неизбежно. Особенно без доступа к исходникам, а только к готовым бинарникам...

Всего записей: 16758 | Зарегистр. 04-11-2010 | Отправлено: 07:13 09-02-2024
Sputnikk



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Capushon В Хромиуме тоже понапихано?

Всего записей: 6809 | Зарегистр. 17-10-2011 | Отправлено: 09:28 09-02-2024
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139

Компьютерный форум Ru.Board » Компьютеры » Программы » Opera на основе Chromium (часть 8)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru