Pull to refresh
22
0
Александр Ф. Михайлов @chelaxe

User

Send message

Mikrotik: маленькая хитрость switch chip

Reading time2 min
Views79K
Моя прошлая статья про switch chip на Mikrotik вызвала неоднозначную реакцию, а комментарий одного из читателей натолкнул на идею. И так: как на RB952Ui-5ac2nD сделать более одной группы коммутации?
Читать дальше →

Технологии безопасности сети на 2-ом уровне OSI. Часть 1

Reading time7 min
Views103K
Казалось бы, получив доступ во внутреннюю сеть, злоумышленник может относительно беспрепятственно исследовать соседние узлы, собирать передаваемую информацию и в общем уже все потеряно.


Тем не менее при корректном подходе к контролю уровня доступа можно существенно осложнить упомянутые процедуры. При этом грамотно подготовленная сетевая инфраструктура, заметив зловредную аномалию, об этом своевременно сообщит, что поможет снизить ущерб.

Под катом перечень механизмов, которые помогут выполнить данную функцию.
Читать дальше →

Удалённое включение компьютера бесплатно, без SMS и без облаков, с помощью Mikrotik

Reading time3 min
Views116K
… а также без проброса портов, SSH/telnet и установки сторонних приложений. С любого компьютера, подключённого к интернет и даже с телефона!

Периодически мне бывает нужно включить домашний компьютер, когда я нахожусь не дома. Обычно я не запаривался и звонил или отправлял сообщение с такой просьбой жене, которая сидит дома в декрете. Очень удобное средство удалённого управления с голосовым интерфейсом. Однако у этого способа есть ряд недостатков — ушла гулять, укладывает ребёнка, или ещё чем либо занята. Хотелось простого решения из того что есть под рукой.
Тыкни меня!

main(){printf(&unix["\021%six\012\0"], (unix)[«have»]+«fun»-0x60);}

Reading time5 min
Views17K

Развлекаемся, «распутывая» код на языке Си

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

image

Когда я в очередной раз просматривал книгу «Expert C programming», я вдруг наткнулся на раздел «light relief» в международном конкурсе на самый запутанный код на Си (IOCCC). Это соревнование по написанию как можно более нечитабельного кода. То, что такие конкурсы устраиваются для Си, наверное, говорит что-что об этом языке. Мне хотелось увидеть работы участников этого соревнования. Не найдя никакой информации в интернете, я решил поискать их самостоятельно.

IOCCC был придуман Стивеном Борном, когда он решил использовать препроцессор Си и написать Unix shell как бы на языке Си, но больше похожем на язык Algol-68, с его явными окончаниями операторов, например:

if
  ...
fi 

Он добился этого, сделав:

#define IF if(
#define THEN ){
#define ELSE } else {
#define FI ;}

Что позволило ему писать так:

IF *s2++ == 0
THEN return(0);
FI

Проблемы с установкой начального загрузчика на флеш-накопитель

Reading time6 min
Views27K
В статье содержатся 5 вопросов и ответов по следующим темам:

1. Очистка mbr флешки в Windows
2. Конвертирование ISO-файла в гибридный ISO-файл (только Linux)
3. Создание загрузочной флешки с сохранением изменений (Linux, Windows, Mac OS X)
4. Создание мультизагрузочной флешки (Windows)
5. Восстановление таблицы разделов и загрузчика mbr (Hiren's BootCD).
Читать дальше →

Node.js 7.0.0 зарелизился. Встречайте async/await без babel

Reading time1 min
Views30K
File:Node.js logo 2015.svg

7-я нода зарелизилась, ура! Что нового:

  • Движок V8 обновлён до версии 5.4.500.36, в которой обеспечена поддержка 98% возможностей JavaScript, определённых в спецификации ES2015 (ES6) и, частично, будущим стандартом ES2017.
  • Отмечается новый парсер URL, соответствующий стандарту оформления URL, подготовленному сообществом WHATWG.
  • Доработана работа с Buffer, Child Process, Cluster, файловой системой, промисами
  • Полный список изминений

Для меня это долгожданный релиз, так как появилась возможность изпользовать конструкцию async/await без транспайлера babel. Включается это все ключом --harmony.

Теперь можно без babel так:
Читать дальше →

Исследователи создали эксплоит для получения root-доступа к Android-смартфонам с помощью уязвимости Rowhammer

Reading time4 min
Views25K


Международная группа исследователей из Австрии, Нидерландов и США, информационной безопасности разработала атаку, позволяющую получить root-доступ к большому количеству Android-устройств, пишет издание Ars Tehnica. Для этого эксплуатируется техника Rowhammer, позволяющая осуществлять манипуляции с данными, хранящимися в ячейках памяти. При этом, ранее считалось, что атаки с использованием уязвимости Rowhammer имеют ограниченные перспективы реального применения — новый эксплойт демонстрирует, что ей подвержено гораздо больше устройств, чем предполагалось (включая и работающие на ARM-чипах).

Исследователи создали специальное приложение-эксплойт Drammer, которое не требует для работы никаких особенных прав и не использует никаких Android-уязвимостей. Атака осуществляется с помощью уязвимости аппаратного обеспечения — аналогично описанной техники Rowhammer он «простукивает» биты памяти устройства, изменяя важные данные. Это позволяет получать root-доступ к гаджетам производства компаний LG, Motorola, Samsung, OnePlus и, возможно, других вендоров.

JavaScript: includes vs indexOf

Reading time2 min
Views61K
Начиная с ECMAScript 2016 в JavaScript появился новый метод includes для работы с массивами. По своей сути он очень сильно напоминает indexOf. В этой статье я хочу рассмотреть подробнее для чего был введен этод метод и в чем его отличие от indexOf.

image
Читать дальше →

FreePBX: первые шаги по граблям

Reading time6 min
Views135K
Начиная знакомство с FreePBX, даже опытные системные администраторы зачастую допускают одни и те же ошибки, которые способны серьезно испортить настроение и отбить всякое желание продолжать освоение этой системы.


Читать дальше →

Протокол Z-Wave становится открытым

Reading time3 min
Views20K
Недавно были опубликованы в открытом доступе спецификации протокола Z-Wave, одного из самых популярных протоколов в домашней автоматизации. Нет, это не утечка, а осознанный шаг компании Sigma Designs, владельца протокола Z-Wave. На сегодняшний день Z-Wave используется внутри десятков миллионов умных домов, и открытие спецификации стандарта явно пойдёт на пользу популярности Z-Wave.


Давайте разберёмся, что же они там открыли...

Примеры кода на 39 эзотерических языках программирования

Reading time8 min
Views93K
Кто-то ради шутки, кто-то чтобы доказать существование или опровергнуть гипотезу, кто-то для разминки мозгов (путешествуя по поверхности бутылки Клейна или в четырехмерном пространстве), но сотни людей создали «эзотерические» языки программирования. Я пролистал около 150 таких языков и больше никогда не смогу быть прежним.



«Argh!», «Oof!», «2-ill», «Nhohnhehr», «Noit o' mnain gelb», «DZZZZ», «Ypsilax», «YABALL», fuckfuck — это заклинания, поэзия только названия… под катом — примеры кода на самых вырвиглазных языках программирования.

Кроличья нора глубока.

QEMU/KVM и установка Windows

Reading time6 min
Views181K

Хотим мы того или нет, но программы, для которых необходима Windows, никуда из офисов не исчезли. В ситуации, когда их использование безальтернативно, лучше иметь виртуальную ОС, например для того, чтобы подключиться к аудио-конференции через Skype for Business.




В этой статье я расскажу, как можно с минимальными издержками установить гостевую ОС Windows на гипервизоре QEMU с помощью графического интерфейса virt-manager. Мы нанесем на карту все подводные камни и рифы, а жучков аккуратно посадим в банку.

Читать дальше →

В Оксфордском музее собрали портреты насекомых из десятков тысяч макро-фотографий

Reading time3 min
Views11K


Весной этого года британский фотограф Левон Бисс совместно с Оксфордским музеем естественной истории представил проект «Микроскульптура». Заглянув на территорию музея, его посетители оказываются окружены трехметровыми портретами микроскопических насекомых. Помимо невероятной красоты, эти фотографии представляют собой и научную ценность. Зачастую многие насекомые не превышают одного сантиметра в длину, и все тонкие детали, «микроскульптура» тела скрыты от человеческого глаза. Неудивительно, что именно этот энтомологический термин послужил названием для совместного проекта ученого и фотографа.

Запускаем i2pd в контейнере Docker на CentOS 7

Reading time3 min
Views10K

image На Хабрахабре есть отличная статья по i2pd. Единственный недостаток проекта в том, что его авторы предоставляют пакеты только для Ubuntu и Debian, что составляет определённое неудобство для пользователей CentOS.


Владельцу домашнего NAS на CentOS 7 вроде меня остаётся либо собирать i2pd из исходников, либо воспользоваться Docker, чтобы установить его поверх образа Debian Jessie.


Итак, статья посвящена созданию контейнера с i2pd в Docker под CentOS 7.

Читать дальше →

node-direct — один NodeJS сервер на несколько сайтов

Reading time5 min
Views6.2K

tl;dr


С node-direct можно заливать серверные .js файлы и обращаться к ним так же, как к .php скриптам: example.com/foo.srv.js.


  1. Установка.


    npm install -g node-direct

  2. Конфигурация nginx.


    location ~ \.srv\.js$ {
            root <path_to_website_files>;
            proxy_pass http://localhost:<port>;
            proxy_set_header X-Requested-File-Path $document_root$uri;
    }

  3. Запуск.


    node-direct --port=<port>

  4. Скрипт foo.srv.js, где req и res созданы сервером express.


    module.exports = function(req, res) {
            const someModule = require('some-module');
            res.send('Hello world!');
    }


Введение


Когда NodeJS стал более-менее популярным, мне было нелегко осознать, что с ним всё не так просто, как с PHP. Используя последний, можно было создать .php файл, залить его на сервер, обратиться по адресу example.com/путь/имяфайла.php и радоваться. Такая простота развертывания скриптов служила одной из причин, почему "пых" стал таким популярным.


В свою очередь, NodeJS, независимо от сложности приложения, заставляет очень многие вещи делать руками.


  • Гоняй каждое приложение на собственном порту
  • Определи роуты самостоятельно
  • Настрой деплой
  • Убедись, что приложение работает и после перезагрузки сервера
  • Не забудь сделать так, чтоб при изменении файлов, NodeJS сервер перезагружался
Читать дальше →

Как MikroTik видит соседей. Обновление Neighbor discovery в RouterOS 6.38

Reading time3 min
Views76K
Служба обнаружения соседних маршрутизаторов и совместимого оборудования в RouterOS присутствует давно. К сожалению, над схемой функционирования “Neighbor Discovery” товарищи админы задумываются редко. Там вроде как будто всё просто, но просто не настолько как кажется.

Наглядной иллюстрацией служат неудачные попытки скрыть информацию о своём маршрутизаторе MikroTik, при этом получать инфу о маршрутизаторах соседей внутри broadcast-домена провайдера. Так сказать, подглядывать за соседями по провайдерскому свитчу. Обычно это выглядит как запрет фаерволом отправки широковещательных пакетов объявления службы discovery UDP 255.255.255.255:5678. Вбив запрещающее правило в конфиг фаервола, некоторые считают, что полностью скрыли свой маршрутизатор от видимости соседями. Но это не так.

image

Читать дальше →

learnopengl. Урок 1.1 — OpenGL

Reading time7 min
Views356K
Здравствуйте. Несколько недель назад я начинал серию переводов статей по изучению OpenGL. Но на 4 статье один хабровчанин заметил, что мои переводы могут нарушать лицензию, по которой распространяются учебные материалы, предоставленные в исходной статье. И действительно, мои переводы нарушали лицензию. Для разрешения этой проблемы я обратился к авторам того набора уроков, но так и не смог добиться нормального ответа. По этой причине я связался с автором другого, не менее (а возможно даже и более) крутого, набора уроков по OpenGL: Joey de Vries. И он дал полное разрешение на перевод его набора уроков. Его уроки гораздо более обширные, чем прошлый набор, поэтому эти переводы растянутся на долго. И я обещаю, будет интересно. Заинтересовавшихся прошу под кат.

Также я встал на распутье: либо я опишу все основы вроде создания окна и контекста в одной статье, чтобы не плодить статьи, но в таком случае такую огромную статью не всякий осилит; либо я также как и раньше буду переводить, опираясь на иерархию оригинала. Я решил выбрать второй вариант.

На счет уроков по Vulkan: к сожалению мне тяжело сейчас написать уроки по данному API по причине скудной видеокарты на данный момент, которая просто не поддерживает Vulkan API, поэтому уроки по данному API будут только после обновления видеокарты.
Читать дальше →

Построчный разбор лицензии MIT

Reading time15 min
Views111K

171 слово, которое должен понимать любой программист


Лицензия MIT – самая популярная лицензия для программ с открытым кодом. Здесь приводится одно из её прочтений, с построчным разбором.

Читаем лицензию


Если вы разрабатываете программы с открытым кодом, и не читали эту лицензию подробно – а она состоит всего из 171 слова – вам нужно этим заняться. Особенно, если вы не занимаетесь лицензиями на ежедневной основе. Отметьте всё, что вам непонятно. А я повторю все эти слова, по порядку и по кусочкам, вместе с контекстом и комментариями. При этом важно представлять себе её целиком.
Читать дальше →

Мониторим клиентские ПК в Microsoft AD с помощью Zabbix. Часть 1 — Автоустановка

Reading time9 min
Views31K
Имеется несколько сотен клиентских машин на базе ОС windows 7 в домене microsoft AD, хочется их мониторить, и помимо обычных cpu, mem, disk и т. п. неплохо было бы получать информацию о состоянии smart дисков, информацию с usb ибп, при этом все должно устанавливаться автоматически, и в случае необходимости обновляться. Про шаблоны, настройки и alert скрипт на сервере я напишу позже, пока займемся подготовкой скрипта на powershell для установки агентов. На текущий момент актуальная версия zabbix — 3.x.
Читать дальше →

Строим свой full-stack на JavaScript: Клиент

Reading time12 min
Views31K

JavaScript на клиенте быстро меняется: библиотеки, фреймворки, упаковщики быстро появляютcя и сменяют один другой. Но несмотря на это, многие ключевые операции одинаковы для любого клиентского приложения. А в современных фронт-энд фреймворках, при всем их разнообразии, есть много общего.

Читать дальше →

Information

Rating
Does not participate
Location
Снежинск (Челябинская обл.), Челябинская обл., Россия
Date of birth
Registered
Activity