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

Реверс-инжиниринг *

Расковырять и понять как работает

Сначала показывать
Порог рейтинга
Уровень сложности

Как я случайно поучаствовал в Bug Hunting Яндекса и взломал почти все умные колонки и ТВ

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

Предыстория:

Являюсь инженером и одновременно владельцем сервиса по ремонту электроники.
Однажды мне принесли Яндекс Станция Мини и попросили поглядеть. Дефект был: нет звука, но при этом слышит. Не исправен оказался DAC (i2s) цифро‑аналоговый преобразователь, но найти такой оказалось очень проблемно, поэтому была найдена точно такая же колонка, но заблокированная из за не оплаченной подписки.
Суть подписки в том, что устройство покупается в рассрочку и оплачивается ежемесячно до полного выкупа, а если пропустить платёж то устройство блокируется, пока он не будет внесен. Идея, конечно, хорошая и полезная, но этим начали пользоваться мошенники покупая колонки на подписке, а потом сбывая их за полную стоимость, пока они еще активны и в последствии жертве устройство разблокировать «НЕВОЗМОЖНО».

Пересадка DAC полностью оживила колонку, а вот плату от заблокированной отставили мне. Бросив её на полку, я благополучно о ней забыл.

Однако, через пару месяцев, была сильная просадка по работе, было прям скучно, и она мне снова попала в руки. Когда‑то давно, более 15 лет назад, я занимался портирование android 1.6 на wm телефон toshiba g900, поэтому решил оживить знания. Тогда я еще не знал, что такое кроличья нора, насколько она глубока и как туда залезть.

Оговорочка: сразу сообщаю, я не был знаком с Yandex f*ck или с кем‑то еще, всё делал сам в виде челленжа для себя, не преследуя никакую наживу. Всё было проделано исключительно в целях самообразования, а цикл статей решил написать так как Яндекс не совсем честно поступил по моему субъективному мнению, а именно не считает, что уязвимость есть и возможно не собирается/не может это исправить.

Follow the rabbit

Новости

Запускаем раритетные платы фискальной памяти

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.6K
Приветствую всех!
Давным-давно, во второй половине девяностых, с появлением больших супермаркетов начали получать распространение различные системы по автоматизации торговли, в числе которых были кассы на базе обычных компьютеров. Примерно в то же время появилось требование оснащать кассовые аппараты фискальной памятью, что в сочетании с подобными системами породило немало кажущихся сейчас забавными или просто нелогичными конструктивных решений.



Что же это были за девайсы и чем такие кассовые аппараты отличались от обычных ПК? Сейчас и узнаем: взглянем на железо пары таких компьютеров и фискальный регистратор тех же годов. И, конечно же, попробуем увидеть всё это в работе.
Читать дальше →

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции

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

Нет, это не шутка и не кликбейт. Такое действительно возможно — правда через небольшой хак.

Недавно я задался вопросом: а возможно ли написать для ARM нативную программу, которая будет бесшовно работать сразу на 4-х операционных системах без необходимости перекомпиляции для разных платформ и ABI. Мне очень хотелось реализовать возможность писать кроссплатформенные эльфы для мобильных телефонов из нулевых и попытаться портировать на них эмуляторы ретро-консолей. Погрузившись в документацию на исполняемые форматы, я пришёл к выводу, что да — это возможно и смог реализовать такую программу на практике без читерства по типу VM! Всех гиков приглашаю под кат!

Читать далее

Сенсорные выключатели советской эпохи

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров23K
Приветствую всех!
Однажды на просторах форума по старой светотехнике мне попался пост про такой девайс как «Сезам» — первый (он же в каком-то плане и последний) советский выключатель света с сенсорным управлением. Тогда автору не удалось ни запустить его, ни разобраться, как он работает. И что-то меня сильно заинтересовало в них, отчего я решил раздобыть несколько экземпляров на опыты и узнать всё, что так и не смогли сделать до меня.



Итак, в сегодняшней статье посмотрим на эти интересные и во многом неоднозначные девайсы, детально разберёмся, как они устроены и работают, а также оживим доставшиеся мне экземпляры. Заодно выясним самое главное: есть ли у них какие-то шансы сегодня, или же единственная судьба у них — стать частью коллекции советской техники?
Читать дальше →

Еще пара слов об устройстве NVRAM в UEFI-совместимых прошивках (про Dell DVAR)

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

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

Эта статья - практическая реализация этого желания, а поговорим мы в ней о формате Dell DVAR, и немного о декларативном языке для написания парсеров Kaitai Struct, на котором я недавно переписал парсеры всех известных UEFITool NE форматов NVRAM. 

DVAR я дрожащая, или право имею?

Эмулируем iPhone в QEMU

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

Мы начали наше исследование по эмуляции iOS с изучения уже существующих опенсорсных решений. Ранее мы уже успешно запускали alephsecurity/xnu-qemu-arm64, но нас беспокоило то, что проект имеет статус read-only.

Затем мы попробовали TrungNguyen1909/qemu-t8030 и обнаружили в нём довольно много интересных фич:

возможность восстановления iOS (при помощи второго QEMU-«компаньона» для подключения по USB)

запуск iOS 14

самую свежую версию QEMU

удобную wiki о запуске эмулятора

Благодаря этому проекту мы быстро получили доступ к оболочке и ssh, изменив System/Library/xpc/launchd.plist, что стало отличной отправной точкой.

Читать далее

Реализация алгоритма PolyUnpack для распаковки вредоносного ПО

Время на прочтение9 мин
Количество просмотров802

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

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

Читать далее

Децензурировать видео теперь проще, чем когда-либо

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

В прошлом месяце попросил ребят взломать часть моего видео на YouTube. Конкретнее — восстановить содержимое папки, которую «запиксил» начиная с отметки времени 4:57. Годами все так делают, чтобы размазать, точнее, «расквадратить» части видео с конфиденциальной информацией. И все это время слышно:

— Небезопасно же! Захотят — прочитают!

Так это правда? Как на самом деле‑то? Вопрос не праздный. Чтобы докопаться до истины, кинул клич:

— Пятьдесят баксов тому, кто скажет, что написано под квадратиками!
Читать дальше →

Прямая без препятствий. Часть 2. Защита мобильных приложений — выход найден?

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

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

Меня зовут Николай Анисеня, и я продолжаю рассказывать о безопасности мобильных приложений. В предыдущей статье мы подробно поговорили о состоянии защищенности приложений и девайсов на настоящий момент. Если коротко — приятных новостей мало. Но выход есть. В этой статье расскажу о перспективах защиты.

Читать далее

Моя борьба с автоматикой шлагбаума SPbarrier

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

Стояла задача научиться управлять шлагбаумом через RS-485. Шлагбаум питерской конторы АПС-СПБ с китайской автоматикой управления. Можно управлять сухими контактами и через gsm модуль, который поддерживает управление через приложение (по факту замыкает тот же сухой контакт). Но как известно, это не наш метод!

Читать далее

Чиню трейнер для игры Enter the Matrix

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

Всем привет,

Решил я давеча поиграть в одну из своих самых любимых игр (ещё со времён компьютерных клубов) про похождения Штирлица Нео, Матвея Морфеуса и про их побег из дурдома Матрицы. Но, оказалось, что читы не работают, таблиц для Cheat Engine нет, а возраст уже не тот, чтобы тащить эту игру как есть.

Так я и пришёл к тому, чтобы взять да починить трейнер для этой игры от PiZZADOX. Точнее, подсмотреть, чего они там в процессе игры патчат и сделать точно так же, но на постоянной основе (прямо в EXE). Об этом и будет мой рассказ...

Читать далее

Патентный поиск без боли. Руководство для инженеров и не только

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

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

Читать далее

Восстановление блока SRS Mitsubishi

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

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

Читать далее

Ближайшие события

Обратное проектирование: от машиностроения до электроники

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

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

Реверс-инжиниринг — это инженерный шаманизм. Ты берёшь объект, у которого нет документации, нет автора, нет паспорта — и превращаешь его в цифру, модель, процесс. Это значит, что производить можно снова. И снова. И снова.

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

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

Читать далее

Декодируем 90-ые: реверс-инжиниринг и криптография на заре разработки ПО

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

В августе 2020 года к нам обратился клиент с кэшем из заблокированных документов QText из середины 90-х, пароль для которых он утерял.

QText — это редактор из времён DOS, использовавшийся для обработки иврита и английского текста. Написан он на Pascal и был выпущен где-то за 15 лет до того, как мы с @Elisha занялись обратной разработкой.

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

Надеюсь, нам удастся раскрыть некоторые особенности ранней разработки потребительского ПО в Израиле. В частности, мы хотим показать, как в те времена реализовывалась криптография. Ещё одна наша цель — это сохранить описанные здесь знания и инструменты — многие из которых едва дотянули до нашего времени.
Читать дальше →

ЛИСС. Оживляем самый суровый транспортный информатор

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.1K
Приветствую всех!

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



Итак, в сегодняшней статье поговорим о том, что это за устройство, а заодно и постараемся его оживить. Заодно разберёмся, как оно работает. Традиционно будет много интересного.
Читать дальше →

Внедрение кода в Mach-O файл своими руками для iOS

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

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

Читать далее

Пятнадцатый релиз ReactOS в четвертой ветке

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

Без каких-то предварительных новостей, 21 марта 2025 года проект ReactOS выпустил новый релиз — 0.4.15. В данной статье мы рассмотрим новые функции релиза и некоторые особенности.

Читать далее

Имитатор касаний. Ч2: Железная часть

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

Вводить руками 10000 вариантов пароля неудобно и долго. Человек часто сбивается и пропускает варианты. Лучше сделать имитатор касаний, который быстренько переберёт все ключи сам. Его можно использовать и для других целей. А ещё это очень весело :)

В этой части выясним направление осей координат и займёмся железом.
Читать дальше →

Генератор случайных чисел, застрявший на одном значении

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

Моё исследование посвящено мини-игре Green Toad House в New Super Mario Bros (NSMB). В этой мини-игре используется случайность, поэтому в процессе я изучил генератор случайных чисел (RNG) NSMB.

Чтобы пост не был слишком длинным, будем считать, что вы знаете, что такое RNG, а также о концепции порождающих значений (seed). Если нет, то вот хорошие ресурсы для изучения: pannenkoek2012 в YouTube (SM64)Retro Game Mechanics Explained в YouTube (SMW)Википедия.

Читать далее
1
23 ...