Как стать автором
Обновить
12
0

Пользователь

Отправить сообщение

Нет ничего проще, чем вызвать функцию, я сам это делал неоднократно

Время на прочтение 12 мин
Количество просмотров 35K

Предшествующая статья про исключения в С++ оставила кучу тёмных мест,
главное, что осталось непонятным — так как же всё-таки осуществляется
передача управления при возбуждении исключения?
С SJLJ всё понятно, но, утверждается, что эта технология практически
вытеснена некоторым без-затратным (при отсутствии исключений) табличным механизмом.
А вот что это за механизм такой и как он устроен, будем разбираться под катом.
Читать дальше →
Всего голосов 56: ↑55 и ↓1 +54
Комментарии 7

Кратко о форматах TLV, BER, CER, DER, PER

Время на прочтение 8 мин
Количество просмотров 14K

Я хотел бы кратко рассказать о таких форматах данных, распространенных в ИТ-индустрии, в том числе в области инфраструктур открытых ключей (ИОК), смарт-картах, включая документы нового поколения на базе смарт-карт, в мобильной связи. Хотя рассматриваемые форматы и связаны с ASN.1, но некоторые из них ушли далеко за пределы этой области. О некоторых из них многие знают, но не все знают настолько, чтобы, допустим, уметь отличать BER от DER, а некоторые варианты типа PER вообще являются экзотикой.

Глубоко в тему погружаться не буду. Просто познакомлю с главными особенностями, чтобы понимать, что это такое и с чем это едят. Досконально и в полном объеме всё это описано в соответствующих стандартах ITU-T X.690 и ISO 7816.

Одна из моих мотивирующих задач — это уложить тему в своей голове по полочкам.

Правила абстрактной нотации (ASN.1) используются, когда надо специфицировать формат некой структуры данных. Сами правила описаны в стандартах ITU-T X.680–X.683. Пожалуй, что наиболее распространенный вариант применения — это форматы сертификатов X.509 и всего, что имеет к ним отношение. Пример текстовой нотации может выглядеть как-то так:

Читать далее
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 3

Памятка пользователям ssh

Время на прочтение 13 мин
Количество просмотров 1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Всего голосов 360: ↑352 и ↓8 +344
Комментарии 148

Иногда ответ не «42»

Время на прочтение 3 мин
Количество просмотров 19K
Доброй вам пятницы, хабралюди. У меня с друзьями есть такая традиция — мы собираемся и вместе программируем. Раньше у нас такая работа была, а сейчас уже просто традиция — кодобредогенерация. Мы выбрали несложную задачку и нарисовали решений кто во что горазд. Код будет ближе к концу статьи, но не спешите листать вниз, надо же сначала объяснить, что это за код и как мы пришли к нему.

Сама задача — получить число 0x17 самым внезапным образом.


Внимание! Данный пост оскорбляет чувство прекрасного и практики программирования на C. Читайте, воспринимайте и комментируйте на свой страх и риск.

Talk is cheap. Show me the code.
Всего голосов 42: ↑40 и ↓2 +38
Комментарии 38

Как смотреть SDDL и не ломать глаза о точки с запятыми

Время на прочтение 4 мин
Количество просмотров 19K


Мой путь в ИБ начался с удивительного открытия: «безопасно ≠ зашифровано». Это сейчас такое утверждение выглядит простым и очевидным, а на первом курсе осознание этого факта произвело эффект сравнимый с ментальной атомной бомбой. Информационная безопасность атаковала расширением границ предметной области: оказалось, что криптография — это только один рубеж защиты, а ещё есть юридические, организационные, да и просто физические, в конце концов. Один из теоретических аспектов гласил «Все вопросы безопасности информации описываются доступами субъектов к объектам». Заучил, нарисовал мандатную и дискреционную модели доступов, рассказал, сдал и забыл.

Я специализируюсь на анализе безопасности Windows приложений. Довольно часто изучение именно различных прав доступа занимает существенную долю исследования. Чтобы автоматизировать процесс поиска странных или неправильных прав доступа пришлось разбираться в SDDL (Security Descriptor Definition Language). Кому интересно научиться читать права в форме SDDL (например что-то такое O:SYG:SYD:(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)) и познакомиться с моей утилитой для работы с дескрипторами в таком формате, добро пожаловать под кат.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 17

Собираем «Тревожный чемоданчик». Мнение спортивного туриста

Время на прочтение 18 мин
Количество просмотров 204K
Когда началась война, все произошло так быстро, что я не могла ни понять, что происходит, ни подумать о том, что хотела бы взять с собой, когда мы убегали. (из интервью сирийской беженки)

Мне почему-то не хочется делать вид, что ничего не происходит. Потому что нынешняя военная эскалация напоминает затишье перед бурей, похожие ощущения были в январе 2020, когда «коронавирус же не у нас, он в Китае». В итоге жизнь подтвердила несостоятельность подобного «психологического» трюка. Поэтому, думая про худшее и надеясь на лучшее, я написал недавно эмоциональную заметку про «тревожный чемоданчик». Написана она с учетом моего опыта спортивного туризма (инструктор гор/пеш), поэтому профессиональные военным (выживальщикам?) просьба отнестись с пониманием. Писалось с акцентом на беларускую аудиторию, и вот искренне надеюсь, что (НЕ) пригодится всем. Просьба не политизировать данную статью, а воспринимать as is. Те кто затевает войны — Хабр не читают. Мы все в одной лодке, надеюсь написанное под катом хоть немного поможет этой «лодке» быть на плаву…


Собираем тревожный чемоданчик вместе
Всего голосов 277: ↑250 и ↓27 +223
Комментарии 391

Как незаметно стать антиваксером (возможно, это про вас) — ликбез для взрослых

Время на прочтение 18 мин
Количество просмотров 36K


Как показала недавняя практика, в вакцинах в России разбираются в среднем никак.

Во-первых, их надо обновлять. Если вы не обновляли «детские» прививки, поздравляю, вы пассивный антиваксер и потенциально представляете опасность для общества.

Во-вторых, просто знать, какие вакцины делать и когда, какие они бывают и что можно «добрать» для защиты организма, если этого не делали вам в детстве.

В-третьих, я что-то не вижу всплеска вакцинации от пневмококков, хотя они прямо ассоциированы с COVID (то есть могут настигнуть больного после вируса). В первый год, до появления вакцины от COVID-19, логично было ждать резкого скачка вакцинации от них, но нет.

Давайте проговорим ещё раз, от каких болезней можно и нужно привиться взрослым, когда и как.
Читать дальше →
Всего голосов 142: ↑119 и ↓23 +96
Комментарии 160

Как уйти с государственной службы и остаться в живых

Время на прочтение 4 мин
Количество просмотров 80K

"И как же ты это представляешь? А кто будет за тебя работать? Ты же предаёшь семью" - это первые слова моего руководителя на фразу о возможном уходе.

Здравствуйте, меня зовут Михаил, и я бюджетник. Программист, который смог вырасти от простого джуна-программиста до начальника отдела разработки ИС. К такому долгому карьерному росту я шёл целых 8 лет, благодаря которым я нашёл несколько хороших друзей и приятелей, классный коллектив, да и просто вырос от зеленого студента до руководителя (наверное даже очень неплохого). При этом было много НО. Именно о таких НО и пойдёт речь.

Читать далее
Всего голосов 318: ↑313 и ↓5 +308
Комментарии 198

Векторные пространства

Время на прочтение 18 мин
Количество просмотров 30K

При проведении научных и прикладных исследование часто создаются модели, в которых рассматриваются точки и/или векторы определенных пространств. Например, в моделях шифров на эллиптических кривых используются аффинные и проективные пространства. К проективным прибегают тогда, когда необходимо ускорить вычисления, так как в формулах манипулирования с точками эллиптической кривой выводимых в рамках проективного пространства отсутствует операция деления на координату, которую в случае аффинного пространства обойти не удается.

Операция деления как раз одна из самых «дорогих» операций. Дело в том, что в алгебраических полях, а соответственно и в группах операция деления вообще отсутствует и выход из положения (когда не делить нельзя) состоит в том, что операцию деления заменяют умножением, но умножают не на саму координату, а на обращенное ее значение. Из этого следует, что предварительно надо привлекать расширенный алгоритм Евклида НОД и кое что еще. Одним словом, не все так просто как изображают авторы большинства публикаций о ЕСС. Почти все, что по этой теме опубликовано и не только в Интернете мне знакомо. Мало того, что авторы не компетентны и занимаются профанацией, оценщики этих публикаций плюсуют авторов в комментариях, т. е. не видят ни пробелов, ни явных ошибок. Про нормальную же статью пишут, что она уже 100500-я и от нее нулевой эффект. Так все пока на Хабре устроено, анализ публикаций делается огромный, но не качества содержания. Здесь возразить нечего — реклама двигатель бизнеса.
Читать дальше →
Всего голосов 13: ↑10 и ↓3 +7
Комментарии 3

Опасные слова: чего не стоит говорить при носителях английского

Время на прочтение 5 мин
Количество просмотров 78K

Любите Захер? Я люблю. Но испытываю на этот счет смешанные чувства. Если бы Франц Захер запускал производство своего торта в сегодняшней России, добрые люди посоветовали бы ему подумать над сменой названия. Так же, как подсказали в свое время сменить фамилию первому болгарскому космонавту Георгию Какалову.

Русское ухо мгновенно улавливает неприличные коннотации во вполне пристойных иностранных словах. В той же степени, что иностранцы – в нашей речи. Существует немало русских слов, которые вызывают вопросы у англоговорящих людей. Также есть особенности русского произношения, которые превращают нейтральные английские слова в ругательные. Об этих двух категориях и поговорим.

Читать далее
Всего голосов 112: ↑95 и ↓17 +78
Комментарии 264

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player

Время на прочтение 16 мин
Количество просмотров 22K

Компания Microsoft не оставляет попыток победить в бесконечной войне с эксплоитописателями, раз за разом реализуя новые техники по защите приложений. На сей раз разработчики операционной системы Windows подошли к решению данного вопроса более фундаментально, переведя свой взгляд на корень проблемы. Работа почти каждого эксплоита так или иначе нацелена на перехват потока исполнения приложения, следовательно, не помешало бы "научить" приложения следить за этим моментом.
Концепия Control Flow Integrity (целостность потока исполнения) была описана еще в 2005 году. И вот, 10 лет спустя, разработчики из компании Microsoft представили свою неполную реализацию данного концепта — Control Flow Guard.


Что такое Control Flow Guard


Control Flow Guard (Guard CF, CFG) — относительно новый механизм защиты Windows (exploit mitigation), нацеленный на то, чтобы усложнить процесс эксплуатации бинарных уязвимостей в пользовательских приложениях и приложениях режима ядра. Работа данного механизма заключается в валидации неявных вызовов (indirect calls), предотвращающей перехват потока исполнения злоумышленником (например, посредством перезаписи таблицы виртуальных функций). В сочетании с предыдущими механизмами защиты (SafeSEH, ASLR, DEP и т.д.) являет собой дополнительную головную боль для создателей эксплоитов.

Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Комментарии 3

эффективное использование vim: «from the very begining»

Время на прочтение 7 мин
Количество просмотров 26K
«Для меня vi это Дзен.
Использование vi — это практика дзена.
Каждая команда является коаном.
Полный смысла для пользователя,
Бессмысленный для непосвященного.
Вы познаете истину каждый раз когда вы его используете.»
--reddy@lion.austin.

на сколько хорошо ты знаешь язык vim?
посмотри на клавиатуру,
можешь ли ты сказать что выполняет каждая буква?
как много ты знаешь?
как много используешь?


эффективное использование vim
Всего голосов 92: ↑83 и ↓9 +74
Комментарии 114

Ссылки и ссылочные типы в C++

Уровень сложности Средний
Время на прочтение 47 мин
Количество просмотров 113K

Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это пятая статья из серии, список предыдущих статей приведен в конце в разделе 6. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Эта статья посвящена ссылкам и ссылочным типам в C++.


Термин «ссылка» широко используется и в обыденной жизни, в компьютерных и других науках и поэтому его смысл сильно зависит от контекста использования. В языках программирования под ссылкой понимают небольшой объект, главная задача которого обеспечить доступ к другому объекту, расположенному в другом месте, имеющему другой размер и т.д. Объекты ссылки удобно использовать на стеке, они легко копируются, что позволяет получить доступ к объекту, на который эта ссылка ссылается, из разных точек кода. В той или иной форме ссылки поддерживаются во всех языках программирования. В ряде языков программирования, таких как C#, Java, Pyton и многих других, ссылки, по существу, являются концептуальным ядром.



В C роль ссылок играют указатели, но работать с ними не очень удобно и в C++ появилась отдельная сущность — ссылка (reference). В C++11 ссылки получили дальнейшее развитие, появились rvalue-ссылки, универсальные (передаваемые) ссылки, которые играют ключевую роль в реализации семантики перемещения — одном из самых значительных нововведений C++11.



Итак, попробуем рассказать о ссылках в C++ максимально подробно.


Читать дальше →
Всего голосов 34: ↑34 и ↓0 +34
Комментарии 26

Возможна ли анонимная оплата в Apple Pay?

Время на прочтение 13 мин
Количество просмотров 7.9K

Конечно, нельзя называть Apple Pay анонимным в принципе, хотя бы потому что к ней привязана наша банковская карта. Однако, в момент оплаты что о нас узнаёт продавец? Какие наши персональные данные получает продавец от Apple Pay? Можно ли избежать передачи данных и, тем самым, сделать оплату анонимной в глазах продавца?

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 4

PE (Portable Executable): На странных берегах

Время на прочтение 18 мин
Количество просмотров 150K


Эта статья представляет из себя рассказ о том как устроены исполняемые файлы (в точку! Это именно те штуки, которые получаются после компиляции приложений с расширением .exe). После того, как написан код, подключены библиотеки, подгружены к проекту ресурсы (иконки для окон, какие-либо текстовые файлы, картинки и прочее) всё это компонуется в один единственный исполняемый файл, преимущественно с расширением .exe. Вот именно в этот омут мы и погрузимся.
*Статья находится под эгидой «для начинающих» поэтому будет изобиловать схемами и описанием важных элементов загрузки.
На палубу
Всего голосов 37: ↑32 и ↓5 +27
Комментарии 22

[Пятничное] Теория Жоп

Время на прочтение 5 мин
Количество просмотров 195K

Эту полу-шуточную теорию о проектном управлении я излагал коллегам по ИТ цеху лет 15 назад, и тогда же неоднократно слышал советы загрузить этот текст на Хабр, но руки не дошли. На днях, разгребая старые файлы наткнулся на свои записи и решил все таки поделиться ими с Вами. Частое употребление ключевого слова к сожалению, неизбежно и не отделимо для целостности этого текста, прошу принимать или нет 'as is'. Итак...

Каждая карьера развивается от Жопы к Жопе, и никак иначе. Хочешь повышения - ищи Жопу и принимай, как говорят в Америке, "challenge". Если Вам предлагают возглавить новый проект, либо занять какую то должность, да что угодно - знайте, там Вас ждет Жопа. Иначе не предложили бы, а сами бы справились. Равно как и если Вы ожидаете избавиться от надоевшей Вам сейчас деятельности, надеясь вырваться из "этого ада" и заняться "чем то новеньким" - будьте готовы встретиться с Большой Жопой.

Читать далее
Всего голосов 496: ↑485 и ↓11 +474
Комментарии 99

Список ноотропов, покупка которых не окажется пустой тратой денег

Время на прочтение 5 мин
Количество просмотров 296K

Небольшая подборка веществ помогающих нашим мозгам работать чуточку лучше. Большинство из них продается в ближайшей аптеке, отпускается без рецепта, имеют доказательную базу и плюс-минус универсальны, так как «качают» самое важное — мотивацию, энергию и память.

Читать далее
Всего голосов 121: ↑85 и ↓36 +49
Комментарии 238

Почему все драйверы в Windows датируются 21 июня 2006 года

Время на прочтение 3 мин
Количество просмотров 67K

Почему в каждой новой версии Windows все драйверы датированы одним и тем же днём 21.06.2006 г.? Microsoft вообще когда-нибудь обновляет драйверы или они там собралась просто группа бездельников? Наконец-то мы узнали ответ на этот вопрос из заметки в неофициальном блоге The Old New Thing на сайте Microsoft.

Один из разработчиков компании Microsoft под ником zac_l объяснил, в чём дело. Сакральная дата 21.06.2006 распространяется даже на драйверы вроде Storage Spaces и современные процессоры, которые вообще не существовали десять лет назад, так что о лености разработчиков здесь речи не идёт. Причина в другом.
Читать дальше →
Всего голосов 56: ↑53 и ↓3 +50
Комментарии 216

Структура и модель выполнения .NET Core приложений

Время на прочтение 15 мин
Количество просмотров 51K
В этой статье я рассмотрю компоненты платформы .NET Core 2.0, необходимые для загрузки и выполнения .NET Core-приложений, а также артефакты для двух возможных типов развертывания.

Текст объемный и рассчитан на:

  • начинающих разработчиков, которые только знакомятся с платформой .NET Core;
  • опытных разработчиков, выполняющих роль DevOps-инженеров в produсtion-окружении.

В статье не упоминается процесс создания приложений при помощи SDK (dotnet CLI), однако эта информация будет полезной для понимания, как работает SDK, а именно её основной компонент (ядро) — «драйвер» dotnet.dll, поскольку эта библиотека является управляемой сборкой и выполняется на .NET Core.

Примеры процессов выполнения описаны для ОС Windows, но работают по тому же принципу и на других ОС (с учетом различных расширений исполняемых файлов и нативных библиотек).
Читать дальше →
Всего голосов 42: ↑41 и ↓1 +40
Комментарии 10
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность