Как стать автором
Обновить
5
0.2
hMartin @hMartin

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

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

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

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

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Всего голосов 445: ↑437 и ↓8+489
Комментарии367

Как работает сеть в контейнерах: Docker Bridge с нуля

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

В этой статье мы собираемся разобраться со следующими вопросами:

* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

* Как реализовать публикацию портов, подобную Docker?

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

Как избавиться от нестабильных тестов

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

Устали от нестабильных тестов?

Автоматизированные тесты часто ведут себя нестабильно. Логичное решение в такой ситуации — немедленно исправить такие тесты или избавиться от них. Но что, если тестов — тысячи, инженеров, которые могут их исправить, не так много, а избавление от большого количества тестов слишком рискованно? В таком случае нужно сначала найти самые плохие тесты и начать работу с ними. Мы в Wrike набили много шишек в попытке решить эту проблему, но в конце концов справились. В этой статье я хочу поделиться нашей историей и показать схему, с помощью которой и вы сможете контролировать стабильность тестов.

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

Пакуем весь трафик в Ping message, чтобы не платить за интернет | ICMP NAT traversal

Уровень сложностиСложный
Время на прочтение29 мин
Количество просмотров94K

Бывало ли у вас такое, что вы подключились к общественной сети или мобильному интернету, но он себя странно ведёт. Надпись «Подключено, без доступа к интернету» отсутствует, устройство думает, что всё нормально. Вы открываете браузер и видите «Пройдите проверку личности в сети нашего кафе» или в случае с мобильным интернетом «Пополнить баланс можно тут, тут и тут».

Так вот, переходя ближе к теме. Вы можете воспроизвести подобное поведение очень просто прямо сейчас при помощи вашего мобильного телефона и ноутбука. Я в своём конкретном кейсе буду пользоваться услугами оператора красного цвета, однако проблема актуальна для всех текущих 4 монополистов рынка сотовой связи. Как вам, скорее всего, уже известно, они около года меняют свою политику, внедряя одно интересное нововведение — с вас требуют дополнительной платы за раздачу интернета поверх основного пакета. То есть вы не можете взять и использовать свои 7 гигов на месяц как ресурс для раздачи при помощи точки доступа. Для точки доступа вам предлагают отдельный, зачастую совсем невыгодный тариф. Конечно, можно сменить основной тариф на специальный «тариф для раздачи» и платить втридорога, но, как вы понимаете, сегодня мы в потребителя будем играть совсем недолго. Сейчас по пунктам нужно доказать нечестность подобной политики и с чувством завершённого введения перейдём к непосредственно технотексту.

Подобные условия пользования, само собой, порождают внутреннее недовольство пользователей:

За интернет они платят? — Да.

Раздача как-либо использует ресурсы провайдера сверх нормы? — Нет.
Читать дальше →
Всего голосов 233: ↑231 и ↓2+294
Комментарии91

Слышали ли вы про язык «e»? А ведь он был продан за $315 миллионов долларов

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

Все знают про язык программирования C, поменьше — про язык программирования F, кое‑кто про B, предшественник C, а вот знаете ли вы про язык «e»? Их кстати два — один с большой буквы «E», а другой с маленькой «e».

Вы наверное подумали, что это еще один безызвестный язык от какого‑нибудь аспиранта провинциального европейского университета. Однако интерпретатор маленького «e» под названием Specman продали в 2005 году большой компании Cadence Design Systems за $315 милионов долларов. Причем президента продающей компании Verisity звали Гаврилов. Также можно нагуглить, что этот язык использовали внутри компании Intel. Что же в нем такого, что вызвало интерес у толстых богатых корпораций?

Читать далее
Всего голосов 50: ↑40 и ↓10+43
Комментарии47

Полное понимание асинхронности в браузере

Время на прочтение24 мин
Количество просмотров109K
Про асинхронность JavaScript написано много статей, документации и книг. Но вся информация сильно распределена по интернету, поэтому сложно быстро и полностью разобраться, что к чему, и составить цельную картину в голове. Не хватает одного исчерпывающего гайда. Именно эту потребность я и хочу закрыть своей статьёй.

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

Исследование формата бинарных файлов на Python

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

Реверс-инжиниринг неизвестного бинарного формата файла – задачка нечастая, но, на мой взгляд, вкусная. Самое то, чтобы в пятницу с утра отвлечься от организационной текучки, техподдержки, бизнес-планов, заполнения восьмёрок в системах отчётности - и поиграть в Шерлока Холмса. В этой статье я расскажу об опыте изучения бинарного файла с временными данными технологических параметров и о небольшой фишке чтения хитрым способом сохранённых строк из другого формата. Файлы несложные, времени на анализ потребовалось немного, но мне было интересно, и вам, я надеюсь, тоже будет интересно.

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

Пишем обёртку для API Токийской фондовой биржи на Golang

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

Целевым REST API будет jquants-api, описанный в предыдущей статье.

Я решил реализовать обёртку на Golang, что оказалось чрезвычайно быстро и удобно. В итоге я выполнил эту задачу за один вечер, а получившуюся Golang-обёртку с базовыми функциями загрузил на GitHub.

В этой статье я вкратце расскажу о процессе написания API и моих шагах по реализации проекта.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+32
Комментарии6

Эксплойтинг браузера Chrome, часть 1: введение в V8 и внутреннее устройство JavaScript

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


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

Работая дверями в Интернет, браузеры в то же время создают существенные угрозы целостности персональных вычислительных устройств. Почти ежедневно мы слышим новости наподобие "баг Google Chrome активно используется как Zero-Day" или "Google подтвердила четвёртый эксплойт Zero-Day Chrome за 2022 год". На самом деле, эксплойты браузеров не представляют собой ничего нового, их находят уже долгие годы, начиная с первого эксплойта для удалённого исполнения кода, задокументированного как CVE-1999-0280. Первым потенциально публичным раскрытием браузерного эксплойта, используемого в реальных условиях, стал эксплойт Aurora браузера Internet Explorer, который атаковал Google в декабре 2010 года.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии3

Разбираемся с поддержкой x64 в WPE Pro

Время на прочтение9 мин
Количество просмотров52K
image

Думаю, что большинство из местных обитателей знакомы с понятием сниффера. Несмотря на то, что конечная цель у них одна и та же (перехват пакетов, соответствующих определённым критериям), достигают они её совершенно разным образом. Какой-то софт слушает указанный сетевой интерфейс (например, Wireshark, где это реализовано при помощи библиотеки Pcap), а какой-то — перехватывает вызовы ответственных за взаимодействие с сетью WinAPI-функций. И у того, и у другого метода есть свои плюсы и минусы, однако если по задаче необходим перехват пакетов от конкретного заранее известного приложения, то второй вариант, как правило, банально удобнее. В этом случае нет нужды узнавать IP-адреса и порты, которые использует данная программа (особенно учитывая тот факт, что их может быть довольно много), и можно просто сказать «я хочу перехватывать все пакеты вот этого приложения». Удобно, не правда ли?

Пожалуй, самым популярным на сегодняшний день сниффером, работающим по принципу перехвата вызовов определённых WinAPI-функций, является WPE Pro. Возможно, многие из вас слышали о нём на различных форумах, посвящённых онлайн-играм, ведь именно для получения преимуществ в различных играх этот сниффер в большинстве случаев и используется. Свою задачу он выполняет прекрасно, однако у него есть один неприятный недостаток — он не умеет работать с 64-битными приложениями. Так уж вышло, что по одной из возникших задач мне как раз понадобилось перехватывать пакеты от 64-битного приложения, и я посмотрел в сторону Wireshark. К сожалению, использовать его в данной ситуации было не очень удобно — исследуемое приложение отправляло данные на разные IP-адреса, каждый раз открывая новый порт. Погуглив немного, я обнаружил, что готовых аналогов WPE Pro с поддержкой x64 нет (если они всё же есть, буду признателен за ссылки в комментариях — обратите внимание, что речь идёт о Windows). Автор WPE Pro не оставил никаких контактных данных на официальном сайте и в самом сниффере, так что я принял решение разобраться в этом вопросе самостоятельно.

Как протекал процесс и что из этого вышло, читайте под катом.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии6

150+ хакерских поисковых систем и инструментов

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

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

Пост состоит из 8 объемных разделов:

1. метапоисковики и поисковые комбайны;

2. инструменты для работы с дорками;

3. поиск по электронной почте и логинам;

4. поиск по номерам телефонов;

5. поиск в сети TOR;

6. поиск по интернету вещей, IP, доменам и поддоменам;

7. поиск данных об уязвимостях и индикаторов компрометации;

8. поиск по исходному коду.

В этом списке собраны инструменты, которые члены нашей команды используют в работе. И все же, эта подборка пригодится не только пентестерам, но и разработчикам, журналистам, HR, маркетологам и всем, кто много ищет в интернете. Знания — это сила. Используйте их во благо.

Читать далее
Всего голосов 54: ↑51 и ↓3+58
Комментарии6

Глубокое погружение в Java Memory Model

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


Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.


В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

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

20 лет проблем приема платежей

Время на прочтение11 мин
Количество просмотров22K
image
За логотип спасибо yarbabin

Электронные системы расчетов существуют в интернете уже давно, а баги на них встречаются двадцатилетней давности. Мы находили критические уязвимости, позволяющие угнать деньги и накрутить баланс. Сегодня мы разберем типовые реализации приема платежей и связанные с ними проблемы безопасности.
Читать дальше →
Всего голосов 109: ↑108 и ↓1+131
Комментарии20

Как распознать незрелого руководителя

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

Часто мотивированный сотрудник быстро растёт по компетенциям и в один момент взлетает на позицию руководителя. Verno, центр экспертизы red_mad_robot, напоминает: управленческая роль принципиально отличается от исполнительской.

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

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

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

Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее
Всего голосов 66: ↑65 и ↓1+83
Комментарии27

IKEA SOLHETTA — ИКЕА снова сделала уникальные лампы

Время на прочтение2 мин
Количество просмотров61K
К сожалению, IKEA уходит из России, но ещё есть шанс купить их товары, заказав их до 20:00 15 августа.
В начале 2022 года в магазинах IKEA появились новые светодиодные лампы под названием SOLHETTA. Я их протестировал и обнаружил, что ИКЕА снова «впереди планеты всей»: они сделали суперэффективные и «холодные» лампочки.


Читать дальше →
Всего голосов 105: ↑104 и ↓1+127
Комментарии134

It is Wednesday, my java dudes, или насколько сложно сделать свою JVM

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

Что делать, если накануне переезда повысилась тревожность, а привычные методы не приносят успокоения?

Конечно же вырабатывать дофамин через решение упоротых инженерных задач!

Мне стало интересно - насколько тяжко было бы сделать свой интерпретатор байт-кода Java? И насколько сложно было бы научить его “новым трюкам”?

Писать я буду на Rust, поэтому и проект, не мудрствуя лукаво, назвал Rjava.

Читать далее
Всего голосов 55: ↑54 и ↓1+65
Комментарии26

ТВ вместо монитора: HDR, 120 Гц и вот это всё

Уровень сложностиПростой
Время на прочтение20 мин
Количество просмотров90K

Разбираемся, зачем экранам 500 Гц, почему телевизор не монитор, за сколько часов выгорит OLED и как вообще это всё работает.

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

Изучаем, как собрать свой двигатель — на случай «Большого ПЭ» и не только

Время на прочтение17 мин
Количество просмотров47K
Картинка Freepik и Flickr

Энергия в современном мире — это всё, и чем дальше, тем больше: экзоскелеты, роботы, разнообразные электрические виды транспортных средств. Всё это базируется на необходимости доступа к соответствующим источникам питания и, в то же время, ограничивается их отсутствием. Однако всё может стать ещё хуже, если традиционные источники питания станут вдруг недоступны, по тем или иным причинам. Либо же, потребуется создать собственный источник питания (например, для электропитания далеко расположенного лесного домика и т.д.). Ещё одним интересным вариантом может быть изготовление альтернативного источника питания для уже существующих устройств, — например, для дронов. Да, в этой статье мы поговорим об устройстве и возможности изготовления собственных двигателей внутреннего сгорания различных типов. Кроме того, для этих целей можно даже применить технологии машинного обучения!

Читать дальше →
Всего голосов 70: ↑69 и ↓1+98
Комментарии129

Имплементируем WebSocket протокол на Go

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

Статья для тех, кто хочет познакомиться с устройством технологии WebSocket или языком программирования Go.

Или узнать с какой простотой Go стал одним из самых популярных языков программирования для написания сетевых приложений.

Читать далее
Всего голосов 35: ↑34 и ↓1+37
Комментарии9
1
23 ...

Информация

В рейтинге
2 415-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность