Pull to refresh
50
-3
Евгений @ser-mk

Разработчик, исследователь, аналитик

Send message

Распределённые транзакции

Level of difficulty Medium
Reading time 10 min
Views 31K

На собеседованиях на позицию middle/senior разработчика часто задают вопросы по распределенным транзакциям в микросервисной архитектуре.

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

Я проработал статью и подготовил конспект простыми словами, местами дополнил информацией из других источников и полезными ссылками.

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

Читать далее
Total votes 26: ↑23 and ↓3 +20
Comments 1

Как я отправил деньги на карту друга в Казахстан: Хождение по мукам

Level of difficulty Easy
Reading time 4 min
Views 9.8K

Я сам родился и вырос в Казахстане, высшее получал уже в Томске, поэтому в Казахстане у меня друзья детства, да и сестра до сих пор живет в Караганде. Хотел купить машину, но в Томске не нашел, поэтому попросил друга детства поискать вариант в Казахстане. На днях он позвонил: немецкое авто за очень интересные деньги. Продавал его знакомый, машину мой друг знал с момента приобретения её в салоне. Вердикт - Надо брать!

Деньги человеку нужны были срочно, хотя бы 400 тысяч до вечера. Договорились по телефону: 400 тысяч аванс, а потом уже не торопясь приеду отдам остальную сумму, оформимся. Друг мой выступил гарантом.

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

Читать далее
Total votes 29: ↑18 and ↓11 +7
Comments 18

Хардварный проброс

Level of difficulty Hard
Reading time 9 min
Views 6.9K

Оказывается пробрасывать можно не только сетевые порты, а еще и регистры периферии микроконтроллера(МК). Идея та же самая - открыть периферию для использования вне микроконтроллера. В случае проброса периферии, внешними клиентами будут выступать программы на ПК, и для них мы будем давать доступ к внутренним регистрам микроконтроллера. Для программ это будет выглядеть так, как будто регистры периферии находятся в адресном пространстве компьютера(ПК). Все равно, что эти самые регистры периферии висели бы на одной шине с памятью и другими устройствами ввода-вывода

Два пути как это сделать
Total votes 24: ↑24 and ↓0 +24
Comments 20

Готовим драйвера МК для проброса периферии

Level of difficulty Hard
Reading time 12 min
Views 2.9K

В предыдущей статье рассматривался принцип, как можно прокинуть периферию микроконтроллера (UART, I2C, CAN bus etc) в обычную ПК программу, так как если бы она входила в состав нашего компьютера и висела на обшей шине с памятью. В той публикации рассматривается теория и инструменты, которые позволяют это сделать. В этой части мы рассмотрим, как на практике осуществляется подготовка кода драйверов к инструментизации ADIN LLVM pass и последующей сборке в отдельную динамическую библиотеку, которую вы можете использовать в своих проектах

Готовим код драйверов
Total votes 16: ↑15 and ↓1 +14
Comments 0

Адреса памяти: физические, виртуальные, логические, линейные, эффективные, гостевые

Reading time 6 min
Views 107K
Мне периодически приходится объяснять разным людям некоторые аспекты архитектуры Intel® IA-32, в том числе замысловатость системы адресации данных в памяти, которая, похоже, реализовала почти все когда-то придуманные идеи. Я решил оформить развёрнутый ответ в этой статье. Надеюсь, что он будет полезен ещё кому-нибудь.
При исполнении машинных инструкций считываются и записываются данные, которые могут находиться в нескольких местах: в регистрах самого процессора, в виде констант, закодированных в инструкции, а также в оперативной памяти. Если данные находятся в памяти, то их положение определяется некоторым числом — адресом. По ряду причин, которые, я надеюсь, станут понятными в процессе чтения этой статьи, исходный адрес, закодированный в инструкции, проходит через несколько преобразований.



На рисунке — сегментация и страничное преобразование адреса, как они выглядели 27 лет назад. Иллюстрация из Intel 80386 Programmers's Reference Manual 1986 года. Забавно, что в описании рисунка есть аж две опечатки: «80306 Addressing Machanism». В наше время адрес подвергается более сложным преобразованиям, а иллюстрации больше не делают в псевдографике.
Читать дальше →
Total votes 51: ↑49 and ↓2 +47
Comments 11

Инструменты для пентеста Wi-Fi

Level of difficulty Medium
Reading time 6 min
Views 18K

Это дополнение к основной статье "Как стать гуру или Wi-Fi Cheat Sheet". Я увидел много откликов по данной теме как положительных, так и отрицательных. Кому-то не нравится подача (да, есть свои минусы, но перенести материал из обычной заметки Markdown достаточно сложно), кому-то инструменты, но кто Я такой, чтобы останавливаться. Сегодня я приложу максимально полный список (для меня) инструментов с кратким описанием.

Пора изучать
Total votes 8: ↑8 and ↓0 +8
Comments 3

Абсолютно бесплатный VPN с бесплатного VPS

Reading time 3 min
Views 148K

Думаю про VPN слышали все, и многим приходилось им пользоваться. При этом использование готового VPN, которым руководит какой - то неизвестный человек, не является хорошей идей. Тем более в России на данный момент пытаются блокировать, как сами VPN провайдеры (Windscribe, Proton и другие известные сервисы), так и сами протоколы.

Читать далее
Total votes 96: ↑92 and ↓4 +88
Comments 112

Как Kinect только Pinect

Level of difficulty Medium
Reading time 9 min
Views 3.2K

На мундиале 2018 году в России. Футбольные болельщики со всего мира могли бы увидеть и поиграть в наш отечественный игровой контроллер для писуаров. Не хочется писать по каким организационным причинам этого не случилось. Здесь я хочу рассказать как происходила разработка этого нестандартного игрового аппарата.

Как оно было...
Total votes 18: ↑16 and ↓2 +14
Comments 16

Создаем кибер-разведку в компании на основе OSINT

Reading time 10 min
Views 15K

Привет ХАБР. Тема, которой посвящена эта статья с одной стороны важна, ведь в кибер-пространстве «неспокойно». Каждый день приходят новости, что ту или иную компанию взломали хакеры, получили дампы или зашифровали данные. Защищаться от кибер-угроз, выстраивая целую инфраструктуру из всевозможных средств защиты хорошо и нужно, но никогда не стоит забывать о разведке. В кибер-пространстве как в армии. Хорошо, когда на границах вырыты окопы, дежурит артиллерия и ПВО, но без разведки не понятно куда и чем противник будет атаковать. В цифровом мире базовая военная стратегия в целом не отличается. Разведка важна и нужна, чтобы быть готовыми и собирать данные, которые собирают злоумышленники о вас и вашей инфраструктуре. В этой статье разберем вопрос о том как создавалось направление кибер-разведки(OSINT open-source intelligence ) в компании.

С чего зародилась идея создания направления OSINT?

В наше время стал мейнстримом тренд на защиту персональных данных и всякой конфиденциалки в компании. Запрос на поиск источников утечек и их закрытия очевиден. Самое сложное расставить приоритеты или ответить на вопрос: "Что будем собственно искать?" Если открыть внутренние документы любой компании, то сведений, составляющих какую-либо из тайн (персональные, конфиденциальные, коммерческие) большое количество. Важно выбрать те, которые являются самыми важными для контроля и утечки которых реально можем находить и устранять.

Путем расстановки приоритетов и реальных возможностей мы выделили основные направления для OSINT:

Читать далее
Total votes 16: ↑16 and ↓0 +16
Comments 1

PostgreSQL под капотом. Часть 1. Цикл сервера

Reading time 7 min
Views 14K

Продолжаем изучать исходный код PostgreSQL

В этот раз исследуем главный цикл сервера:

- Принятие входящих подключений;

- Проверка окружения;

- Обработка упавших воркеров.

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 3

Под капотом у компилятора Go: добавление нового оператора в Go — часть 1

Reading time 11 min
Views 9.4K

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

Мы собираемся изменить компилятор Go, добавив новую (условно) языковую фичу, и собрать модифицированный компилятор, чтобы ее опробовать.

Читать далее
Total votes 18: ↑15 and ↓3 +12
Comments 2

Как за неделю превратить Open redirect в RCE

Level of difficulty Medium
Reading time 17 min
Views 8.6K

В этой статье я расскажу вам о том, как ровно год назад я связал в цепочку несколько проблем безопасности для достижения Удаленного выполнения кода (RCE) на нескольких серверах компании VK. Я постарался описать свои шаги в подробностях, так как мне самому, как постоянному читателю отчетов по баг-баунти, всегда хочется понять, как исследователь мыслит во время обнаружения необычных уязвимостей. Надеюсь, для вас эта статья будет интересна.

Читать далее
Total votes 33: ↑33 and ↓0 +33
Comments 17

Коллекционирую лучшие C++ практики

Reading time 3 min
Views 19K

Коллекционирую лучшие C++ практики


Что-то наши публикации всё больше о плохом, чем о хорошем. Здесь баг, тут код с запахом, это антипаттерн, вот так писать не надо. Помогите увидеть светлую сторону программирования на С++. Оставляйте комментарии.

Читать дальше →
Total votes 38: ↑37 and ↓1 +36
Comments 9

nocc — распределённый компилятор для гигантских проектов на С++

Reading time 8 min
Views 13K

У нас есть задача постоянно компилировать тонны плюсового кода. Наш проект — почти 200 000 cpp- и h-файлов, множество Git-веток, сотни разработчиков, десятки билд-агентов: его нельзя единожды скомпилировать, приходится перекомпилировать постоянно, параллельно, разные версии.

Наш проект необычный. Потому что эти 200 000 файлов — это результат автогенерации. Потому что пишем мы на PHP, а потом через KPHP все PHP-исходники превращаются в плюсы. Именно так разрабатывается бэкенд ВКонтакте.

Компилировать тысячи объектников долго. Локально это занимает много часов. Мы использовали distcc — но всё равно медленно. Мы даже пропатчили distcc для поддержки precompiled headers — но даже тогда медленно. И решили написать своё — чтоб стало, наконец, быстро.

В итоге мы написали замену distcc — компилятор nocc. Он не имеет никакого отношения к PHP и даже к KPHP, а просто предназначен для компиляции .cpp.o в промышленных масштабах.

Это техническая статья про параллелизацию, демоны и специфику С++. Ссылки на GitHub и видео приложу в конце статьи.

Читать далее
Total votes 110: ↑108 and ↓2 +106
Comments 69

Налоговый и валютный резидент РФ —последствия приобретения и утраты статусов — полный FAQ с примерами

Reading time 27 min
Views 28K

Друзья, всех приветствую и предлагаю ознакомиться, как мне кажется с довольно полным FAQ по теме налогового и валютного резиденства РФ. По ходу материала есть некоторые примеры, а внизу вопросы & ответы.

Читать далее
Total votes 51: ↑46 and ↓5 +41
Comments 47

SAST для самых маленьких. Обзор open-source инструментов поиска уязвимостей для C/C++

Reading time 33 min
Views 14K


Привет, Хабр!


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

Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 8

Все способы покупки крипты в России: детальный разбор со ссылками

Reading time 15 min
Views 116K

Привязанные к доллару стейблкоины для многих эмигрантов стали чуть ли не главным средством перевода своих денег в неблокируемое и незамораживаемое состояние и вывоза их из РФ. В этом гайде мы разберем нюансы и риски всех основных способов легального приобретения крипты в России.

Читать далее
Total votes 78: ↑74 and ↓4 +70
Comments 30

Самое подробное руководство по установке высокодоступного (почти ಠ ͜ʖ ಠ ) Kubernetes-кластера

Reading time 22 min
Views 25K

В предыдущей статье я рассказывал, как построить простой кластер Kubernetes с одним мастер-узлом. Прошло время, опали листья... и мне захотелось большего, поэтому решил позариться на высокодоступные кластеры. В интернете много статей о том, как построить подобное решение, и давайте даже опустим тот факт, что многие из них уже устарели. Одно дело — установить кластер, а как же обслуживание: удаление, добавление, замена узлов? Про это и не вспоминают! В итоге оказалось, что не всё так просто, и вот, спустя больше ста установок, удалений и замен, у меня получилось собрать подробнейшее руководство по установке и, главное, обслуживанию highly available кластера с помощью Kubespray.

Читать далее
Total votes 22: ↑22 and ↓0 +22
Comments 19

Топ-10 докладов на С++ конференциях 2019-2022 года

Reading time 3 min
Views 9.3K

В мире проходит множество интересных конференций по программированию. К сожалению, у нас нет телепорта, чтобы посещать каждую из них и слушать все интересующие нас доклады. Но зато мы можем посмотреть их на YouTube!

Читать далее
Total votes 21: ↑19 and ↓2 +17
Comments 3

Страны Юго-Восточной Азии запускают визы для цифровых кочевников

Reading time 4 min
Views 31K


Вирус отступает, и страны просыпаются.


Государства Юго-Восточной Азии, известные своими прекрасными пляжами и низкой стоимостью жизни, наконец-то запускают визы для тех, кто подходит под определение Digital Nomad. Получить билет в рай смогут заявители с годовым доходом не меньше 24 тысяч долларов в Малайзии и 80 тысяч в Таиланде.

Читать дальше →
Total votes 52: ↑49 and ↓3 +46
Comments 46

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity