Как стать автором
Обновить
35
0.5

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

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

Как делают микропроцессоры. Польский химик, голландские монополисты и закон Мура

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


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

Удивляясь красоте какой-нибудь микросхемы, невольно думаешь: как же это сделано? Давайте посмотрим на каждый шаг в производственном процессе.
Читать дальше →
Всего голосов 61: ↑59 и ↓2+78
Комментарии119

Как root-права и альтернативные прошивки делают ваш android смартфон уязвимым

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

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

Часто для этого рекомендуется получение прав суперпользователя в системе (root-права), удаление системных приложений от Google и от производителя устройства, или даже полная замена стандартной ОС на альтернативные сборки, чаще всего LineageOS (бывший CyanogenMod). При этом первым шагом в этом процессе всегда будет так называемая "разблокировка загрузчика". Во время её выполнения устройство несколько раз покажет нам страшные предупреждения о том, что теперь оно станет более уязвимо для злоумышленников, но мы смело нажимаем "подтвердить" и шьём root или самую свежую сборку кастомной прошивки, не задумываясь о том какие проблемы создаёт нам незаблокированный загрузчик. 

Я хочу рассказать вам как погоня за приватностью и безопасностью может привести к бóльшим проблемам чем использование стоковых устройств, как при физическом доступе к устройству можно установить в android бэкдор который может пережить сброс до заводских настроек, как можно вытащить данные из зашифрованного устройства не зная пин-код, не входя в систему и без запущенного режима отладки в меню разработчика. 

Интересующихся приглашаю под кат.

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

Почему линукс использует swap-файл, часть 2

Время на прочтение7 мин
Количество просмотров23K
Первая часть маленького «срывания покрова» о работе подсистемы виртуальной памяти, связи механизмов mmap, разделяемых библиотек и кэшей вызвало такое бурное обсуждение, что я не смог удержаться от того, чтобы не продолжить исследование на практике

Поэтому, сегодня мы сделаем… Крошечную лабораторную работу. В виде крошечной же программы на C, которую мы напишем, скомпилируем и проверим в деле — со свапом и без свапа.

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

Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»

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

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

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

Радости экспериментов с ISA и PCI

Время на прочтение8 мин
Количество просмотров19K
С момента появления домашних компьютеров существует возможность расширять их функционал путём установки большего количества RAM, более ёмких накопителей, дополнительных комплектующих. Но только с появлением IBM PC привычной стала идея о полностью открытой модульной компьютерной системе. А именно, концепция карт расширения позволила пользователям компьютеров не зависеть от конфигураций систем, предлагаемых производителями. Подобные конфигурации можно было, в ограниченных пределах, расширять комплектующими, рассчитанными исключительно на эти системы. Благодаря универсальным картам расширения появились целые отрасли промышленности, они стали и причиной возникновения большого рынка любительских устройств, которые можно было подключать к компьютерам.



В первом IBM PC было пять 8-битных слотов расширения, подключённых прямо к процессору 8088. Компьютер IBM PC/AT был основан на процессоре 80286, в результате слоты стали 16-битными. С помощью слотов расширения к компьютеру можно было подключать практически всё что угодно: графические и сетевые карты, дополнительную память, какие-то особые платы. Хотя для этих слотов расширения и не существовало официального наименования, во времена PC/AT их называли, соответственно, PC-шинами и AT-шинами. А название Industry Standard Architecture (ISA) — это ретроним, который придумали создатели клонов PC.

Такая открытость ISA означала то, что можно было достаточно легко и дёшево создавать собственные ISA-карты. То же касалось и шины PCI, которая появилась после ISA и была такой же открытой. В результате до сих пор существует полная жизни экосистема, в которой есть место и любительским звуковым картам, рассчитанным на слоты PCI или ISA, и картам расширения, позволяющим оснастить IBM PC 1981-го года поддержкой USB, и много чему ещё.

С чего начать тому, кто в наши дни хочет заняться работой с ISA- и PCI-картами?
Читать дальше →
Всего голосов 36: ↑29 и ↓7+44
Комментарии11

VPN вас не спасет: как собирают персональные данные через SuperСookies

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


Томас Даннинг говорил: «При 300 процентах [прибыли] нет такого преступления, на которое он [капитал] не рискнул бы, хотя бы под страхом виселицы». Эти слова, сказанные в XIX веке, актуальны до сих пор. Компании, которые ведут бизнес в интернете, изобретают все более изощренные способы слежки за пользователями. 

История кукисов пережила несколько скандалов, связанных с нарушениями приватности, работа браузеров с ними постепенно менялась и, казалось бы, окончательно вошла в цивилизованное русло. Мы научились защищать свои данные и кушать печеньки стало относительно безопасно.

Но потом появились Supercookies — довольно липкая штука, которую буквально не обойти. 

На самом деле Supercookies не какая-то определенная технология, а общее название для разных средств сбора и хранения приватной информации, скрыто работающих в обход известных ограничений. Давайте разберемся, какие суперпеченья бывают, как именно они собирают наши данные и как от них защититься.

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


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

Эти проблемы зарождались, когда компьютеры были большими, а программисты — несколько наивными. Например, одна из уязвимостей сотовых сетей возникла по той же причине наивности: Страх и ужас SS7
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии34

Интересные алгоритмы кластеризации, часть вторая: DBSCAN

Время на прочтение10 мин
Количество просмотров99K
Часть первая — Affinity Propagation
Часть вторая — DBSCAN
Часть третья — кластеризация временных рядов
Часть четвёртая — Self-Organizing Maps (SOM)
Часть пятая — Growing Neural Gas (GNG)

Углубимся ещё немного в малохоженные дебри Data Science. Сегодня в очереди на препарацию алгоритм кластеризации DBSCAN. Прошу под кат людей, которые сталкивались или собираются столкнуться с кластеризацией данных, в которых встречаются сгустки произвольной формы — сегодня ваш арсенал пополнится отличным инструментом.


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

ARM и программирование без блокировок

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


Выпуск ARM-процессора Apple M1 вдохновил меня на то, чтобы написать в Твиттер про опасности программирования без блокировок (lock-free). Этот твит вызвал бурную дискуссию. Обсуждение прошло довольно неплохо, учитывая то, что попытки втиснуть в рамки Твиттера обсуждениие такой сложной темы, как модели памяти центрального процессора, — в принципе бессмысленны. Но у меня осталось желание немного раскрыть тему.

Этот пост задуман не только как обычная вводная статья про опасности программирования без блокировок (о которых я в последний раз писал около 15 лет назад), но и как объяснение, почему слабая модель памяти ARM ломает некоторый код, и почему этот код, вероятно, не работал изначально. Я также хочу объяснить, почему стандарт C++11 значительно улучшил ситуацию в программировании без блокировок (несмотря на возражения против противоположной точки зрения).
Читать дальше →
Всего голосов 42: ↑38 и ↓4+51
Комментарии60

Как НЕ СТОИТ использовать I2P и TOR

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

Или, сказ о неожиданных способах раскрытия пользователей распределенных сетей-анонимайзеров.

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

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

Читать далее
Всего голосов 70: ↑59 и ↓11+71
Комментарии155

Миникомпьютер из роутера с OpenWRT: пишем драйвер фреймбуфера

Время на прочтение19 мин
Количество просмотров67K
Добрый день, уважаемые хабровчане. Вот мы и подошли к самой интересной и важной части моего цикла статей про превращение небольшого роутера в миникомпьютер — сейчас мы с вами будем разрабатывать настоящий драйвер фреймбуфера, который позволит запустить на роутере разные графические приложения. Чтобы энтузиазм не угасал, вот видео одного из таких приложений — думаю, большинство узнают это великолепный старый квест:

На случай, если вы пропустили предыдущие части — вот ссылки:
1 — Миникомпьютер из роутера с OpenWRT: разрабатываем USB-видеокарту
2 — Миникомпьютер из роутера с OpenWRT: пишем USB class-driver под Linux
Итак, приступаем к работе.
Читать дальше →
Всего голосов 139: ↑139 и ↓0+139
Комментарии37

минилинукс

Время на прочтение3 мин
Количество просмотров8.2K
Лирическая часть

Кто из нас в детстве не разбирал игрушки, чтоб посмотреть, что же там такое внутри. Я не был исключением. Прошло всего несколько лет, и одной из игрушек стал линукс. Из абстрактного желания «сломать и посмотреть» оно формализовалось в несколько вполне конкретных задач, одной из которых стала найти некую отправную точку — минимальное нечто, которое бы грузилось и давало шелл. Пару раз я начинал собирать lfs, но до конца так и не дошел. Прочел несколько статей про разработку embedded, но там все было чересчур серьезно и по-взрослому: после предложений сооружать окружение для кросс-компиляции под различные архитектуры и удаленной отладки в панике отключал интернет. Пересмотрел несколько mini-livecd, но все они или мегадревние (ядро 2.4 и ниже) или обязательно с графикой и DE, что никак не вписывалось в мое представление об идеальном минидистре для опытов.
И вот не так давно я случайно узнал, что то, что я ищу, называется initramfs и лежит у меня под носом.
Читать дальше →
Всего голосов 93: ↑92 и ↓1+91
Комментарии47

Анализ сишного Hello World

Время на прочтение7 мин
Количество просмотров69K
Hello World — одна из первых программ, которые мы пишем на любом языке программирования.

Для C hello world выглядит просто и коротко:

#include <stdio.h>

void main() {
  printf("Hello World!\n");
}

Поскольку программа такая короткая, должно быть элементарно объяснить, что происходит «под капотом».
Читать дальше →
Всего голосов 227: ↑226 и ↓1+225
Комментарии142

Linux exploits

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

Операционная система Linux доказала миру всю силу Open Source проектов — благодаря ей у нас сегодня есть возможность заглянуть в исходный код рабочей ОС и на его основе собрать свою собственную систему для решения тех или иных задач. По причине своей открытости Linux должна была стать самой безопасной операционной системой в мире, так как открытый исходный код позволяет развивать и улучшать подсистемы защиты от атак на ОС и совершенствовать саму операционную систему. Действительно, на данный момент существует большое количество созданных комьюнити защит: сегодня уже просто не так просто проэксплуатировать уязвимости типа переполнения буфера для получения повышенных привилегий так же, как 20 лет назад. Тем не менее, сегодня можно в открытом доступе встретить эксплойты, которые даже на последних версиях ядра могут повысить привилегии пользователя. Рассмотрим в этой статье, как это работает и почему так получается. Мы пройдемся по основным составляющим эксплойтов и рассмотрим, как работают некоторые из них.

Вся предоставленная информация была собрана исключительно в ознакомительных целях.

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

Софтовый датчик присутствия на Linux AP + ESP8266

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

Наблюдение за изменением уровня Wi-Fi сигнала от стационарно расположенных по дому IoT устройств позволяет сделать полностью программный (выделенное железо отсутствует) объёмный датчик движения в объёме квартиры, достаточно точно показывающий наличие активно перемещающихся людей.

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

Что вас ждет на курсе Алгоритмов в Яндекс.Практикуме

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

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

Хотите такое ощутить? Тогда велкам в Яндекс.Практикум на курс «Алгоритмы для разработчиков».

Читать далее
Всего голосов 226: ↑178 и ↓48+186
Комментарии192

Самый беззащитный — уже не Сапсан. Всё оказалось куда хуже…

Время на прочтение8 мин
Количество просмотров546K
{UPD 10.02.2021} Евгений Чаркин дал интервью на эту тему gudok.ru/newspaper/?ID=1552569
Под катом мои комментарии на некоторые тезисы.
{/UPD}

Больше года назад хабравчанин keklick1337 опубликовал свой единственный пост «Самый беззащитный — это Сапсан» в котором рассказывает как он без серьёзных ухищрений получил доступ ко внутренней сети РЖД через WiFi Сапсана.

В ОАО «РЖД» прокомментировали результаты этого расследования. «Есть результаты проверки. Почему удалось взломать? Наверное, потому, что злоумышленник. Наверное, из-за этого… Ну, он из „фана“. Юный натуралист. Там уязвимостей, которые бы влияли на утечку каких-то критических данных, нет. Мультимедийный портал „Сапсанов“ функционирует как положено и не нуждается в доработке», — заявил Евгений Чаркин.

То есть вместо того, чтобы выразить благодарность за обнаруженную уязвимость, автора обозвали «злоумышленником» и «Юным натуралистом».

К сожалению, но специалисты РЖД, начиная с директора по информационным технологиям, отнеслись к статье очень пренебрежительно, проигнорировав важное указание автора:
Также оттуда в сеть РЖД есть впн. Если захотите — найдёте её там сами.

И вот, год спустя я попал в сеть РЖД даже не садясь в Сапсан.



Видимо, только этот котэ добросовестно охраняет вокзал.

Как именно я попал в сеть РЖД с пруфами, чего не сделал директор по информационным технологиям ОАО «РЖД» Чаркин Евгений Игоревич и возможные последствия — под катом.
Читать дальше →
Всего голосов 1135: ↑1132 и ↓3+1447
Комментарии990

Клиент-серверный IPC на Python multiprocessing

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

Статья отражает личный опыт разработки CLI приложения для Linux.

В ней рассмотрен способ выполнения привилегированных системных вызовов процессом суперпользователя по запросам управляющей программы через строго описанный API.

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

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

PAL, GAL и путешествие в цифровое ретро

Время на прочтение17 мин
Количество просмотров22K
Идея сделать цифровые логические микросхемы с изменяемой структурой была всегда. Почему? Достаточно посмотреть на толстенный каталог чипов серии TTL 74xx (или советской К155), чтобы такая идея самозародилась. В СССР почти у каждого инженера и радиолюбителя был справочник В.Л. Шило «Популярные цифровые микросхемы», который вышел каким-то невероятным тиражом. Но всё равно, хотелось иметь некий «универсальный кристалл», из которого можно сделать все остальные микросхемы (ну хорошо, не все, но многие).

Конечно же, полупроводниковая промышленность тоже была не прочь удовлетворить такой спрос.
Дальше
Всего голосов 95: ↑95 и ↓0+95
Комментарии38

pi-top [4] — конструктор роботов для детей и взрослых на основе Raspberry Pi

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

«Малинка» — один из самых популярных одноплатных ПК в мире. На его основе создается масса профессиональных и любительских проектов. На днях представлен еще один, на этот раз — образовательный.

Его разработала команда pi-top, которая и раньше показывала интересные системы. Новинка получилась масштабной: это конструктор роботов, базой для которых служит все та же «малинка». Создавать можно практически все — от вездеходов до мультикоптеров. Проект чем-то напоминает Lego Mindstorms, но он более профессиональный, если так можно выразиться, и позиционируется как система для обучения новых разработчиков.
Всего голосов 19: ↑17 и ↓2+21
Комментарии10

Войти в IT после 45-ти

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

Два с половиной года назад я перешел из отрасли автоматизации промышленного оборудования, в которой я проработал почти 25 лет, в сферу банковского IT, разработчиком Java, и достиг (по оценке моего лида) уровня middle ++.

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

Если данная тема заинтересует хаброжителей - я могу написать подробную историю, почему и как я это сделал, пока ограничусь сухой выжимкой (исключив негативные моменты, мои личные переживания и прочую лирику).

Добро пожаловать под кат!
Всего голосов 10: ↑9 и ↓1+14
Комментарии30

Информация

В рейтинге
1 873-й
Зарегистрирован
Активность