Pull to refresh
12
0
Роман Дудин @dudinroman

Программист

Send message

Как нашли бэкдор в радиосвязи TETRA — подробный разбор

Level of difficultyMedium
Reading time19 min
Views31K

Неприступных крепостей не бывает. Опасную брешь, то есть бэкдор, недавно обнаружили в шифрованном стандарте радиосвязи TETRA. А ведь он вот уже 25 лет используется военными, экстренными службами и объектами критической инфраструктуры по всему миру. Самое интересное, что на технические детали и контекст этой истории почти никто не обратил внимания.

Мы изучили статьи и доклады исследователей и собрали всю суть. Перед вами — подробная история взлома TETRA.

Читать далее
Total votes 221: ↑220 and ↓1+219
Comments33

Сканер установленных перехватчиков в памяти процесса

Reading time98 min
Views9.4K


В статье будет рассмотрен один из методов поиска изменений в памяти процесса, на основе построения полной карты уязвимых к перехвату адресов. Рассмотрена работа со списками загрузчика, ручным разбором таблиц импорта/отложенного импорта/экспорта/TLS загруженных файлов, c обработкой форварда функций и ApiSet редиректов.
Будет показана методика доступа в 64 битное адресное пространство чужого процесса из 32 битного кода через статически сформированный ассемблерный шлюз, так и подход с применением автоматически генерируемого гейта.
Будет дано много комментариев «почему» применяется тот или иной подход, а также описание различных проблемных ситуаций, основанных в том числе как на собственном опыте, так и на разборе кода системного загрузчика, поэтому будет интересна и подготовленным специалистам.
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments24

Заблуждения об английском, которым нас научила школа

Reading time9 min
Views97K

Отечественные школы не славятся актуальностью и нюансировкой преподаваемого материала. Особое место в этом смысле занимает английский язык. Во всех странах бывшего СССР печальные дамы бальзаковского возраста муштруют детей по учебникам библейских времен и рассказывают им с жирным русским акцентом о туманном Лондоне и плутовских проделках его обитателей.

Результаты этих занятий печальны. После сотен академических часов понимают и говорят ученики с трудом, но зато прочно запоминают устаревшие понятия, формализмы и локальные британские обороты речи. Этот багаж остается с ними надолго (или лучше сказать “с нами”, поскольку автор статьи после школы был точно в такой же ситуации). Избавиться от него обычно помогает только общение с носителями языка, которые внезапно не понимают, на каком языке им что-то пытается сказать этот странный русский. Или прочтение подобных статей, заботливо сотканных мозолистыми руками случайных авторов из интернета. То есть, основного источника знаний любого уважающего себя современного человека.

Читать далее
Total votes 181: ↑168 and ↓13+155
Comments415

Почему чип Apple M1 такой быстрый?

Reading time19 min
Views155K

Опыт использования новых маков с М1 начинает расставлять точки над i. Эти чипы быстрые. Очень быстрые. Но почему? В чем магия?

Я смотрел видео на Youtube, где автор купил iMac в прошлом году максимальной конфигурации. Машина с 40+ Gb ОЗУ стоила ему около 4000$. Он смотрел с недоверием, как его гипердорогой iMac был разнесен в пух и прах новеньким Mac mini с М1 на борту, который стоил около 700$.

В реальном мире, тест за тестом, макбуки с М1 не просто превосходят топовые компьютеры Intel прошлых поколений. Компьютеры Mac просто уничтожают их. С недоверием люди стали спрашивать, как такое возможно?

Читать далее
Total votes 115: ↑73 and ↓42+31
Comments550

Пора обновить ваш монитор

Reading time16 min
Views174K

Иллюстрация: Юлия Прокопова

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

Поэтому я оптимизирую настройки, чтобы показывать действительно, действительно хорошие буквы. Для этого необходим хороший монитор. Не просто нужен, а ОБЯЗАТЕЛЕН. А под «хорошим» я имею в виду настолько хороший, насколько это возможно. Это мои мысли, основанные на моём собственном опыте того, какие мониторы лучше подходят для программирования.
Читать дальше →
Total votes 181: ↑148 and ↓33+115
Comments991

C++ быстрее и безопаснее Rust, Yandex сделала замеры

Reading time15 min
Views121K

Спойлер: C++ не быстрее и не медленнее и вообще смысл не в этом. Эта статья является продолжением славных традиций развенчания мифов крупных российских компаний о языке Rust. Предыдущая была "Go быстрее Rust, Mail.Ru Group сделала замеры".


Недавно я пытался заманить коллегу, сишника из соседнего отдела, на Тёмную сторону Rust. Но мой разговор с коллегой не задался. Потому что, цитата:


В 2019 году я был на конференции C++ CoreHard, слушал доклад Антона antoshkka Полухина о незаменимом C++. По словам Антона, Rust еще молодой, не очень быстрый и вообще не такой безопасный.

Антон Полухин является представителем России в ISO на международных заседаниях рабочей группы по стандартизации C++, автором нескольких принятых предложений к стандарту языка C++. Антон действительно крутой и авторитетный человек в вопросах по C++. Но доклад содержит несколько серьёзных фактических ошибок в отношении Rust. Давайте их разберём.

Total votes 230: ↑214 and ↓16+198
Comments1196

Переезд в Иннополис

Reading time18 min
Views194K


В 2017 году мы с семьёй переехали в Иннополис.

За 3 года жизни эйфория прошла и сформировалось какое-то устойчивое мнение об этом городе.

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

Меня никто не просил писать эту статью и тем более не платил за неё. В общем, это не заказная «приезжайте к нам, у нас тут классно». Пишу всё так, как вижу своими глазами.
Читать дальше →
Total votes 212: ↑206 and ↓6+200
Comments480

Что делает Rust универсальным языком программирования

Reading time17 min
Views43K

Владей и заимствуй


Долгое время Rust позиционировался исключительно как язык для системного программирования. Попытки использовать Rust для высокоуровневых прикладных задач зачастую вызывали усмешку у значительной части сообщества: зачем использовать инструмент в том качестве, на которое он не рассчитан? Какая польза от возни с типами и анализатором заимствований (borrow checker), если есть Python и Java со сборкой мусора? Но другая часть сообщества всегда видела потенциал Rust именно как языка прикладного, и даже находила его удобным в использовании для быстрого прототипирования — во многом благодаря его особенностям, а не вопреки им.

Читать дальше →
Total votes 83: ↑78 and ↓5+73
Comments234

Рабочие места разные, черные, белые, красные

Reading time3 min
Views19K


Не так давно мы объявили конкурс рабочих мест. Хотя изначально контест был ориентирован на айтишников, но благодаря сарафанному радио в нем успели отметиться люди и других специальностей (и даже те, кто еще только учится). Фотографий было прислано ну очень много, практически со всего мира. По самым ярким снимкам можно практически составить психологический портрет человека. Безумно приятно, что столько людей откликнулось на наш призыв и поделились своим сокровенным — частичкой своего дома. В преддверии последней недели розыгрыша, на которой 15го числа будет разыграна та самая четвертая плойка, выделили 11 «номинаций» в которых отобрали по 3-4 самых-самых крутых, по нашему скромному мнению рабочих мест, поэтому предупреждаем сразу — в посте много фото. Выбор был очень непростым, потому что количество крутых рабочих мест просто зашкаливает.
Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments22

Чтобы пацанам было не стыдно показать

Reading time3 min
Views106K
Я стар и уже глуп, а у вас всё впереди, уважаемый программист. Но позвольте дать вам один совет, который наверняка поможет в вашей карьере – если, конечно, вы планируете остаться программистом.

Советы типа «писать красивый код», «хорошо комментировать свои доработки», «изучать современные фреймворки» — очень полезные, но, увы, второстепенные. Они идут прицепом к главному качеству программиста, которое надо в себе развивать.

Вот это главное качество: пытливый ум.
Читать дальше →
Total votes 315: ↑291 and ↓24+267
Comments172

Что нужно знать о тренажерах для памяти

Reading time5 min
Views19K
Кто из нас не хотел бы учиться быстрее и с лету запоминать новую информацию? Исследователи связывают сильные когнитивные способности с множеством факторов. Они определяют не только способность к запоминанию, но и качественную жизнь — здесь приводится успешная карьера, активная социализация и возможность просто интересно проводить свободное время.

Не всем везет родиться с фотографической памятью, но это не повод отчаиваться. Предпринять что-то в такой ситуации можно. Кто-то заучивает «Евгения Онегина», другие скупают пособия и сборники со специальными упражнениями. Третьи — все чаще обращают внимание на приложения, которые обещают своим пользователям феноменальные результаты, если те готовы ежедневно выделять 10-15 минут на упражнения. Расскажем, на чем основаны эти тренажеры, и чего от них ждать.

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments11

CreateRemoteThread для Linux

Reading time46 min
Views14K

Мицуха несёт новые потокиВ WinAPI есть функция CreateRemoteThread, позволяющая запустить новый поток в адресном пространстве другого процесса. Её можно использовать для разнообразных DLL-инъекций как с нехорошими целями (читы в играх, кража паролей, и т. д.), так и для того, чтобы на лету исправить баг в работающей программе, или добавить плагины туда, где они не были предусмотрены.


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


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


Для понимания текста потребуются базовые знания о системном программировании под Linux: язык Си, написание и отладка программ на нём, осознание роли машинного кода и памяти в работе компьютера, понятие системных вызовов, знакомство с основными библиотеками, навык чтения документации.

Читать дальше →
Total votes 76: ↑75 and ↓1+74
Comments27

Гонка вооружений

Reading time3 min
Views7.8K


В мае на Google I/O 2019 было объявлено о новом фреймворке для разработки декларативного UI под Android с названием Jetpack Compose. Через месяц на WWDC 2019 было объявлено о декларативном UI фреймворке под IOS с названием SwiftUI. После этих конференции стало понятно, к чему стремится мобильная разработка, и мне захотелось разобраться, что можно сделать с помощью этих фреймворков на данный момент и в чем разница между ними.
Читать дальше →
Total votes 21: ↑15 and ↓6+9
Comments10

О том, как я переизобретал медиацентр

Reading time11 min
Views133K

Raspberry Pi 3 model B


С приобретением нового телевизора возник вопрос, какую приставку для него брать. Возможностей Chromecast уже не хватало и хотелось полноценный медиацентр на Kodi. Телевизор со SmartTV покупать не вариант — Kodi можно установить только на Android (из SmartTV платформ), а к нему я отношусь без особой любви, к тому же он уже внутри телевизора, а не в отдельной коробке, которую можно безбоязненно перепрошивать. Ну а зачем мне полноразмерный Android, со всеми его сервисами и программами в виртуальной машине, без полноценного GNU/Linux окружения и, скорее всего, без обновлений? По той же причине также были отметены многочисленные готовые медиацентры на Android, хотя та же приставка от Xiaomi довольно хороша. Можно было бы подумать насчёт SmartTV на TizenOS, но для него нет Kodi.

Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments78

Как «чайник» делал UART <-> RS232 конвертер для Orange Pi

Reading time12 min
Views95K

Введение



Началось всё с того, что я купил себе Orange Pi, поддавшись рекламному слогану «аналог Rasberi Pi всего за 15$». Девайс был заказан на алиэкспрессе и прибыл через пятнадцать дней ещё в феврале. Тогда же были куплены все необходимые дополнительные компоненты: радиатор на процессор, 15 ваттный блок питания, карточка micro SD объемом 32 Гб, HDMI-кабель для подключения монитора. За неимением времени он пылился в ящике стола аж до июня. И вот наконец дошли руки проверить его работоспособность.

Читать дальше →
Total votes 30: ↑20 and ↓10+10
Comments48

Немного реверс-инжиниринга USB flash на контроллере SK6211

Reading time7 min
Views32K
Недавно, обсуждая нюансы работы USB flash на данном ресурсе, столкнулся с тем, что основная масса технически грамотных людей в силу отсутствия литературы не имеет представления об основных принципах работы NAND контроллеров, в связи с чем появляется масса далеких от реальности заявлений об особенностях оптимизации микропрограмм устройств, либо делаются неверные выводы о причинах выхода из строя самих устройств.

Дабы немного развеять иллюзии, попробуем методами реверс-инжиниринга проанализировать алгоритмы работы NAND контроллера производства SKYMEDI SK6211 на примере готового изделия в виде USB flash 8Gb, выпущенной компанией Kingston.


рис. 1
Читать дальше →
Total votes 56: ↑54 and ↓2+52
Comments41

А не сделать ли нам домашнюю файлопомойку на 90 терабайт?

Reading time2 min
Views46K


Собственно идея летает давно и начала свои корни с публикации компании backblaze как сделать дешевое петабайтное хранилище.

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

Но мы не ищем простых путей, всем кому интересно как это сделать своими руками прошу подкат.
Читать дальше →
Total votes 174: ↑148 and ↓26+122
Comments366

Новая редакция популярного бесплатного учебника электроники, архитектуры компьютера и низкоуровневого программирования

Reading time3 min
Views136K
Господа! Только что на сайте Imagination Technologies вышло исправленное издание бесплатного учебника на русском языке «Цифровая схемотехника и архитектура компьютера» Дэвида Харриса и Сары Харрис (кстати, они не супруги и вообще не родственники – просто так совпало). Предыдущее издание этого учебника вышло год назад, пост о нем собрал 145,000 просмотров на Хабре, количество скачиваний с британского сайта вызвало у его британских админов подозрение, что их атакуют русские хакеры, а впоследствие команду переводчиков лично благодарили за учебник преподаватели МФТИ, МВТУ им. Баумана, харьковского ХНУРЭ и других университетов.

silicon_russia_ad_selected_160730_174932

Книжка содержит «введение во все», доступное способному школьнику или младшему студенту, который после ее прочтения может спроектировать, написать на SystemVerilog или VHDL и реализовать на ПЛИС несложный, но при этом совершенно настоящий конвейерный процессор. Книга написана живым языком и для введения концепций, например конечных автоматов, использует примеры типа:


Читать дальше →
Total votes 75: ↑73 and ↓2+71
Comments90

7 полезных советов по защите резервных копий от вирусов-шифровальщиков

Reading time5 min
Views37K
Сегодня поговорим о проблеме вирусов-шифровальщиков (ransomware). Эти программы предназначены для вытягивания денег из обладателей зараженных компьютеров, поэтому их еще называют «программы-вымогатели».

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

Важной составляющей стратегии защиты данных всегда было наличие резервных копий, из которых можно выполнить восстановление. Рассмотрим же несколько рекомендаций от моего коллеги Rick Vanover относительно того, как как уберечь СХД резервных копий от шифровальщиков (вне зависимости от того, используете вы решения Veeam или других производителей). Итак, добро пожаловать под кат.


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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity