• Как настроить IPv6 на роутере с прошивкой Wive-NG-RTNL?

    @none7
    В старых примерах оно выглядело примерно так:
    ifconfig sit0 up 
    ifconfig sit0 add $ipv6host/64
    route -A inet6 add 2000::/3 gw ::216.66.80.90 dev sit0

    Такое должно работать, ведь это на основе мануала для ядер 2.2.
    Но обычно рекомендуют использовать /sbin/ip, так как там самые свежие настройки сети.
    ipv4gw=216.66.80.90
    ipv4host=109.106.136.232
    ipv6host=2001:470:27:6   :2/64 #! исправьте 
    ip tunnel add he-ipv6 mode sit remote $ipv4gw local $ipv4host ttl 255
    ip link set he-ipv6 up
    ip -6 addr add $ipv6host/64 dev he-ipv6
    ip -6 route add ::/0 dev he-ipv6

    если и это не помогло, то нужен более свежий iproute.
    Ответ написан
  • Как сервер может узнать, что клиент оборвал TCP соединения?

    @none7
    Если FIN пакет не пришёл, то только таймауты.
    Ответ написан
    Комментировать
  • Как на Ассемблере сделать сложные условия?

    @none7
    Если именно а,b,c, и не экономить каждый байт, то
    cmp ax, 'a'
    setb cl
    cmp ax, 'c'
    seta ch
    or ch, cl
    jne default
    call [ax + jump_table - 'a']
    default:
    ret
    jump_table dd getHelp, openTextEditor, reboot
    Ответ написан
    1 комментарий
  • Как разобраться во всех этих синтаксисах ассемблера?

    @none7
    Суть любого ассемблера в превращении мнемоник команд в машинные коды операций(опкоды), ну и расчёт относительных смещений по именованным меткам. Сами коды операций одни и те же в рамках архитектуры процессора. Можно даже ассемблировать программу для Windows, а запускаясь в Linux Wine напрямую обращаться к системным вызовам ядра Linux. Различные ассемлеры(программы) имеют различное оформление кода, где сегменты кода, где данных и множество других малоизвестных опций, скармливаемых линкеру и ОС. MASM и TASM различаются только в этом, но можно написать и совместимый код, мнемоники команд FASM отличаются незначительно, но в целом все они используют Intel-синтаксис. То есть мнемоники команд выглядят абсолютно идентично. С GAS использующем AT&T-синтаксис несколько сложнее, мнемоники по существу те же, но каждой инструкции приставляется размер операндов и сам порядок операндов обратный. Пример расширения регистра 1 байт в 4 байта(move xxxb x=Zero):
    movzx ecx, al (Intel);
    movzxbl %al, %ecx (AT&T movzxb(yte)l(ong))

    Обе мнемоники дадут один и тот же код операции. Ассемблеры использующие AT&T-синтаксис есть не только для x86 и amd64, но сами мнемоники как и коды операций естественно другие.
    Дизассемблер как должно быть понятно из названия превращает коды операций в мнемоники, иногда анализируя код глобально, разделяя на процедуры, находя их вызовы или даже сопоставляя со структурами и массивами. Синтаксис тут на выбор разработчика дизассембера.
    Ответ написан
    2 комментария