Задать вопрос
  • Почему не безопасно использовать LXC-контейнеры?

    @rPman
    Sanes, нет, речь не о уязвимостях. Речь о том что lxc это изоляция другого уровня, на уровне приложений.
    Пример - в linux с издавних пор существовала утилита chroot, ее единственная задача - подмена системных вызовов доступа к файлам с целью обмануть запускаемое приложение и подсунуть корневую файловую систему, отличающуюся от основной. Т.е. единственное что она делает, это удаляет начало пути ко всем файлам, т.е. если указать ей запустить программу с новым root /mnt/disk то /mnt/disk/usr/bin/... становится /usr/bin/... и эта простая подмена дает огромные возможности по изоляции приложений в своей песочнице, но так как многим приложениям требуется доступ к служебным файловым системам /proc и /sys, для них эти файловые системы монтировались как копия (mount bind), т.е. приложение, запущенное из chroot имеет доступ к хост системе /proc и /sys а при наличии root доступа (уровень привилегий с помощью chroot не менялся) получается доступ к буквально любому процессу (в /proc/$pid) и оперативной памяти (/proc/mem)

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

    @rPman
    Sanes, вы можете обратиться в любую ближайшую к вам компанию для анализа своей инфраструктуры за деньги, профессионально.

    А просто 'на слабо' мало кто согласится.

    Плюс, лично я не являюсь профессионалом в этой области, и мне достаточно знания что это возможно в принципе.
  • Скорость интернета 100 мбит вместо 1 гбит, что делать?

    @rPman
    С другой стороны в какое устройство вставлен кабель?
    Кабель должен быть не только целым и новым, но и нужной категории, по простому там должно быть 4 пары взаимно перекрученных медных проводов. И да, длиной не больше нескольких десятков метров (100м это для кабелей категории 5е и выше)
  • Почему не безопасно использовать LXC-контейнеры?

    @rPman
    я даже хз, ну первый ответ гугла и в нем предлагают использовать тот же linpeas, по ссылке подробно расписывают что делают что получают и зачем.
  • Почему не безопасно использовать LXC-контейнеры?

    @rPman
    Sanes, все пять ссылок что там сверху в статье ты уже попробовал и они не работают?
  • Как вытащить нейронку из web страницы?

    @rPman
    Viktor T2, по ссылке git есть ссылка на обучающий датасет и инструкции по обучению своей, хз на сколько полные, но с этим не должно быть особых проблем?
    Если посмотреть на загружаемые файлы веб-сайтом, там есть .bin файл на 5мб, может это оно?
  • Как получить имя переменной из строки?

    @rPman
    подкину масла в огонь, есть предопределенный массив $GLOBALS для глобального и get_defined_vars() для локального контекста, в котором все эти переменные в виде 'str555'=>'hello' так что формально так можно хранить и использовать, но не нужно
    p.s. например это можно использовать при обфускации кода
  • Чем вызван краш программы?

    @rPman
    8iKS, тогда у тебя не густо вариантов, твой код требует инжекта своего, гемора много.

    Я настоятельно рекомендую использовать другой подход, вместо использования dll, используй разные процессы и IPC, или тупо сеть (http/pipe)
  • Чем вызван краш программы?

    @rPman
    Wataru, а ну это же не принципиально, описан способ создания callback между main и dll и не важно в какую сторону.

    ну нельзя напрямую вызывать функции dll/main.
  • Чем вызван краш программы?

    @rPman
    Wataru, ответьте пожалуйста на вопрос, или дайте путь для решения. Я не увидел принципиальных проблем у этого ответа
  • Как разобрать то что возвращает функция socket_read?

    @rPman
    Валера Карманов, вебсокеты можно реализовать и так но зачем?
    вот первое что нагуглилось 9-летней давности, как раз без использования библиотек
  • Чем вызван краш программы?

    @rPman
    chatgpt дает очень развернутый ответ
    Да, в Windows можно использовать экземпляры объектов, переданные из основной программы в функцию, определенную в DLL.

    Для этого нужно:
    * Определить интерфейс DLL: Экспортировать функцию из DLL, которая будет принимать указатель на объект.
    // В DLL
    extern "C" __declspec(dllexport) void UseObject(MyClass* obj);


    * Импортировать DLL в основной программе и вызвать экспортированную функцию, передав в нее указатель на объект.
    // В основной программе
    typedef void (__stdcall *UseObjectFunc)(MyClass*);
    
    HMODULE hModule = LoadLibrary("MyDll.dll");
    if (hModule) {
        UseObjectFunc UseObject = (UseObjectFunc)GetProcAddress(hModule, "UseObject");
        if (UseObject) {
            MyClass myObject;
            UseObject(&myObject);
        }
        FreeLibrary(hModule);
    }

    * Работать с объектом внутри функции в DLL:
    // В DLL
    extern "C" __declspec(dllexport) void UseObject(MyClass* obj) {
        if (obj) {
            obj->SomeMethod();
        }
    }


    Важные моменты:
    * Совместимость компиляторов: Основная программа и DLL должны быть скомпилированы одинаковыми компиляторами и использовать одни и те же настройки компиляции (например, соглашение о вызовах, выравнивание структур и т.д.).
    * Экспорт классов: Если вы планируете экспортировать целые классы, а не функции, то все методы и члены класса, которые будут использоваться вне DLL, должны быть объявлены с использованием __declspec(dllexport) (при импорте из DLL – __declspec(dllimport)).

    Вот пример для экспорта класса:
    // В DLL
    class __declspec(dllexport) MyClass {
    public:
        void SomeMethod();
    };

    и
    // В основной программе
    class __declspec(dllimport) MyClass {
    public:
        void SomeMethod();
    };

    * Управление памятью: Убедитесь, что объекты, созданные в DLL, освобождаются там же, чтобы избежать проблем с разными пулов памяти в случае использования разных CRT в DLL и основной программе.
    Я сам это не проверял
    И еще мысль такова, что адресные пространства, heap менеджера памяти и прочее у каждого модуля и программы - свои, а значит работать с ними нужно очень осторожно, ведь все что происходит с памятью в dll обратно нужно передавать как параметры через стек
  • Как разобрать то что возвращает функция socket_read?

    @rPman
    Валера Карманов,
    я узнал что веб сокет
    у тебя в примере НЕ websocket!
    websocket это расширение http протокола, не советую реализовывать его самостоятельно, возьми тот же swoole, пример
  • Как разобрать то что возвращает функция socket_read?

    @rPman
    я в шоке что к тебе $port = (int) rand(1000, 9999); при этом кто то умудрился подключиться, если не ты, и отправить какие то данные, потому что
    $line = socket_read($connect, 8129); не должен возвращать что либо, если никто не подключился

    И в довесок $connect = socket_accept($this->_socket); я бы лучше сравнивал с !==false для надежности, и для отладки, вывел бы сообщение об ошибке если ===false
  • Стоит ли в 24 году брать NAS от Synology и что там по функционалу в время санкций?

    @rPman
    Valentin Barbolin, по ссылке тема на 11 тысяч сообщений, в шапке нет ответа на вопрос
  • Как открыть флешку в терминале линукса?

    @rPman
    xotkot, когда то давно я с linux плотно ковырялся, и mount не умел автоматически загружать модули ядра, это вообще то странное поведение, но да очень удобное.

    излишняя автоматизация и облегчение может до добра не довести
  • Как разобрать то что возвращает функция socket_read?

    @rPman
    а где код клиента, который подключается и пишет что-либо? что пишешь, что ожидаешь?
    p.s. отладочную информацию лучше выводить чем то типа echo json_encode($line,JSON_UNESCAPED_UNICODE), тогда только не читаемые символы будут отображены экранированным кодом, а остальные - текстом.

    p.p.s. не критичное:
    * после socket_read нужно закрывать сокет клиента, если все что нужно прочитал
    * 8129 скорее всего ты хотел 'круглое' число 8192 как степень двойки
  • Как открыть флешку в терминале линукса?

    @rPman
    xotkot, в man ничего нет про автозагрузку модулей командой mount
    погуглил, оказывается на exfat майкрософт так же доит компании, но для linux в 2019 году они сделали исключение, поэтому это работает

    спасибо, думал что это не так.
    p.s. но я считаю, что каждый должен знать какую гадость вытворяла и творит сейчас майкрософт, чтобы не оставаться в блаженном неведении.
  • Как открыть флешку в терминале линукса?

    @rPman
    xotkot,
    # uname -r
    5.15.0-91-generic
    # cat /proc/filesystems | grep fat
        vfat

    нет поддержки по умолчанию, и проблема это не техническая а юридическая. exfat обложена патентами хуже fat32 (там только длинные имена) и ты не имеешь права поставлять (продавать) оборудование и ПО со встроенной поддержкой exfat и ntfs (ее поддержка кстати в ядре есть, очень старая и только ro) не получив разрешение от майкрософт.

    p.s а так да, кодовая база там имеется:
    # grep EXFAT /boot/config-5.15.0-91-generic
    CONFIG_EXFAT_FS=m
    CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
  • Как защитить моё Android VPN приложение от мошенников?

    @rPman
    YX1978,
    не я опубликовал
    не вы опубликовали = не ваше приложение
    тот кто опубликовал, мог внести любые изменения, не спрашивая вас