Pull to refresh
-2
0
Send message

Я бы не стал держать смартфон на зарядке сутками - АКБ вздуется. А если держать - то занизить напряжение зарядки АКБ где-то до 3.9V (будет где-то 60% заряда, но риск вздутия куда меньше). Дл этого можно использовать какое-нибудь приложение для управления зарядкой или (что лучше) пропатчить dtb или ядро и прошить.

Модель X757 интересна. Но куча вопросов на которые пока нет ответов:

Сколько слотов под оперативку? Сколько из них занято с завода? Какие тайминги у заводской памяти? Можно ли докинуть памяти самому не лишившись гарантии?

Есть ли зарядка через Type-C PD? Хватает ли мощности заводской зарядки всегда? Не разряжается ли ноут во время игры?

DisplayPort через Type-C - какая версия DisplayPort? А версия HDMI? Поддерживаются ли FreeSync/G-Sync по DisplayPort? А по HDMI? А на встроенном дисплее? Можно ли питать ноут от монитора?

Можно ли изменить цвет подсветки клавиатуры?

Linux - какой дистрибутив идёт с завода? Используются ли какие-то проприетарные драйвера в ядре или юзерспейсе? Насколько реально сменить дистрибутив сохранив всю функциональность? Отключается ли питание дискретного GPU когда он не активен? Или только руками его отрубать (с релогином)?

У меня есть парочка ламп Старт (Start ECO LEDGL SE27 15W 30 04.2021) (им 1.5 года) у которых износился корпус.

А именно - растрескался пластик между корпусом и плафоном (настолько, что у сгоревшей отваливались куски корпуса от лёгкого прикосновения, а плафон без усилия оторвался руками после выкручивания).

Одна из этих ламп сгорела недавно (что именно сгорело - ещё не ковырял), чем и обратила на себя внимание.

Вторую (ещё живую) осторожно переставил в закрытый плафон, во избежание поражения током, хотя она и так в люстре стояла и не была угрозой. Пластик старался не трогать.

а есть мысли, как можно усложнить жизнь против динамического анализа?

Есть немножко. Но не против всех атак.

Или просто заменить все вызовы удаления файлов на nop - первый же запуск приложения и временная директория с расшифрованной моделью останется.

Если защищаемся от ламеров - вот тут можно добавить что-то типа изменения размера файла (truncate) на 0 сразу после инициализации модели - в этом случае атакующий получит кучку пустых файлов.

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

Использование временной директории + вызов MLModel.init явно является тупиковым путём тут, так как позволяет перехватить расшифрованные данные при любом сценарии работы.

Единственным возможным путём полной защиты модели в данном случае я вижу предварительную генерацию ключевой пары в TZ (приватный ключ никогда не покидает TZ), пересылку публичного ключа на сервер, после чего сервер шифрует модель полученным публичным ключом и отсылает обратно, затем происходит скармливание зашифрованных данных модели в TZ с объяснением какие именно данные (ID ключа) надо расшифровать, и TZ расшифрует модель и сохранит её внутри защищённой памяти, после чего MLModel должен будет как-то аутентифицироваться в TZ и затем авторизоваться в TZ что он может получить доступ к конкретной модели, после чего TZ отдаст ему модель (и вот тут как раз таки её можно будет поймать, так что MLModel должно будет работать в TZ полностью, но это увеличивает поверхность атаки на саму TZ).

TZ - TrustZone, или как там оно называется в iOS (не трогал её - не знаю терминов).

Далее нам нужно зашифровать наш файл. Для этого можно использовать популярный sha256 либо любой другой алгоритм.

Шифровать алгоритмом хэширования файл конечно можно, но будет очень-очень-очень трудно его расшифровать потом.

Может всё-таки лучше для шифрования выбрать что-то вроде AES256?

дешифруем модель, релизим из памяти ключ, разархивируем модель и сохраняем во временную папку, например:  NSTemporaryDirectory()/YourFolder/

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

Ну или просто запустить ваше приложение под чем-то типа strace и оттрассировать все вызовыopen() и write() а затем отфильтровать их по пути, получив только вызовы связанные с временной директорией, а затем повторить их и получить полностью дубликат вашей временной директории с расшифрованной моделью.

Инициализируем модель и загружаем ее в память c помощью init метода MLModel

Ещё одно место которое можно немножко попячить (к примеру вставив в init что-то типа sleep(10000) или заменить вызов init на exit() и спокойненько вычитать за время сна (или после завершения приложения) всю временную директорию с расшифрованной моделью.

Удаляем временную папку.

Или просто заменить все вызовы удаления файлов на nop - первый же запуск приложения и временная директория с расшифрованной моделью останется.

То есть, предложенные методы защищают только от статического анализа, и полностью бессильны против динамического анализа (как активного, с модификацией кода приложения или OS, так и пассивного, просто наблюдая за работой приложения без его модификации).

Вместо 2 команд systemctl start + systemctl enable можно просто сделать sudo systemctl enable --now serial-getty@ttyS0

Для декомпиляции Java ещё можно попробовать Jadx - он неплохо справляется с этим делом, при этом есть ещё и jadx-gui, в котором можно вести навигацию по коду и при необходимости даже переименовывать классы, поля, методы и переменные.

Ага, 5G. А пинг там какой будет? 600 ms? А ведь именно ультранизкий пинг и пропагандировали как основную фичу 5G. В итоге получится быстрый аналог EDGE.

Бесполезно потраченную на майнинг в регионе А энергию никак не получится заставить плавить сталь в регионе Б, даже если регион Б купил циферки у региона А и заплатил за это настоящие деньги.

Не может крипта быть эквивалентом аккумулятора. Если энергия вдруг кончится - она (ВНЕЗАПНО!) кончится и у покупателей крипты, и у маинеров.

Я тоже игрался с Silero TTS и выяснил, что разные голоса имеют разное ограничение на максимальную длину обрабатываемого текста, 1000 символов уверенно тянет только eugene, а kseniya надо передавать не больше895 символов (при этом некоторые тексты большего размера она может обработать, а другие - нет). Проверено тестами.

Взгляните на скрипт https://github.com/S-trace/silero_tts_standalone/blob/master/tts.py - возможно найдёте что-нибудь полезное для себя в def preprocess_text - эта функция обрабатывает текст и затем разделяет текст по границам предложений на чанки пригодные для озвучивания.

Как вариант — одеться. Разница, думаю, не принципиальна в данном случае)

Что-то мне кажется, что компании могут покинуть рынок с 12% мирового производства, чтобы войти на рынок с 23%

Отличная статья, и прекрасно написана! Побольше бы таких, пишите ещё!

В Firefox 102.0.1 (64 бита) на Manjaro у меня нормально отрисовались гифки (как многоцветная, так и с красными квадратами), градиент статичен и отрисован полностью и красный квадрат на верхней гифке не промелькивает, как на картинке "Я захотел узнать, как выглядел рендеринг GIF в Netscape 2.0. Вот тестовый GIF с красными квадратами из примера выше, отрендеренный
(правильно!) в Netscape 2.0 и Windows 95".

Кроме того, если сравнивать с обычными оптическими лазерами, то можно
сказать, что сазеры обладают гораздо меньшей длиной волны, что позволяет
получать гораздо более чёткие картины. Вторым положительным качеством
является возможность фокусировки с более высокой концентрацией энергии
(из-за наличия короткой длины волны) в точку гораздо меньшего размера, с
более высокой концентрацией энергии.

Как-то странно звучит, я всегда думал что длина волны у света сильно меньше чем у звука.

К примеру, в воздухе длина волны красного цвета в воздухе - 630 нанометров, а длина волны ультразвука на 100 кГц в воздухе - 3.4 милиметра, или же 3400000 нанометров.

Разделительный фильтр для пульсирующего напряжения на переменную и постоянную составляющие?

Ok гугл, зачем мне нужен реддит если в приватной вкладке по запросу "xiaomi mi pad 4 android 12" в гугле я получаю сразу же кучу сайтов, первый же из которых мне сразу и на одной странице объясняет всё от x до й начиная от получения устройства в руки и установки дров, продолжая разлочкой бутлоадера (по ссылке из гайда), продолжая заливкой TWRP (по ссылке из того же гайда) и завершая заливкой кастомной прошивки через предварительно прошитый TWRP.


А на реддите (google://site:reddit.com) я получаю:


  1. первую ссылку с "GET ANDROID 12 BETA FOR MI MIX 4, MI PAD 5 PRO/ MI PAD 5",
  2. вторую с [PETITION] Xiaomi, give Mi Pad 4 a MIUI 12 based on Android 10!!",
  3. третью с "Hello, it has been like 2 years since I had an update on my Mi pad 4. This is the lastest build I have: ( MIUI 10.4 by xiaomi.eu 9.59",
  4. четвёртую с "What's the latest update for Mi Pad 4 Plus", пятую с "Android 12L for Pad 5".

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


Собственно вопрос, когда именно умер гугл и нафига мне этот ваш б-гомерзкий реддит?


Пожалуйста, не надо так!
Не убивайте поисковые системы, не раздробляйте мир на несвязанные информационные системы и каталоги поисковых систем!

Эм… А почему "было"? Ведь и сейчас есть же https://addons.mozilla.org/ru/firefox/addon/personal-blocklist/

Information

Rating
Does not participate
Registered
Activity