Как стать автором
Обновить
4
0.3
Павел Левченко @IkaR49

Инженер-программист

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

Первый опенсорсный LTE-сниффер с полной функциональностью

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

Базовая станция LTE

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

Устройства для прослушивания трафика LTE до недавнего времени имели ограниченную функциональность и не могли анализировать все служебные данные. Однако в прошлом году инженеры из Корейского института передовых технологий (KAIST) опубликовали исходный код первого в мире опенсорсного сниффера LTESniffer с полным набором функциональных возможностей, включая декодирование трафика PDCCH и PDSCH.
Читать дальше →
Всего голосов 20: ↑23 и ↓-3+26
Комментарии9

Топовые подходы к решению алгоритмических задач

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

Привет! Меня зовут Дмитрий Королёв, я бэкенд-разработчик в Авито. В этой статье я расскажу про ключевые аспекты и концепции работы с наиболее популярными алгоритмами и структурами данных. Это поможет и в реальных проектах, и чтобы глубже понять алгоритмические принципы. Статья подойдёт специалистам, которые хотят углубить свои знания в программировании, и укрепить навыки нахождения оптимальных решений алгоритмических задач.

Читать далее
Всего голосов 10: ↑12.5 и ↓-2.5+15
Комментарии10

Народный измеритель ёмкости батареек BatteryTest

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров24K
Я разработал дешёвый, точный и максимально простой в использовании прибор, с помощью которого можно измерить ёмкость практически любой батарейки (от микроскопических батареек для слуховых аппаратов до крупных батарей). Повторить мой прибор может любой желающий.



Читать дальше →
Всего голосов 190: ↑208.5 и ↓-18.5+227
Комментарии51

Технологический винтаж: вспоминаем субналадонник Xircom REX 6000. Он умел многое

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

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

Если взглянуть на жизнь человека, старающегося идти в ногу со временем 24 года назад, то у него в руках, скорее всего, увидим девайс, который сегодня уже и не встретишь. Речь идёт о КПК, или, как их часто называли, наладонниках. Конечно, искушённого читателя Хабра сложно удивить: наладонники были у многих. Но был среди таких КПК интересный экземпляр, который имел форм-фактор платы PCMCIA и подключался к компьютеру посредством этого интерфейса. Заинтересовали? Тогда добро пожаловать под кат.

Читать далее
Всего голосов 19: ↑26.5 и ↓-7.5+34
Комментарии6

Компоненты среды рабочего стола | Linux

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

Всех приветствую, читатели Хабра! Решил попробовать себя в роли знатока-писателя и освятить для вас такую тему, как “Компоненты среды рабочего стола”, чтобы больше людей, хотя-бы в основе, понимали, что там происходит в системе такого, благодаря чему мы можем, не тыкаясь в консоли, с ней взаимодействовать.

Читать далее
Всего голосов 11: ↑12 и ↓-1+13
Комментарии12

Компрометация данных и её обнаружение

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

 Приветствую, Хабр! Меня зовут Никита Титаренко, я инженер в компании «Газинформсервис», студент СПбГУТ им. проф. М.А. Бонч-Бруевича. Мои профессиональные задачи связаны с созданием уязвимых сред и эксплуатацией данных уязвимостей на киберполигоне в компании. Информация об этом используется для создания наборов данных, на которых обучаются модели искусственного интеллекта

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

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

Пишем калькулятор на Rust с GUI

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

Зачем еще один калькулятор? Да незачем, просто как тестовый проект для рассмотрения GUI-библиотеки.

Изначально я хотел попробовать такие крейты, как GPUI, Floem и Xilem, но первая, кажется, пока работает только под MacOS и Linux, вторая не позволяет установить иконку окну и кушает оперативы побольше Webview в Tauri, а до третьей я так и не добрался, узнав об Slint.

Об Slint есть всего несколько новостных постов на Хабре, поэтому, возможно, вам будет интересно посмотреть, что это такое.

Читать далее
Всего голосов 23: ↑24.5 и ↓-1.5+26
Комментарии84

Числа и байты: как работает память в Linux?

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

Часть первая: физическая память


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

Также память включает в себя оперативное запоминающее устройство (ОЗУ) или RAM, где можно записывать и считывать информацию. Существует статическая ОЗУ (SRAM) и динамическая ОЗУ (DRAM), различающиеся в том, как хранится информация. В SRAM информация сохраняется до выключения питания, в то время как в DRAM используются транзисторы и конденсаторы, что позволяет хранить данные, но требует их периодического обновления. Разные типы ОЗУ имеют свои преимущества и недостатки, и выбор зависит от конкретных потребностей.

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

Но что такое физическая память, как она работает в Linux? Что такое сегментация, утечки памяти и некие «страницы»?

Все, что вы хотели знать, но боялись спросить о памяти пингвина — читайте здесь и сейчас!
Читать дальше →
Всего голосов 24: ↑28 и ↓-4+32
Комментарии15

90+ дашбордов для OSINT и глобального мониторинга

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

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

Даже если вы никак не связаны с ИБ, зато часами залипали в контурные карты глобальных стратегий или восхищались глобусом в центре управления X-COM, эта подборка инструментов наверняка вам понравится.

Читать далее
Всего голосов 33: ↑36.5 и ↓-3.5+40
Комментарии4

Xv6: учебная Unix-подобная ОС. Глава 9. Еще раз о параллельных потоках

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

Трудно добиться быстродействия ядра, организовать параллельную работу потоков и при этом писать ясный код. Блокировки помогают параллельным потокам работать корректно, но иногда блокировки использовать трудно. Глава расскажет о хитрых сценариях с блокировками в xv6 и о сценариях без блокировок.

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

Анализ Telegram аккаунтов

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

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

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

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

Хотите присоединить Windows к домену ALD Pro (FreeIPA)? Спросите меня как

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

Конечная цель проектов импортозамещения в ИТ — полный отказ от операционной системы Windows. Но, как говорится, гладко было на бумаге, да забыли про овраги. Может так оказаться, что быстро заменить какие-то клиентские корпоративные приложения, написанные под эту операционную систему, не получится. В этом случае вам может пригодиться возможность присоединения Windows-компьютеров к домену ALD Pro.

В этой статье я расскажу, как добиться максимальной функциональности от такого сценария развертывания, и презентую утилиту нашей собственной разработки aldpro-join. С ее помощью можно решить проблему настройки рабочих станций всего за пару кликов. Если это именно то, о чем вы хотели узнать, но не знали, кого спросить, — вы на правильном пути. Поехали!

Материал будет полезен даже в том случае, если в вашей инфраструктуре пока еще используется «ванильная» система FreeIPA.

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

Полные правила игры DOS

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

DOS звучит как дополнение к UNO, и изначально кажется, что это примерно такая же игра. Цветные карточки с цифрами - что может пойти не так? Но игра имеет свои довольно сложные правила и кардинально отличается от UNO. Пишу этот текст, потому что на русском не нашел полных правил, только какие-то обрывки. Текст в этой статье не является прямым переводом правил с официального сайта. Кто желает прочитать правила в оригинале, вот ссылка.

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

Алгоритм расчёта расстояния между строками

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

По работе стояла задача оптимизации поиска по адресам (улицы, дома и объекты). Главный критерий - нахождение адреса, если написано с ошибками или не дописан он в полной мере. Bert’ы, косинусные расстояния эмбеддингов и т.д. не подходили, так как они заточены под смысловой поиск, а в адресах смысла нет. TF-IDF c лемматизацией тоже не очень подходил для этой задачи, результаты были плохие.

Для реализации начал использовать расстояние Дамерау-Левенштейна, и в последствие, развил это до собственного алгоритма, который находит расстояние между двумя строками.

Цель данного поста описание только алгоритма.

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

Расшифровка BitLocker — добыча ключа из микросхемы TPM

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

Подключение сниффера к модулю TPM по шине LPC

Полнодисковое шифрование BitLocker в ОС Windows считается довольно надёжным способом сохранения данных. По умолчанию оно использует алгоритм Advanced Encryption Standard (AES) в режиме сцепления блоков (CBC) или в режиме подстроенной кодовой книги с кражей шифротекста (XTS) на базе xor-encrypt-xor (XEX) со 128- или 256-битным ключом.

В теории это довольно крепкая схема. Проблема только в том, что секретный ключ BitLocker хранится в Trusted Platform Module (TPM), а в некоторых случаях (на некоторых компьютерах) его можно извлечь, получив физический доступ к устройству.
Читать дальше →
Всего голосов 23: ↑24.5 и ↓-1.5+26
Комментарии39

Shiva — Open Source проект на Rust для парсинга и генерации документов любого типа

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

Идея проекта возникла у меня во время работы над проектом поисковика документов. Существует такая библиотека, как Apache Tika, написанная на Java, которая умеет парсить документы различных типов. Чтобы мой поисковик работал, он должен уметь извлекать текст из документов разных типов (PDF, DOC, XLS, HTML, XML, JSON и т. д.). Сам поисковик я писал на Rust. Но, к сожалению, в мире Rust нет библиотеки, которая умела бы парсить документы всех типов.

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

Про решаемость пятнашек

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

Привет, я создатель известного в узких кругах приложения 15 Puzzle для Android.

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

Читать далее
Всего голосов 71: ↑72 и ↓-1+73
Комментарии46

Как тимлиду оценить «КПД разработки». 4 работающих способа — без хрустального шара и гадания на кофейной гуще

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

Привет, Хабр! Я Аня Анциферова, продакт «Цифрового вагона». Я уже рассказывала о том, зачем ПГК пошли в разработку и какие продукты мы делаем. Несмотря на то, что сейчас у ПГК существует «дочка» — ПГК Диджитал, и там трудится порядка 400 человек, мы — не ИТ-гигант. А это значит, что каждый проект, за который мы беремся, и даже каждую фичу, которую дорабатываем, мы должны оценить на предмет эффективности. И доказать, почему разработка оправдана и целесообразна. Сегодня расскажу о том, как такую базовую оценку может провести тимлид.

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

Rust — это не «memory safe C»

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

TL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD
— Rust — не сложный язык, особенно если не гнаться за максимальной производительностью

В этой статье я бы хотел рассказать:
— почему взгляд на Rust как на "memory safe C" очень сильно сужает область его возможного применения
— почему я смотрю на Rust как на очень удобный в разработке язык высокого уровня, которому просто случайно повезло оказаться невероятно быстрым
— почему разработка на Rust быстрее, чем многие думают
— почему Rust — это один из лучших языков общего назначения

Читать далее
Всего голосов 173: ↑168 и ↓5+163
Комментарии552

В общих чертах про функциональное программирование в Rust

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

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

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

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

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

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

Кроме того, Rust имеет поддержку функций высшего порядка и замыканий.

Читать далее
Всего голосов 18: ↑14 и ↓4+10
Комментарии6
1
23 ...

Информация

В рейтинге
1 920-й
Откуда
Тверь, Тверская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Software Developer, Backend Developer
Middle
От 300 000 ₽
Rust
C++
Linux
Cmake