Pull to refresh
4
0.3
Павел Левченко @IkaR49

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

Send message

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

Reading time4 min
Views15K

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

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

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

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

Reading time11 min
Views15K

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

Читать далее
Total votes 10: ↑12.5 and ↓-2.5+15
Comments6

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

Level of difficultyEasy
Reading time6 min
Views23K
Я разработал дешёвый, точный и максимально простой в использовании прибор, с помощью которого можно измерить ёмкость практически любой батарейки (от микроскопических батареек для слуховых аппаратов до крупных батарей). Повторить мой прибор может любой желающий.



Читать дальше →
Total votes 188: ↑206.5 and ↓-18.5+225
Comments51

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

Reading time7 min
Views3.1K

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

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

Читать далее
Total votes 19: ↑26.5 and ↓-7.5+34
Comments6

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

Level of difficultyMedium
Reading time12 min
Views7.6K

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

Читать далее
Total votes 11: ↑12 and ↓-1+13
Comments12

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

Level of difficultyEasy
Reading time7 min
Views1.3K

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

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

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments1

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

Level of difficultyEasy
Reading time18 min
Views11K

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

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

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

Читать далее
Total votes 23: ↑24.5 and ↓-1.5+26
Comments82

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

Level of difficultyHard
Reading time27 min
Views9.7K
image

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


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

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

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

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

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

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

Level of difficultyEasy
Reading time13 min
Views18K

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

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

Читать далее
Total votes 33: ↑36.5 and ↓-3.5+40
Comments4

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

Level of difficultyMedium
Reading time5 min
Views994

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

Читать далее
Total votes 3: ↑3.5 and ↓-0.5+4
Comments0

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

Level of difficultyEasy
Reading time4 min
Views14K

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

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

Читать далее
Total votes 10: ↑6.5 and ↓3.5+3
Comments2

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

Level of difficultyEasy
Reading time26 min
Views6.8K

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

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

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

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments25

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

Level of difficultyEasy
Reading time4 min
Views1.8K

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

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments0

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

Level of difficultyMedium
Reading time3 min
Views6.1K

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

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

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

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

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

Reading time4 min
Views16K

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

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

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

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

Level of difficultyMedium
Reading time3 min
Views9.1K

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

Читать далее
Total votes 28: ↑25 and ↓3+22
Comments31

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

Level of difficultyMedium
Reading time8 min
Views7.8K

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

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

Читать далее
Total votes 71: ↑72 and ↓-1+73
Comments46

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

Level of difficultyEasy
Reading time6 min
Views4.3K

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

Читать далее
Total votes 16: ↑14 and ↓2+12
Comments0

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

Level of difficultyMedium
Reading time27 min
Views43K

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

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

Читать далее
Total votes 172: ↑167 and ↓5+162
Comments552

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

Level of difficultyEasy
Reading time5 min
Views6.6K

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

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

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

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

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

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

Читать далее
Total votes 18: ↑14 and ↓4+10
Comments6
1
23 ...

Information

Rating
1,913-th
Location
Тверь, Тверская обл., Россия
Date of birth
Registered
Activity

Specialization

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