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

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

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

Угон Телеграм на волнах паники

Время на прочтение4 мин
Количество просмотров28K
Сегодня очень неоднозначно развивается ситуация вокруг совместного решения Федеральной службы безопасности Российской федерации и Роскомнадзора о блокировке мессенджера «Телеграм». Данное решение опрометчиво по целому ряду причин, и несет в себе больше проблем, чем пользы в борьбе с угрозой терроризма.

Для зрелого бизнеса который учитывал риски связанные с решениями правительства, это создало некоторое неудобство, так как пришлось использовать обходные решения с использованием VPN. Но для рядовых пользователей которые небыли готовы к такому повороту событий это принесло новые угрозы. В панике пользователи стали искать и использовать первые попавшиеся бесплатные VPN, абсолютно не задумываясь что это может обернуться для них западней в виде DNS пушапов, и прочих MITM атак.

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

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

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

В состав нашего рецепта вошли следующие основные компоненты:

  • Telegram Desktop 1.2.17 (linux)
  • Docker version 17.05.0-ce
  • noVNC
Читать дальше →
Всего голосов 45: ↑32 и ↓13+19
Комментарии20

Пишем драйвер ядра Linux для неизвестного USB-устройства

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

В этой статье объяснен весь процесс, на выходе которого получается рабочий драйвер ядра Linux для недокументированного USB-устройства. Выполнив обратную разработку коммуникационного протокола USB, я покажу архитектуру драйвера ядра для USB. Кроме драйвера ядра в этой статье будет рассказано о простом инструменте для пользовательского пространства; при помощи этого инструмента можно управлять таким устройством. Конечно, придется углубиться в подробности, касающиеся конкретного прибора, но не сомневайтесь – описанный процесс с тем же успехом применим и к другим USB-устройствам.
Читать дальше →
Всего голосов 59: ↑58 и ↓1+57
Комментарии9

Полароидный CSS и совсем немного HTML

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

В предыдущей статье у нас получился красивый слайдер («карусель») с круговым вращением. А сегодня я создам слайдер, пролистывающий стопку «полароидных» снимков.


Пока не смотрите код, сначала я должен вам многое про него рассказать. Поехали! К старту нашего курса по Fullstack-разработке на Python.

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

Как получить доступ к chatGPT в России

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

Всем привет! Перед началом статьи сразу скажу:

САМЫЙ ВАЖНЫЙ ДИСКЛЕЙМЕР: естественно, покупая смс на чужой номер вы полностью компрометируете безопасность своего аккаунта. Мало ли кто его потом еще купит для получения доступа. Поэтому, помните, что представленный в данной статье способ получения доступа - это только на "поиграться". Не стоит вводить туда свои реальные почты и использовать это в работе, так как полученный доступ может быть в любой момент взломан/прикрыт.

Но да ладно, приступим. Здесь без всякого объяснения того что такое ChatGPT - кому надо тот знает. В этой статье я хочу поделиться путем который вас за 30Р может к этому боту привести. Вдаваться в детали бота я не хочу, это чисто статья для ребят которые хотят без лишних запар пройти путь человека который доступ к боту уже получил :)

Как и многих вокруг, меня удивила новая технология от Open AI. Попытался зайти и зарегистрироваться через гугл, но...

Читать далее
Всего голосов 79: ↑73 и ↓6+67
Комментарии268

Как я использовал нейросеть для категоризации трехмерных тел

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

Значимость темы машинного обучения (machine learning) сегодня очевидна. Это огромный домен знаний в Computer Science, которому в России, в частности, посвящают конференции уровня недавней AI Journey. Существует множество способов применения ML в различных областях, среди самых исследованных: распознавание изображений/видео/голоса, процессинг текста. Однако есть и более любопытные задачи, с которыми справляется ML. Например, обучение с подкреплением, что позволяет ИИ играть в игры типа Го, идентификация людей по фотографии, распознавание жестов, движений и поз человека.

Одной из не совсем обычных областей применения машинного обучения можно назвать работу с трехмерными телами. Такая технология активно исследуется за рубежом, а вариантов использования у нее может быть масса. Простой пример: дрон сканирует помещение, в котором находится множество тел. С помощью ML дрон может классифицировать объекты окружения, найти ошибки в пространственном размещении этих тел или же построить 3D-интерьер комнаты со ссылками на онлайн-магазин, где эти предметы можно купить.

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

Читать далее
Всего голосов 57: ↑56 и ↓1+55
Комментарии3

Как написать игру на Monogame, не привлекая внимания санитаров. Часть 4, решаем основной вопрос философии

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

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

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

Разработка мобильных приложений на Go

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

Язык программирования Go стал настоящим открытием для разработчиков инструментов для системного администрирования и DevOps благодаря комбинации возможностей низкоуровневой разработки (и в этом он подобен C) и поддержке автоматической сборки мусора, исключению прямой работы с указателями, наличию конкуретной многозадачности (goroutines) и возможности компиляции непосредственно в исполняемый образ. Постепенно Go начал использоваться для других целей: создание веб-приложений, разработка для микроконтроллеров. Почему бы не использовать все его возможности для создания мобильных приложений? В статье мы обсудим некоторые подходы к разработке приложений на Go для мобильных устройств.

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

API Тестирование без Postman

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

Современные приложения и сервисы в большинстве своем состоят из фронтона и бэкенда. Когда мы говорим о тестировании бэкенда, в основном речь идет о тестировании с помощью API запросов и ответов. А для этого желательно иметь под рукой необходимые инструменты. Полагаю что одним из лучших и самых популярных инструментов тестирования API является Postman. А есть ли альтернатива?

Сегодня мы рассмотрим одну из лучших альтернатив этому популярному инструменту. Особенно она понравится тем, кто работает с Postman постоянно.

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

Физика вращения 3д тел

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

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

В статье Вас ждут математика, физика, а заодно численное моделирование и визуализация в libgdx.

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

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

Умный BottomNavigationView без боли: настройка нижнего меню навигации с динамической конфигурацией в Android-приложении

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

Привет, Хабр! Меня зовут Сергей Велеско, я Android-разработчик. Сегодня трудно представить сколько-нибудь серьезное мобильное приложение без нижнего меню навигации. В этой статье я поделюсь опытом, как гибко и приятно организовать настройку BottomNavigationView и научить его загружать свою конфигурацию из удаленного источника.

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

Личный сервер shadowsocks за 10 минут без затрат (часть 3)

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

Это - отдельное руководство, описывающее ещё один способ получить личный
прокси-сервер shadowsocks бесплатно и служащее продолжением к моей предыдущей статье. В этот раз мы воспользуемся сервисом Replit.

В этот раз всё будет намного проще: регистрация, импорт, запуск. Три шага.

Читать далее
Всего голосов 25: ↑22 и ↓3+19
Комментарии54

Упрощаем код с помощью if constexpr и концептов C++17/C++20

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

До C++17 у нас было несколько довольно неэлегантных способов написать static if (if, который работает во время компиляции). Например, мы можем использовать статическую диспетчеризацию или SFINAE. К счастью, ситуация изменилась к лучшему, ведь теперь мы можем воспользоваться для этого if constexpr  и концептами C++20!

Ну что ж, давайте разберемся, как мы можем использовать это в качестве замены std::enable_if кода!

Читать далее
Всего голосов 13: ↑11 и ↓2+9
Комментарии34

Немного хардкора: как поднять Kubernetes на двух старых ноутбуках с Gentoo

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

Хочу рассказать об интересном эксперименте, суть которого заключалась в развертывании и настройке Kubernetes на двух старых ноутбуках — один из них, кроме того, был с процессором на архитектуре i386. В качестве теоретической основы использовалось руководство Kubernetes The Hard Way, которое по ходу дела пришлось немного доработать, а в качестве системы на хостах — Gentoo (да, вам не показалось). Давайте погрузимся в этот увлекательный хардкор!

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

Как устроена виртуальная машина SQLite

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

SQL — концептуально странный язык. Вы пишете ваше приложение на одном языке, скажем, на JavaScript, а затем направляете базе данных команды, написанные на совершенно другом языке — SQL. После этого база данных компилирует и оптимизирует эту команду на SQL, выполняет её и возвращает вам данные. Такой метод кажется ужасно неэффективным, но, всё-таки, ваше приложение может проделывать сотни таких операций в секунду. Просто безумие!

Но на самом деле всё ещё страннее.

Читать далее
Всего голосов 61: ↑60 и ↓1+59
Комментарии15

Telegramm-habr-бот. Долгий путь к совершенству

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

Каждый день мы просматриваем habr. Каждый день заходим на главную ленту и просматриваем её. Что, если автоматизировать этот просмотр?

В статье я расскажу, как я писал telegram-бота на python3, который вытаскивает заголовки статей с habr и пишет их в telegram.

И т. Д.

Читать далее
Всего голосов 20: ↑14 и ↓6+8
Комментарии26

Передовой опыт тестирования в Java

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


Чтобы покрытие кода было достаточным, а создание нового функционала и рефакторинг старого проходили без страха что-то сломать, тесты должны быть поддерживаемыми и легко читаемыми. В этой статье я расскажу о множестве приёмов написания юнит- и интеграционных тестов на Java, собранных мной за несколько лет. Я буду опираться на современные технологии: JUnit5, AssertJ, Testcontainers, а также не обойду вниманием Kotlin. Некоторые советы покажутся вам очевидными, другие могут идти вразрез с тем, что вы читали в книгах о разработке ПО и тестировании.
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии23

Reactor, WebFlux, Kotlin Coroutines, или Асинхронность на простом примере

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


Многие сервисы в современном мире, по большей части, «ничего не делают». Их задачи сводятся к запросам к другим базам/сервисам/кешам и агрегации всех этих данных по различным правилам и разнообразной бизнес-логике. Поэтому неудивительно, что появляются такие языки, как Golang, с удобной встроенной конкурентной системой, позволяющей легко организовывать неблокирующий код.


В JVM-мире всё немного сложнее. Есть огромное количество фреймворков и библиотек, блокирующих потоки при использовании. Так и сама stdlib может делать то же самое порой. Да и в Java нет аналогичного механизма, похожего на горутины в Golang.


Тем не менее, JVM активно развивается и появляются новые интересные возможности. Есть Kotlin с корутинами, которые по своему использованию очень похожи на горутины из Golang (хоть и реализованы совершенно по-другому). Есть JEP Loom, который в будущем привнесёт fibers в JVM. Один из самых популярных веб-фреймворков — Spring — не так давно добавил возможность создавать полностью неблокирующие сервисы на Webflux. А с недавним релизом Spring boot 2.2 интеграция с Kotlin стала ещё лучше.


Предлагаю на примере небольшого сервиса по переводу денег с одной карты на другую самим написать приложение на Spring boot 2.2 и Kotlin для интеграции с несколькими внешними сервисами.

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

JavaScript tree shaking, like a pro

Время на прочтение5 мин
Количество просмотров14K
Это перевод статьи об оптимизации и уменьшении размера бандла приложения. Она хороша тем, что тут описаны best practices, советы, которых стоит придерживаться, чтобы тришейкинг работал и выкидывал неиспользуемый код из сборки. Она будет полезной многим, потому что сейчас все используют системы сборки, в которых «из коробки» есть тришейкинг. Но чтобы он работал правильно, нужно придерживаться принципов, описанных ниже.

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

[По докам] Flutter. Часть 3. Для разработчиков React Native

Время на прочтение16 мин
Количество просмотров7.5K
Продолжаем лаконичную интерпретацию официальной документации Flutter в формате «вопрос-ответ». Вот уже 3-я часть, и она в большей степени будет полезна React Native-разработчикам. В данной интерпретации вы можете найти ответы на частые вопросы, а также определить для себя, сколько усилий нужно приложить, чтобы перейти с одного кроссплатформенного фреймворка на другой.


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

Информация

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