Pull to refresh
29
0
Николай Хозяинов @lll000lll

Восстановление данных

Send message

Просто о сложном: как я написал книгу по реверс-инжинирингу встраиваемых систем

Level of difficultyEasy
Reading time9 min
Views6K

Большую часть своей карьеры я руководил какими-то коллективами: брал себе стажеров, кого-то курировал, больше 10 лет преподавал в Бауманке. Мне всегда хотелось делиться своими знаниями. И в какой-то момент я понял, что у меня нет источника информации, который я могу дать человеку со словами: «На, прочитай, и на многие вопросы, которые тебя сейчас, в самом начале пути, мучают, ты получишь ответы — кратко, сжато и в доступном виде».

И тогда я подумал, что было бы неплохо написать книгу...

Читать далее
Total votes 30: ↑30 and ↓0+32
Comments12

Первый открытый GSM-телефон

Level of difficultyMedium
Reading time13 min
Views12K
Приветствую всех!

Последние годы довольно часто обсуждаются проекты open-source телефонов. В основном это всякие смартфоны на Linux, иногда припоминают и всякую экзотику типа OpenMoko. Но есть одна проблема — baseband, процессор модема, который непосредственно отвечает за всё его взаимодействие с сетями. Эти чипы исполняют проприетарный код, исходники которого распространяются под строгими NDA и недоступны практически никому.

Как насчёт того, чтобы создать открытый GSM-телефон? Именно об этом мы сегодня и поговорим, а заодно и попробуем запустить такой экземпляр.



Итак, в сегодняшней статье поговорим о том, насколько реально простому пользователю получить GSM-телефон, прошивка модема в котором работает без блобов. Попутно выясним, как это сделать и что из этого получится. Традиционно будет много интересного.
Читать дальше →
Total votes 65: ↑65 and ↓0+88
Comments99

«Магия вне Хогвартса», или Как разделить аудиосигнал на источники, обогнав существующие решения

Reading time8 min
Views6.6K

Привет, хабровчане! Меня зовут Дмитрий, я студент первого курса Вышки магистерской программы «Системный анализ и математические технологии».

В октябре прошлого года я прошёл отбор в Инженерно-математическую школу (ИМШ). Это совместная образовательная программа VK Education и НИУ ВШЭ. Я стал участником мастерской по прикладному искусственному интеллекту. В одном из проектов мы командой из двух человек (да, нас было мало, но мы были сильны!) решили реальную технологическую задачу под руководством эксперта VK и научных сотрудников университета. Нам нужно было придумать технологию разделения аудиосигнала на источники. В команде я отвечал за подготовку данных, а мой коллега — за проведение экспериментов. Хочу рассказать вам подробно, как мы решали эту задачу – надеюсь, что это будет для вас полезно.

Читать далее
Total votes 18: ↑17 and ↓1+24
Comments16

Есть 14 языков для хранения данных… Или как появился IEML

Level of difficultyMedium
Reading time4 min
Views2.7K

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

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

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

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

Изучение TypeScript — Полное руководство для начинающих. Часть 1 — Введение и примитивные типы данных

Reading time5 min
Views90K

Всем привет. Меня зовут Лихопой Кирилл и я - Fullstack-разработчик.

Представляю вашему вниманию cвою первую статью на Хабре, a точне перевод англоязычной статьи, на тему изучения TypeScript (TS, Тайпскрипт).

Другие части:
Часть 2 - Ссылочные типы данных
Часть 3 - Классы и интерфейсы
Часть 4 - Литералы и дженерики
Часть 5 - Строгий режим и сужение типов

Читать далее
Total votes 12: ↑8 and ↓4+7
Comments9

Обзор бесплатных ботов ChatGPT в телеграме

Reading time5 min
Views222K


Недавно мы писали про бесплатные фронтенды к ChatGPT, созданные главным образом по причине блокировки ОpenAI в РФ. Но технологии не стоят на месте — и сейчас уже в ходу телеграм-боты того же предназначения. Их появление совершенно логично, так как многим людям удобнее работать в привычном мессенджере. А в последние месяцы количество пользователей ChatGPT выросло многократно (и это ещё учебный год не начался).
Читать дальше →
Total votes 15: ↑10 and ↓5+8
Comments22

Ультра-маленькие демки под DOS

Reading time13 min
Views13K

В статье вы узнаете как сделать маленькие программы для MS-DOS на ассемблере, я покажу как рисовать 2D графику напрямую в видео-буфер. Может быть, вы даже вдохновитесь на создание собственного демо, которое будет ставить рекорды по размерам исполняемого файла.

Читать далее
Total votes 56: ↑55 and ↓1+73
Comments56

15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли

Reading time8 min
Views107K


Есть «Super Mario», признанная классика видео игр. Есть «Doom», который запускают на чайниках и тестах на беременность. Есть супер-популярные по статистике twitch.tv игры («League of Legends», «GTA V», «Fortnite», «Apex Legends») которые стримят пятая часть всех стриммеров.

А есть игры, на которые очень мало обзоров, но они супер крутые — игры про алгоритмы. Игры, в которых можно кодить на ретро-компьютере; игры, которые надо взламывать; игры, где можно программировать контроллеры или поведение персонажей; игры, где можно создавать свою игру внутри игры.

Под катом подборка классных игр про алгоритмы за последние 10 лет. Если что-то упустила — буду рада дополнениям.

Еще я создала канал в Telegram: GameDEVils, буду делиться там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →
Total votes 78: ↑73 and ↓5+88
Comments98

Ещё 20+ игр, которые прокачивают логику, алгоритмы и радуют умный мозг [по следам комментариев на Habr]

Reading time9 min
Views125K
image

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

Еще я веду канал в Telegram: GameDEVils, делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →
Total votes 64: ↑63 and ↓1+81
Comments59

Фитнес-трекер для скейта

Reading time18 min
Views19K

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

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

Компоненты, схема, плата, производство в Китае и результаты, обо всём этом –– под катом.

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

Всё, о чём должен знать разработчик Телеграм-ботов

Reading time15 min
Views641K

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

Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

Подробный гайд о том, как работать с ботами — под катом.

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

Ontol: подборка видео-лекций и каналов для продвинутых программистов

Reading time4 min
Views16K
image

Недавно на HackerNews обсуждали видео и каналы, где можно поучиться продвинутому программированию. Под катом — подборка из 30 полезняшек.

В перерывах между полетами на реактивном ранце и переводами материалов Y Combinator, я делаю проект «Ontol» — такое место в сети, где максимальная концентрация полезного, апгрейдящего мировоззрение материала (ценного на горизонте 10+ лет, например, такого), которым можно делиться бесплатно в 1 клик. (канал в телеграм: t.me/ontol)

Вот мои предыдущие бесплатные образовательные подборки:


Total votes 27: ↑25 and ↓2+37
Comments1

Windows 10 + Linux. Настройка GUI KDE Plasma для Ubuntu 20.04 в WSL2. Пошаговое руководство

Reading time9 min
Views93K


Введение


Данная статья предназначена вниманию системных администраторов, которые подготавливают типовые рабочие места на компьютерах под управлением ОС Windows 10, в том числе для разработчиков ПО.

Следует отметить, что существует определенная проблема, связанная с невозможностью интеграции ПО, полученного в on-line магазине Microsoft Store для использования в пользовательском образе Windows 10. Не вдаваясь в подробности уточню, что данная проблема связана с тем, что установленные из Microsoft Store программы связываются со служебной учетной записью Administrator, и при завершении создания пользовательского образа утилитой sysprep возникают обусловленные этим обстоятельством ошибки.

Рассмотренный в данной статье способ позволить избежать такой проблемы при подготовке образа ОС Windows 10 с предварительно настроенной подсистемой WSL2, а также с заранее подготовленным и настроенным образом ОС Ubuntu 20.04 с GUI KDE Plasma, который в свою очередь может иметь свой набор пользовательского ПО.

В сети Интернет имеется большое количество примеров и руководств по настройке подсистем WSL (т.е. WSL1 и сравнительно новой WSL2), с настройкой GUI интерфейса для linux систем на базе ОС начиная с версии Ubuntu 16.04 и заканчивая Ubuntu 20.04, но в основном это касалось рабочих столов на основе т.н. «легковесного» xfce4, имеющий вполне объяснимые ограничения в пользовательских настройках. Но что касается GUI KDE Plasma для Ubuntu 20.04, в сети не нашлось какой-либо существенной информации. Но именно этот вариант предоставляет конечному пользователю практически неограниченный набор настроек как внешнего вида системы, так и настроек оборудования, конечно с учетом текущих возможностей интеграции linux-систем, реализованных в подсистеме WSL2.
Читать дальше →
Total votes 16: ↑15 and ↓1+20
Comments43

Пол Грэм «Как стать богатым» (глава из книги Hackers&Painters)

Reading time28 min
Views12K
Это эссе было впервые опубликовано в книге Hackers & Painters, и в онлайн появилось только в декабре 2005 года. Я решил воскресить его с веб-архива, потому что это одно из самых важных эссе в моей жизни, а я сейчас делаю коллекцию лонгридов, которые оказали влияние на мировоззрение: проект Ontol

image

С чего бы вы начали, если бы вдруг решили разбогатеть? Я думаю, что самым лучшим решением было бы запустить новую компанию — стартап, или присоединиться к уже существующему. Этот способ показывает себя эффективным в течение сотен лет. Само слово «стартап» возникло в шестидесятые годы прошлого века, но то, что происходило в то время, было очень похоже на авантюрные торговые путешествия, которые предпринимались в средние века.

Обычно понятие стартап связано с высокими технологиями. Настолько сильно, что выражение «технологический стартап» — почти тавтология. Как правило, это небольшая компания, которая взялась за решение сложной технической проблемы.

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

Тезис


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

Давайте порассуждаем. Предположим, что вы хороший хакер (в первоначальном, положительном смысле этого слова) 20-25 лет.
Читать дальше →
Total votes 17: ↑14 and ↓3+20
Comments2

Используем Chrome DevTools профессионально

Reading time5 min
Views74K
И снова здравствуйте. В преддверии старта курса «JavaScript Developer. Professional» перевели

11 советов для тех, кто использует Chrome в качестве среды разработки.





Итак, по тем или иным причинам вы решили при разработке ориентироваться на Chrome. Вы открываете инструменты разработчика и приступаете к отладке кода.



Иногда вы открываете консоль, чтобы посмотреть вывод своей программы, или вкладку Elements, чтобы проверить CSS-стили элементов DOM.



А действительно ли вы разбираетесь в Chrome DevTools? На самом деле у инструментов разработчика множество мощных функций, которые облегчают жизнь, но о них мало кто знает.
Я расскажу о самых полезных из них.
Читать дальше →
Total votes 41: ↑38 and ↓3+48
Comments17

«Кто мутит воду – 2»: или всё, что вы хотели знать об обратном осмосе

Reading time13 min
Views387K


Мой первый материал — сравнение бытовых фильтров для воды «Кто мутит воду» готовился в запале исследователя-переселенца. Когда впервые переезжаешь в свою собственную квартиру, начинаешь уделять внимание мелочам — потому что делаешь и покупаешь для себя, и надо, чтобы всё было «на века». В посте я поделился опытом сравнения фильтров-кувшинов и сорбционных проточных фильтров разных производителей. Планов будить воинствующих комментаторов изначально не было… А потом в дверь личку постучали и сказали: «Пиши ещё, гостем будешь!». И я написал.
Total votes 99: ↑82 and ↓17+65
Comments354

Apple Fusion Drive, сохранение данных при замене жесткого диска

Reading time3 min
Views9.5K
В последнее время наблюдается резкий рост количества случаев безвозвратных потерь данных, связанных с недостаточным пониманием особенностей технологии Apple Fusion Drive.

Цель заметки — обратить внимание на эти особенности и предостеречь пользователей устройств Apple с технологией Fusion Drive от действий, ведущих к уничтожению информации при замене жесткого диска.

Кратко


Правильная последовательность действий:

  1. Сохранение всей важной информации. Если жесткий диск вышел из строя и самостоятельно сделать это не получается — обращение к специалистам.
  2. Замена диска в компьютере или ноутбуке с последующим возвращением в эксплуатацию.

Последовательность, приводящая к потере данных:

  1. Замена диска и возвращение устройства в эксплуатацию.
  2. Попытка копирования нужных файлов с извлечённого из устройства жесткого диска.
Читать дальше →
Total votes 19: ↑14 and ↓5+9
Comments55

Убийцы жестких дисков. Коэрцитивный выстрел в голову

Reading time9 min
Views230K
«Любую ценность контролирует лишь тот, кто в состоянии её уничтожить» Дюна, Фрэнк Герберт

Сегодня пойдет речь о том, как быстро убить 3.5" жесткий диск.

image

О весьма успешном захвате HDD спецслужбами:
Важность улики была настолько велика, что для получения ноутбука пришлось разыграть целую сцену в библиотеке, где брали Ульбрихта. Агенты ФБР (мужчина и женщина) начали публичную ссору. Ульбрихт отвлёкся, чтобы посмотреть на них — и в этот момент другой агент быстро вытащил ноутбук у него из-под рук. Затем уже был произведён стандартный арест.

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

На компьютере найдены копии паспортов и водительских лицензий Ульбрихта, расчётные ведомости по выплате зарплаты сотрудникам Silk Road, логи активности персонала, сканы удостоверений личности админов Silk Road.

Личный дневник Ульбрихта ведёт начало с 2010 года, когда у Росса появилась идея создать сайт Silk Road и продавать там задёшево галлюциногенные грибы, которые он выращивал. Ульбрихт описывает всё, чем занимался ежедневно, включая личные цели, повседневную работу и выпивки с друзьями.


Представьте себе: вам уже пилят дверь (производитель которой гарантировал, что пилить ее будут не менее 30 секунд), а на жестком диске у вас много интересного. Какие ваши действия?
Читать дальше →
Total votes 101: ↑101 and ↓0+101
Comments211

Охота на зомби из облака

Reading time6 min
Views12K
На стремительно развивающийся рынок PaaS приходят все новые игроки. Не так давно в бой вступила IBM, представив широкой программерской общественности сервис Bluemix. Просто облаком с возможностью выполнения Push-to-Deploy уже никого не удивишь, и поэтому конкуренция переместилась из зоны «посмотрите, у нас тоже есть облако!» в сторону «у нас удобный интерфейс, готовые сервисы “из коробки” — и все это совершенно бесплатно, пока ваш проект не вырос». Под катом я покажу, как с помощью этой современной системы PAAS и всего нескольких строк кода сделать сервис, который будет внимательно следить за сайтом какой-нибудь онлайн-игры и присылать push-уведомления, как только появится любопытная новость.

Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments5

Правим баг без исходных кодов

Reading time9 min
Views39K
image

В предыдущей статье мы разобрали, как реверс-инжиниринг может помочь в получении каких-либо преимуществ перед остальными пользователями. Сегодня мы поговорим ещё об одном применении обратной разработки — исправлении багов в отсутствии исходных кодов приложения. Причин заниматься подобными вещами может быть целое море — разработка программы давным-давно заброшена, а её сорцы автор так и не предоставил общественности / разработка ведётся совершенно в другом русле, и авторам нет никакого дела до возникшего у вас бага / etc, но их объединяет общая цель — исправить сломанный функционал, который постоянно вам досаждает.

Что ж, ближе к делу. Есть такая широко известная в узких кругах программа под названием «Govorilka». Как объясняет её автор, это ничто иное, как «программа для чтения текстов голосом». По сути, так оно и есть. При помощи неё было озвучено множество популярных и не очень видео, рапространившихся по всей сети. Программа имеет консольную версию под названием «Govorilka_cp», которую удобно вызывать из своих собственных приложений, что, собственно, я и сделал в одном из своих проектов.

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

Учитывая, что говорилка не обновлялась уже несколько лет, а сам автор оставил вот такое «послание» на своём сайте

image

, я понял, что надеяться мне не на кого, и решать проблему придётся самому.

Как протекал процесс, и что из этого вышло, читайте под катом (осторожно, много скриншотов).
Читать дальше →
Total votes 93: ↑93 and ↓0+93
Comments53
1

Information

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