Задать вопрос
  • Можно ли восстановить данные?

    @rPman
    Не вздумай подключать диск туда где есть поддержка trim! так как раздел будет в кратчайшие сроки очищен автоматически.

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

    p.s. usb контроллер не гарантирует что trim не поддерживается, проверь это, подключив любой другой диск и посмотри поддержку с помощью hdparm,

    Да я читал что подключаемые по usb контроллеры как минимум в linux не включают автоматически поддержку trim для файловых систем даже если она имеется, но сейчас с ходу не нашел подтверждения.
    Ответ написан
  • Как раздать блочное устройство с linux-компьютера через usb-c порт?

    @rPman
    jcmvbkbc дал отличный ответ

    я же предлагаю альтернативный вариант для расширения горизонтов, на steamdesk нужно установить istgt - демон для публикации дисков по протоколу iscsi, для загрузки по сети поддерживается в т.ч. и windows, для загрузки понадобится еще настройка DHCP сервера и разместить где то EFI загрузчик по протоколу tftp либо при должном красноглазии можно по http.

    p.s. для бездисковой linux машины (ты же не сказал что собираешься загружать) для загрузки по сети существует тьма тьмущая других вариантов, основа та же DHCP и tftp для ядра и initramfs, но вот сам диск можно монтировать практически по любому протоколу от nbd (блочное устройство но проще чем iscsi) до nfs
    Ответ написан
    1 комментарий
  • Как сделать, чтобы количество активных чекбоксов не опускалось ниже определённого?

    @rPman
    тебе нужно использовать штатный <input type=radio...
    Ответ написан
    Комментировать
  • Подойдет ли для парсинга сайта Амазон библиотека Selenium Stealth на Python?

    @rPman
    Главный вопрос, почему именно amazon? почему именно selenium-stealth? Вы пробовали другие инструменты и они не сработали?

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

    p.s. я не нашел продукта под названием Amazon Selenium Stealth, но нашел статьи по использованию amazon lambda и библиотеки selenium-stealth
    Ответ написан
  • Что может отслеживать конкретный сайт и как с этим бороться?

    @rPman
    Косвенная информация о месторасположении
    - по ip адресу клиента и по времени ответа можно выявить наличие vpn и даже расстояние от клиента до выходной ноды vpn
    - наличие прокси, с теми же возможностями, а если прокси внезапно на том же адресе что и выходной ip и анонимна, то анализ может быть более подробный

    Атака на сеть
    - можно анализировать локальную сеть запросами, подбирая ip адреса и типовые порты можно обнаружить наличие роутера и даже его тип (cors не дает читать содержимое https->http но есть информация о заголовках и самом факте верного ответа), помимо роутера программисты часто в десктопных приложениях поднимают веб сервер (особо криворукие - без авторизации), это можно обнаружить и при наличии ошибок даже на него повлиять (повторяю, пользователь заходит на веб сайт, и его локальная сеть может быть просканирована, уязвимые приложения найдены и атакованы... я наблюдал как сбер онлайн делал такое сканирование, делая запросы к localhost по разным портам), примером таких приложений могут быть remote control медиа плееров.
    - XSS/CSRF. открывая уязвимые веб приложения в прозрачном iframe можно двигать его под мышь пользователя таким образом, чтобы пользователь не ведая того, кликак в этом приложении в нужных местах (уязвимое приложение будет открыто с авторизацией пользователя, это оправдано и такие еще встречаются), доступа к данным не будет но действия пользователя пройдут.
    - можно просто ddos-ить какой-либо сайт запросами, которые будут идти от пользователя но referer так подделать нельзя, т.е. будет видно кто виновник (понятно что в iframe можно открыть заранее сгенерированные мусорные домены)
    Помню в одном веб приложении была ошибка, оно не проверяло результат и случайно ddos-ило гугловский сервис, который в результате отказывал в обслуживании пользователю вне этого веб приложения.
    - используя webrtc можно даже вылезти в локальную сеть (найти соседний браузер без proxy/vpn если там тоже открыта страница сервера)
    Было время, когда при использовании java applet/flash/silverlight и прочих нативных аддонов, можно было еще сильнее вылезать из браузерной песочницы и вытворять в сети пользователя лютую дичь.
    - есть какие то направления в атаке через уведомления (если ты подписываешься на них на сайте, всплывающее окошко с ним открывается в ином контексте безопасности чем оригинальная страница), я не изучал но наверняка тут тоже можно что то вытянуть

    Типовая информация о железе
    - характеристики монитора (разрешение, масштабирование, глубина цвета - хотя все уже 32бит но слабые железки могут быть все еще 16битными)
    Из размера окна можно вытянуть информацию об операционной системе, нестандартном оборудовании и установленных темах, меняющих его размер
    - производительность cpu и gpu замеряя их бенмчмарками
    можно вычислять размер кеша и от сюда косвенно получать информацию о модели процессора и даже о вендоре intel/amd/... arm
    - почти полную информацию о gpu и даже попытку скрыть ее за виртуальной машиной
    - через тайминги и сетевой бенчмарк можно собрать информацию о скорости сети (ethernet или wifi)
    - через storage api можно собрать бенчмарки по скорости жесткого диска, как минимум можно понять hdd или ssd
    - инструмент ввода мышь/тачпад, даже если ты на планшетнике запускаешь мобильный браузер в режиме и в режиме PC, по тому как работает пользователь с тачпадом можно вытянуть информацию (отсутствие mousemove там где оно должно быть)

    Атака на железо
    - до сих пор я вижу сообщения о закрываемых уязвимостях доступа к gpu ram при использовании особенностей gpu, доступные в т.ч. из браузера, т.е. буквально вытаскивают изображение экрана и содержимое окон соседних приложений... это не просто, не гарантированно но при наличии желания и ресурсов, адресные атаки возможны, не удивлюсь если так будут воровать веса приватных нейронок.
    - из производительности кеша процессора вытягивают информацию об оперативной памяти соседних процессов (уязвимости Meltdown/Spectre) но это еще сложнее

    Информацию о софте
    - класс браузера (firefox/chromium и при желании opera/edge/...) по поведению javascript и многим специфическим особенностям и само собой по заголовках запроса по useragent (это само собой подменяется)
    - наличие некоторых плагинов (по тому что они добавляют на странице, например api или специфические изменения)
    например блокировщики рекламы выявляются не сложно, правда лучше прикручивать автоматизацию на основе публикуемых правил

    Доступ к clipboard
    - clipboard api не дает доступа к буферу обмена, но при клике на страницу возможна его подмена, типовой пример - пользователь держит в буфере финансовую информацию (номер счета например) и кликая по 'сайту с инструкциями' может получить подмену содержимого буфера и вставить эту подмену как адрес для денежного перевода.

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

    p.s. а сколько открывается дивных возможностей, когда веб сервис запрашивает доступ к чему то еще и пользователь его разрешает, типа камера, положение по gps, доступ к clipboard,..

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

    @rPman
    Это узкополосный усилитель (звуковая карта/материнка или сам микрофон), настроенный на речь.

    Попробуй подключить микрофон на line in, там усилителей нет.

    С некоторыми шансами можно отключить усиления програмно, ищи в настройках звука, для win7 помню с драйверами материнских плат шли обвешанные рюшечками gui для настроек, держал помню ради одной похожей настройки, но теперь в win10 это кажется стандартизировали и опций стало сильно меньше.
    Ответ написан
  • Несколько пользователей или контейнеризация?

    @rPman
    будет трудно найти того, кто будет это настраивать и поддерживать
    все ваши проблемы от сюда. Либо ищите готового специалиста, либо выращивайте своего

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

    Самая большая проблема у вас это не борьба со злоумышленниками, с ними вы без специалиста никак не справитесь (контейнеры только уменьшат вероятность их появления), а учет ресурсов. Вам нужно уметь выставлять квоты на время, процессор, gpu, диск... все это доступно из коробки в linux но без красивого GUI все нужно изучать самостоятельно.

    Настоятельно рекомендую организовывать работу с пользователями linux, все инструменты настроены именно на это, а контейнеризация перенесет все под одну гребенку и усложнит.
    Ответ написан
    1 комментарий
  • Можно ли раздать интернет на Access Point?

    @rPman
    подключение к интернету - это когда конечные устройства (компьютеры):
    * подключены физически (в т.ч. по wifi) к локальной сети, которую образуют твои eltex роутеры
    * настроен ip адрес в этой локальной сети (все участники должны быть в одной сети)
    * настроен шлюз по умолчанию (машина или роутер в сети, который умеет раздавать интернет - т.е. твой роутер с интернетом)
    * и dns серверы (обычно это тот же роутер но ничто не мешает указать dns сервер снаружи, например от провайдера-источника интернета либо глобальные типа 8.8.8.8 от гугла или 1.1.1.1 от cloudfire...)

    за настройки ip и т.п. отвечает DHCP сервер, который идет в поставке с любым роутером и он должен быть один в локальной сети (точнее рекомендуется, чтобы не было путаницы) либо эти настройки можно ввести вручную на каждой машине в сети (что неудобно но вполне рабочая схема если машин грубо говоря мало и используются какие то альтернативные скрипты автоматизации настройки, например у меня был случай, когда две домашние сети объединялись через windows машину, которая многого не умела как роутер, и это нельзя было изменить, проще было скрипты настроить)
    Ответ написан
    Комментировать
  • JS. Как конвертировать данную строку в массив?

    @rPman
    Ответ написан
    Комментировать
  • Как спарсить котировки в Google Sheets?

    @rPman
    Потому что эта цифра формируется на javascript, там с помощью ajax делается что то типа (не факт что я верно угадал, тупо поиском в инспекторе браузера нашел)
    https://futsseapi.eastmoney.com/static/115_OI409_mx/11?callbackName=jQuery35104319374984631833_1697039773745&token=1101ffec61617c99be287c1bec3085ff&_=1697039773761

    так что реверсить тебе логику этого кода либо использовать безголовый браузер который будет искать нужный элемент на страничке аналитически (стилями там просто не получится)

    Если отреверсишь логику, теоретически сможешь ее повторить на javascrpt в google docs
    Ответ написан
    Комментировать
  • Как оптимизировать return выражение?

    @rPman
    В твоем варианте каждый replace копирует предыдущую строку в новую.

    Логика подсказывает что если проходить посимвольно по строке и проверять значение символа и заменять его на другой в новой строке будет эффективнее по всем параметрам. Новую строку лучше создавать через StringBuilder, так как он эффективно добавляет символы к строке (иначе попытка использовать += к строке будет постоянно ее копировать).

    Так же рекомендуется для проверки символа использовать не кучу if-ов а switch case (оно преобразуется в эффективную таблицу переходов) либо самостоятельно подготовить массив (у тебя речь идет о кодах <256) из 256 строк, где каждая строка либо null (не проводить замену) либо строка, на которую нужно провести замену. Тогда вместо проверки символа по условию будет достаточно брать код символа charAt и проверять что его значение не выходит за пределы массива.
    Ответ написан
    Комментировать
  • Почему Windows 10 не может получить доступ к шаре?

    @rPman
    ты подключаешься windows -> nas, убери то что ты там наковырял в настройках windows (зачем ты включил к нему доступ для гостя?)

    подключившись в домен, текущий пользователь на машине будет уже доменным (на самом деле можно авторизоваться локальным принудительно) и даже если имена совпадают, с точки зрения авторизации это разные пользователи

    мало того, при использовании домена перестает работать механизм общих имен и паролей в windows for workgroup (когда сеть без домена) позволяющий подключаться к шаре без ввода пароля.

    Правильное решение - добавить nas в домен (если nas это умеет, если нет то укажи рабочую группу с тем же именем что и домен и делай как ниже).
    Неправильное но простое решение - завести на windows и nas локальных пользователей с одинаковыми именем и паролями и делать подключение по ip адресу (ну в 10-ой версии wins сервер сломали, по уму можно включить и поковырять политики чтобы его вернуть, по уму рабочего dns сервера или правок в hosts должно хватить тоже), при подключении к nas указать этот логин и пароль и отметить сохранение их для последующих подключений (делать это придется вручную для каждого компьютера в сети и может даже для каждого пользователя, на сколько я помню это не переносится через сетевые профили)
    Ответ написан
  • Как сгенерировать изображение чека из данных?

    @rPman
    Продумай вариант генерации изображения на стороне клиента средствами браузера, т.е. штатно. Ты генерируешь html на php, а браузер отображает и по ctrl+p позволяет его пользователю распечатать...

    в довесок скопировать составляющие как текст и вообще это удобнее.
    Ответ написан
    1 комментарий
  • Почему запись в файл добавляется в конец?

    @rPman
    Для позиционирования в файле нужно пользоваться fseek а для получения ftell.

    fgets смещает указатель на следующую строку, значит fwrite будет ее затирать. Значит если у тебя была последняя строка - значит указатель будет в конце файла.

    Теперь о главном - замена строки в текстовом файле нормально будет работать только если размер этой строки совпадает с прошлой, иначе при меньшем размере новой строки в файле останется мусор от прошлой, а при большем - будут затерты следующие строки. Т.е. понадобится сдвигать содержимое всего файла после текущей позиции или полностью перезаписывать весь файл, причем если оперативной памяти хватает то это легко - загрузил построчно file, изменил нужную строку в массиве, и сохранил с помощью к примеру implode+file_put_contents или циклом по массиву и fputs.

    Именно по этой причине текстовые форматы данных не подходят для хранения нескольких записей. Допускается по одному файлу на запись, а запись это текстовая строка.

    Благодаря обширному количеству поддержки различной сериализации данных в текстовый формат, и не только (var_export/serialize/json_encode/igbinary), полная перезапись файла все еще используется как способ хранения миниатюрной базы данных в файле, но только потому что код для его использования очень простой, пока не нужно думать о многопоточном доступе к этим данным.

    Настоятельно рекомендуется не изобретать паровоз и пользоваться например sqlite, универсальная функциональная sql база данных, не требующая обслуживания и установки (работает на основе файла без подключения, как библиотека).
    Ответ написан
    5 комментариев
  • Можно ли использовать ядро Android в дистрибутивах GNU\Linux?

    @rPman
    android - это 'полноценный' linux, с заменой окружения на свое и проприетарным загрузчиком (это не вина android как ОС, это вина производителей и возможно скрытых договоренностей с гугл) и зачастую с особым (не linux) способом работы с периферией.

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

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

    Если же что то получится, то скорее всего никакого доступа к GPU у тебя не будет (будет framebuffer), будут скорее всего проблемы с сенсорным экраном, радиомодулем (например wifi и bluetooth) и системой энергосбережения. Т.е. сделать безголовый сервер у тебя получится, и даже устройства по usb внезапно смогут подключиться, но спотыкаться будешь на каждом шагу.

    p.s. есть проекты запуска привычного linux окружения как приложение android, ищи termux/debian_root и т.п.
    Ответ написан
    2 комментария
  • Как сделать зеркальную копию сервера?

    @rPman
    на основе реального железа это можно сделать средствами windows server - https://learn.microsoft.com/ru-ru/windows-server/f...

    если используется виртуализация, с хостом на основе linux, инструментов становится больше DRBD/GFS/OCFS
    Ответ написан
    Комментировать
  • Как создать бота ChatGPT с обучением только на своих данных?

    @rPman
    Над решением задачи галлюцинаций на текущий момент работают лучшие умы планеты, красивого решения нет но специалисты из OpenAI говорят что считанные годы и проблема будет решена.

    В идеальном случае тебе действительно нужно подготовить идеальные данные. Но к сожалению, особенность нейросетей такова, что помимо верных данных, тебе нужны граничные с ними неверные. Именно неверные данные (помеченные как ошибочные, в терминах llm например спец токеном или встроенным в алгоритм механизмом, либо давать группу токенов которые текстом будут сообщать об ошибке или отсутствии информации) позволят нейронной сети давать верные ответы.

    Это особенность любых нейросетей можно представить так, твои обучающие данные это точки, которые ты в слепую бросаешь на ось, а область верных утверждений это отрезок. Если ты будешь пытаться определить отрезок 'бросая' только точки внутри отрезка, алгоритм сможет проводить разделение верно/неверно в любом месте за пределом этих точек, ведь любой такой вариант будет непротиворечив. А значит когда нейросеть попадет в ситуацию, не прописанную напрямую в обучающей выборки (то чего ы и хотим добиться) она будет предлагать варианты за границей нашей реальной правды, думая что линия правды дальше
    Ответ написан
    2 комментария
  • Передача информации через запутанное состояние?

    @rPman
    повторное запутывание разрушает предыдущее (любое действие его разрушает).
    нет способа определить, запутана ли частица и с кем.
    нет способа определить, была ли разрушена запутанность.
    Ответ написан
  • Как запустить игры с HDD?

    @rPman
    Когда ты попытаешься поставить игру и места для нее на C не хватит, тебя попросят создать на другом диске хранилище, так же это хранилище можно создать вручную (там кнопка над выбором пути), будет всегда доступен выбор куда устанавливать игру

    Еще момент, если места для игры хватает но есть желание перенести часть игры на другой диск (например видеоконтент или не используемые части игры), можно использовать символические ссылки ntfs и переносить по каталогам с SSD на HDD, создавая символическую ссылку вместо исходного каталога на новое место (к сожалению только каталоги но не файлы). Осторожно, во время обновления некоторые игры могут при вместо перемещения загруженных файлов их копировать, т.е. на момент обновления требуя места в полтора-два раза больше чем обычно (я один раз с этим столкнулся достаточно давно, когда 400гб-ный ark survival так раскидывал).
    Ответ написан
    3 комментария