Рубрика «реверс-инжиниринг» - 25

Вытаскиваем ПО из запароленного микроконтроллера Renesas M16C - 1

Есть у меня знакомый, который занимается ремонтом автомобильного железа. Он как-то принес мне микроконтроллер, выпаянный из блока управления автономного отопителя. Сказал, что его программатор это не берет, а ему хотелось бы иметь возможность переливать прошивки туда-сюда, т.к. блоков много, в железе они часто одинаковые, а вот агрегаты, которыми они управляют отличаются. И вроде и блок есть взамен неисправного, но ПО разное и заменить просто так нельзя. Так как задачка была интересной, решил покопаться. Если тема интересна и вам, прошу под кат...Читать полностью »

Реверс-инжиниринг неизвестного процессора по единственной программе - 1

TL;DR: мы выполнили обратную разработку программы, написанной для полностью неизвестной архитектуры ЦП без какой-либо документации на ЦП (без эмулятора, без ISA, без всего) всего за десять часов. Из статьи вы узнаете, как нам это удалось…

В прошлые выходные мы с командой CMU PPP поучаствовали Teaser CTF 2019 команды Dragon Sector, чтобы расслабиться и отойти от жёсткого дедлайна CHI 2020. Dragon Sector — это уважаемая польская команда, имеющая историю интересных CTF, поэтому мне было интересно, что у них есть в запасе.

Решив “ummmfpu”, — задачу, в которую входил реверс-инжиниринг байткода для сопроцессора с плавающей запятой Micromega uM-FPU, я решил поучаствовать в соревновании по решению задачи CPU Adventure, которая на тот момент не была решена ни одной из команд (в результате мы оказались единственными, кто справился с заданием).

Вот описание задачи CPU Adventure:

Мой дедушка в 60-х годах занимался разработкой компьютеров. Наводя порядок на его чердаке, я нашёл странную машину. Рядом с машиной лежала стопка перфокарт с пометкой “Dragon Adventure Game”. Спустя какое-то время мне удалось подключить её к современному оборудованию, но игра слишком сложная и я не могу добраться до конца без читерства. Сможете мне помочь? Прилагаю транскрипцию перфокарт, используемых в машине. Утверждается, что машина имеет 4 регистра общего назначения, 1 кибибайт памяти данных и 32 кибибайта памяти команд. Чтобы сыграть в игру, подключитесь к серверу следующим образом: socat tcp4-connect:cpuadventure.hackable.software:1234 fd:0,rawer Подсказка: процессор машины уникален, не пытайтесь гуглить информацию по нему.

game.bin

Читать полностью »

Перевод статьи подготовлен специально для студентов курса «Реверс-инжиниринг».

Microsoft Edge – Универсальный XSS - 1


Универсальный XSS (uXSS) – это баг браузера, который дает возможность выполнять код на JavaScript на любом сайте.

Кажется, будто XSS есть на всех сайтах и выглядит это очень интересно. Что еще интереснее, так это то, как я нашел эту ошибку. Обычно, если речь заходит о uXSS, то это скорее всего связано с элементом IFRAME или возней с URL, но я никогда не думал, что найду XSS-уязвимость, используя функцию print().
Читать полностью »

Лейся, Fanta: новая тактика старенького Android-трояна - 1

Однажды вы захотите продать что-нибудь на Avito и, выложив подробное описание своего товара (например, модуль оперативной памяти), получите вот такое сообщение:

Лейся, Fanta: новая тактика старенького Android-трояна - 2

Читать полностью »

Всем привет! В преддверии старта нового потока по курсу «Реверс-инжиниринг» делимся с вами переводом очень интересного материала. Приятного прочтения

Вирус-майнер с “Heaven’s Gate” - 1


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

Прорываемся сквозь защиту от ботов - 1

В последнее время на многих зарубежных сайтах стала появляться incapsula — система которая повышает защищённость сайта, скорость работы и при этом очень усложняет жизнь разработчикам программного обеспечения. Суть данной системы — комплексная защита с использованием JavaScript, который, к слову, многие DDOS боты уже научились выполнять и даже обходить CloudFlare. Сегодня мы изучим incapsula, напишем деобфускатор JS скрипта и научим своего DDOS бота обходить её!
Читать полностью »

image

На данный момент существует два основных подхода к поиску уязвимостей в приложениях — статический и динамический анализ. У обоих подходов есть свои плюсы и минусы. Рынок приходит к тому, что использовать надо оба подхода — они решают немного разные задачи с разным результатом. Однако в некоторых случаях применение статического анализа ограничено — например, когда нет исходного кода. В этой статье мы расскажем про довольно редкую, но очень полезную технологию, которая позволяет совместить плюсы статического и динамического подходов — статический анализ исполняемого кода.
Читать полностью »

image
В 1985 году Алексей Пажитнов и Вадим Герасимов выпустили в свет Tetris. Эта увлекательная и вызывающая сильное привыкание игра требовала от игроков соединять фигуры, появлявшиеся в случайном порядке. С того времени было выпущено более 150 лицензионных версий «Тетриса». Отличаясь игровыми режимами, правилами и реализацией, все они игрались слегка (или очень) по-разному. Рандомизатор «Тетриса» — это функция, возвращающая случайно выбранную фигуру. На протяжении многих лет правила выбора фигур эволюционировали, оказывая влияние на геймплей и саму случайность. Некоторые из этих алгоритмов были подвергнуты реверс-инжинирингу и задокументированы. Я составил список рандомизаторов, которые считаю важными, и покажу в статье, как с годами менялось внутреннее устройство «Тетриса».
Читать полностью »

Есть у меня пара электрокарнизов компании Akko — AM82TV. Модель эта выделяется из собратьев наиболее полным набором интерфейсов управления. Шторами можно управлять по радиоканалу, есть “сухие контакты”, пофазное управление (замыканием управляющих проводов с сетевыми). Есть интерфейс RS485 — это, если захочется подключить шторы к “умному дому”. Можно также открыть/закрыть шторы просто дернув их рукой в нужном направлении. “Из коробки” не хватает, пожалуй, только web-интерфейса, ну и MQTT.

Электрокарнизы у меня уже давно, работают надежно, но время от времени стало появляться желание их разобрать — из любопытства посмотреть что внутри и есть ли возможность засунуть туда ESP8266 (или ESP32) с тем, чтобы добавить недостающее. Можно, конечно, подключить всё снаружи, но лучше если внешний вид останется прежним и всё будет спрятано внутри.

Не чини того, что не сломано — это не про меня. Поначалу я пытался гнать от себя дурные идеи, но со временем зуд усиливался и вот, настал момент, когда с ним уже было невозможно бороться. Я снял мотор с электрокарниза и разобрал его. Начальный осмотр должен был дать ответы на два вопроса: есть ли место для ESP8266 и можно ли использовать встроенный источник питания. Разобралось все просто. Достаточно открутить несколько винтов с торцов мотора. Единственно — шлицы винтов сделаны не под отвертку, а под шестигранный ключ torx. После этого можно извлечь содержимое — коллекторный мотор в одном корпусе с редуктором и датчиком вала двигателя, блок питания на 24 вольта и плату управления.
Читать полностью »

TL;DR


VKScript — это не JavaScript. Семантика этого языка кардинально отличается от семантики JavaScript. См. заключение.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js