• Доступ к массиву объявленному в ассемблере из Си?

    @none7
    Это с точки зрения Ассемблера array это адрес. А с точки зрения Си uint32_t* array это глобальная статическая переменная в которой лежит указатель на uint32_t или соответствующий массив . То, что в Ассемблерах выглядит примерно так array_ptr dd offset array. А так как это bss, то естественно, что в этой переменной лежит ноль.
    Ответ написан
    4 комментария
  • Почему System.exe нагружает одно ядро процессора на 100%?

    @none7
    Гуглинг KeInitializeApc+4c0 вывел на жалобу на reddit месячной давности. Это результат обновления Windows. Официальный ответ MS должен быть по ссылке, но на Linux и Android, что у меня под рукой эта ссылка не открываетсяhttps://aka.ms/AAoh6ej
    И решение, если его нет по ссылке, тут может быть только одно. Нужно откатить обновление и ждать от MS исправления.
    Ответ написан
    2 комментария
  • Почему потоки накапливаются и не уничтожаются?

    @none7
    Принудительную сборку мусора через GC.Collect() пробовали применять? Если не помогает, значит, где-то остались ссылки и есть утечка памяти, иначе Dispose вызывается не везде в Вашем коде.
    Ответ написан
    Комментировать
  • Возможен ли доступ в интернет без провайдера?

    @none7
    Возьми учебник по CCNA, там должны быть все основы и даже есть для них программа для имитации строительства сети, просто нужно помнить, что в реальности существует не только Cisco. А перечислять тут, целая книга и получится.
    Ответ написан
    Комментировать
  • Не слетит ли windows после обновления Linux?

    @none7
    Есть нюанс. В Ubuntu 22.04 в настройках GRUB была снята проверка наличия винды. Её не будет в списке GRUB, но это можно изменить. Через UEFI всё будет работать как и работало. На более старых версиях Ubuntu проблем не будет.
    Ответ написан
    3 комментария
  • Скачет загрузка видеокарты до 100% при закрытии приложений, в чем проблема?

    @none7
    Виндовый индикатор загрузки GPU не учитывает P-State, текущую частоту видеокарты. Он учитывает только процент времени занятости GPU. Частоты видеокарт когда не запущенны игры и даже видео, до смешного низкие. Соответственно даже простейшие вычисления занимают занимают существенное(с точки зрения счётчиков производительности) время. По факту это миллисекунда или даже меньше.
    Ответ написан
    Комментировать
  • В чём отличие многопоточности и асинхронности в контексте .NET C#?

    @none7
    Разница в том, что многопоточность это вытесняющая многозадачность, а async это кооперативная. А блокируймость и неблокируймость это из религии JS пришло, где потоков нет вообще. У обоих подходов есть как свои плюсы, так и свои минусы.
    Ответ написан
    Комментировать
  • Почему отсутствует ipv6 через браузер на Linux?

    @none7
    Попробуйте добавить в /etc/resolv.conf строчки
    nameserver 2001:4860:4860::8888
    nameserver 2001:4860:4860::8844
    Может быть браузер видит только 127.0.0.53 и отказывается резольвить AAAA. Сервис systemd-resolved крайне глючный и может не находить имена по одной лишь ему известной причине.
    Ответ написан
    Комментировать
  • Как устанавливается head.Next при добавлении элемента в односвязном списке?

    @none7
    С чего вдруг это разные переменные? Node это класс, то есть ссылочный тип. После первого выполнения метода Add, head и tail ссылаются на один и тот же объект(назовём его #1) head == #1 && tail == head. После второго запуска head == #1 && tail == #2 && head.next == tail. После третьего head == #1 && tail == #3 && head.next == #2 && head.next.next == tail. Переменная tail.next == null всегда, что позволяет находить конец списка начав перечисление с любой точки.
    Ответ написан
    Комментировать
  • Не могу разобраться, как правильно использовать функцию localStorage?

    @none7
    function time() { return Math.floor(Date.now() / 1000); };
    $(function() {
      $('#podt').click(function(event) {
        event.preventDefault();
        $.post('/inc/test_code_sms.php', $('#form1').serialize(), function(data) {
          alert(data)
          if (data == ("Номер активирован")) {
            $("#content").style.display = "block";
            localStorage.setItem('content_timestamp', time());
          };
        });
      });
    });
    $(window).load(function() {
       let content_timestamp = localStorage.getItem('content_timestamp');
       if(content_timestamp != null && time() - content_timestamp < 3600) {
           $("#content").style.display = "block";
       };
    });

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

    @none7
    В PHP строки это просто массивы байт. Какая была кодировка php-файла в той echo и вывел. Чтобы корректно делать вывод в консоль нужно выяснять кодировку консоли и конвертировать строки из кодировки файла или БД в кодировку консоли. Всё это нужно сделать самостоятельно, а не через опции. Функция header предназначена только для запуска скрипта web-сервером и к запуску скриптов из консоли отношения не имеет. Строчка ini_set('default_charset', 'utf-8'); тоже.
    См. $_ENV["LANG"] и на функции mb_*.
    Ответ написан
    Комментировать
  • Как сделать интернет-шлюз ubuntu server 18.04?

    @none7
    По моему ваши iptables правила, абсолютно бессмысленные.
    1. При маршрутизации пакета из интерфейса wlan0 в eth0 пришедшего с адресов интерфейса eth0, пропустить. Так как это невозможно без вмешательства злобного хакера, то игнор.
    2. При маршрутизации пакета из интерфейса eth0 в wlan0 предназначенного для одного из адресов маршрутизируемых в eth0(как он вообще может быть направлен в сторону wlan0?). Так как это невозможно, игнор.
    Все пакеты уходят в DROP настроенный по умолчанию.
    Ответ написан
    1 комментарий
  • Как подключиться к внешнему IP с помощью tcp?

    @none7
    В нынешних условиях когда каждое подключение проходит через домашний роутер с NAT, нет не у кого "белого" ip-адреса(глобального, внешнего), кроме как у серверов. Даже если "белый" ip-адрес выдаётся провайдером роутеру(что не факт), то нужно сперва пробросить порт через UPnP или пользователем вручную. В последнем случае пользователь должен указать Вашей программе адрес и порт. Конечно есть ещё IPv6, но тех у кого он есть не слишком много. Есть Teredo, но включать его без спроса пользователя не стоит. Да и как любая технология основанная на STUN, работает он не всегда. Метод который работает абсолютно всегда это VPN, который будет проксировать подключения.
    Кстати Ваш код очень наивен. У меня в системе есть сетевые адаптеры виртуальных машин, VPN-соединений, даже могут быть дополнительные Loopback, ну и конечно физические. В каком порядке будут выдаваться адреса всех этих адаптеров?
    Ответ написан
    6 комментариев
  • Как сделать удобную удалёнку к родителям в сеть?

    @none7
    Предложу немного хардкорное решение. На каждом компе установить Wireguard, на роутере пробросить порты к wireguard каждого компа. В отличии от обычных VPN, wireguard может одну сеть подключать к нескольким точкам и является p2p-протоколом(кто "белый" адрес знает, тот и клиент и никакого dhcp). Но хоть он и относительно прост, но работу с ним придётся изучать.
    В результате можно будет шарится по директориям компов встроенными средствами винды, почти как в локалке. Подключатся по RDP и т.д. И не придется ничего делать с кривым роутером ведь для него это просто UDP.
    Минус в том, что широковещательный трафик не проходит и нельзя будет увидеть компы через обозреватель компьютеров винды. И больше телодвижений, чем если бы роутер умел быть vpn-роутером. Пример конфига на вашем компе
    [Interface]
    PrivateKey = IPqn1...секрет-0...acmc=
    ListenPort = 4049
    Address = 10.17.4.1/24
    
    [Peer]
    PublicKey = публичный ключ первого компа
    AllowedIPs = 10.17.4.0/24 # правило брандмауэра, обязательно
    Endpoint = myhost.ddns.example.net:4050 #public ip
    
    [Peer]
    PublicKey = публичный ключ второго компа
    AllowedIPs = 10.17.4.0/24 # правило брандмауэра, обязательно
    Endpoint = myhost.ddns.example.net:4051 #public ip

    Пример конфига одного из компов
    [Interface]
    PrivateKey = IPqn1...секрет-1...acmc=
    ListenPort = 4050
    Address = 10.17.4.2/24
    
    [Peer]
    PublicKey = публичный ключ вашего компа
    AllowedIPs = 10.17.4.0/24 # правило брандмауэра, обязательно
    #Endpoint = необязателен
    Ответ написан
    Комментировать
  • Как получить прямой и обратный запрос nslookup?

    @none7
    nslookup -type=a dns.google прямой
    nslookup -type=ptr 8.8.8.8 обратный
    Ответ написан
    Комментировать
  • Как правильно сравнивать ENUM на C#?

    @none7
    FileAttributes не является Enum в привычном смысле. Это битовая маска, то есть число в котором определенные биты имеют определенные значения. Пример откровенно говоря неправильный, так как в ожидаемые директории будет иметь ещё и атрибут Directory, как минимум. Если нужно найти все файлы имеющие один из атрибутов, то код должен выглядеть так
    if(dir.Attributes & (FileAttributes.Hidden | FileAttributes.Offline) != 0)

    Здесь мы складываем биты двух атрибутов и если любой из них не будет равен 0, то условие сработает.
    Ответ написан
    3 комментария
  • Не понятное поведение функции сетевого моста на Windows?

    @none7
    У виндового моста есть проблемы с DHCP. Насколько я понимаю по крайней мере хост выступающий в роли моста должен настроить сеть статически. На роутере раздающем адреса соответственно нужно зарезервировать ip-адрес моста, чтобы не выдать его кому либо ещё.
    Ответ написан
  • Почему утилита host делает UDP запрос на 127.0.0.1 на произвольные порты?

    @none7
    Судя по выводу strace, host сам биндит произвольный порт на 127.0.0.1 зачем то и очень вероятно, что отправляет пакеты самому себе. Вот поэтому нет никакого смысла бороться с входящими подключениями из loopback интерфейса, особенно если они идут не к администрируемым сервисам. Программы иногда так делают.
    Зачем host это делает? Да никто уже не скажет, ведь этот код объявленный устаревшим.
    Ответ написан
    3 комментария
  • Как перевести каретку на несколько строк назад, а все спереди удалить?

    @none7
    Универсального решения нет. В Винде свой API для работы с консолью в эмуляторах терминала есть стандарты использования управляющих символов ECMA-48. В любом случае все сводится к забиванию напечатанных символов пробелами.
    Ответ написан
    Комментировать
  • Почему wine ping не работает sudo wine ping работает?

    @none7
    В винде специальный драйвер есть для работы с ICMP. А в Linux это делается через raw-сокеты. Простейший способ получить доступ к raw-сокетам это получить права root.
    Ответ написан
    5 комментариев