Рубрика «reverse engineering» - 11

Поддавшись общей волне энтузиазма относительно систем «Умный дом», а также имея профильное образование инженера АСУ ТП, с удовольствием занимаюсь данной темой в виде хобби. В этой статье поделюсь с вами своим опытом реверс-инжиниринга популярного модуля ESP8266.

Reverse Engineering ESP8266 — часть 1 - 1

Содержание

  1. Введение
  2. Архитектура ESP8266
  3. Инструменты
  4. Загрузка прошивки для исследования
    • ELF
    • Системная прошивка модуля
    • Пользовательская прошивка
  5. Ассемблер Xtensa
    • Регистры
    • Базовые операторы
    • Функции
    • Условные переходы
  6. Заключение
  7. Ссылки

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

Точки соприкосновения JavaScript и Reverse Engineering - 1

Если вы посмотрите описания вакансий на позицию Reverse Engineer, то вряд ли встретите там требование знания JavaScript. А если и встретите, то только в контексте его деобфускации на разных вредоносных страницах, обычно используемых эксплойт-паками.
И возможно ли вообще сосуществование JS (который некоторые даже называют веб-ассемблером) и мира low level с Assembler во главе?

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

Во-первых, хочу отчитаться по прошлому RSoC'14, поблагодарить аудиторию хабра за ту помощь, позволившую нам организовать это мероприятие.

Благодаря тому, что не было необходимости следовать правилам Google, мы смогли изменить двух «официальных» участников «на лету».
В прошлом году мы выбрали двух официальных участников и 6 «неофициальных» (без денежного вознаграждения). Однако, в процессе продвижения кодинга осталось лишь трое неофициальных участников. Но, так как им успешно удалось завершить свои задания, мы поделили собранные деньги поровну между ними (порядка $700 на человека). Рассмотрим задания поподробнее:

Два задания не были выполнены/завершены — это полный перевод всего фреймворка на использование базы данных sdb и доводка до ума webui.

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

Результаты Radare Summer of Code 2014 и организация нового RSoC-GSoC 2015 - 1Во-первых, это поддержка парсинга сложных структур и отображение их в необходимом формате, с помощью команды pf и парсера описания данных на языке Си (struct/union, etc).

Во-вторых, это поддержка загрузки и использования сигнатур формата FLIRT (из IDA Pro), а также интеграция с Yara. Благодаря тому, что это задание было успешно выполнено, radare2 может быть использован для анализа malware с использованием существующих баз сигнатур, накопленных за годы работы с IDA Pro и Yara. Код интеграции с Yara вынесен в отдельный репозиторий.

Ну и последнее успешно выполненное задание — это поддержка PDB. Основное отличие от многих отладчиков и дизассемблеров (кроме IDA Pro) — это парсинг формата самостоятельно, без использования вызовов системных библиотек Windows.

Кроме того, с прошлого года значительно улучшилась ситуация с документацией: radare.today/radare2-is-documented/
Читать полностью »

Пишем бота для MMORPG с ассемблером и дренейками. Часть 4.5 - 1 Привет %username%! Сделаем небольшую остановку, что бы расставить все точки над «и», понять что к чему и как работает. За последнее время, я получил очень много вопросов связанных с офсетами для различных версий World of Warcraft, множество предложений по способам реализации инъекции сторонних инструкций в игровой процесс и теперь настало время это все обсудить. Если есть вопросы или предложения, добро пожаловать под кат!
Читать полностью »

Пишем бота для MMORPG с ассемблером и дренейками. Часть 4 - 1 Привет, %username%! Итак, продолжим написание нашего бота. Из прошлых статей, мы научились находить адрес перехватываемой функции для DirectX 9 и 11, исполнять произвольный ассемблерный код в главном потоке игры скрывая его от различных методов защиты и получать информацию об окружающем мире. Другими словами, мы можем совершать осознанные действия в игре. И для начала я предлагаю научиться передвигаться! Читать полностью »

Пишем бота для MMORPG с ассемблером и дренейками. Часть 3 - 1 Привет, %username%! Итак, продолжим написание нашего бота. Из прошлых статей, мы научились находить адрес перехватываемой функции для DirectX 9 и 11, а так же исполнять произвольный ассемблерный код в главном потоке игры и прятать от различных методов защиты. Теперь все эти знания можно применить в реальных боевых условиях. И начнем мы с исследования программы, для которой мы и пишем бот. Читать полностью »

Пишем бот для MMORPG с ассемблером и дренейками. Часть 2 - 1 Привет, %username%! Привет, %username%! И так, продолжим написание нашего бота. Из прошлых статей, мы научились находить адрес перехватываемой функции для DirectX 9 и 11, а так же исполнять произвольный ассемблерный код в главном потоке игры. Естественно, эти все операции, могут быть замечены защитой игры и вы будете наказаны. Но сегодня, я покажу как спрятать этот код от защиты, в том числе и от такого монстра, которого все боятся, как Warden. Как я и говорил, я не ботовод потому, что меня не поймали. Жду вас под катом! Читать полностью »

Пишем бота для MMORPG с ассемблером и дренейками. Часть 1 - 1Привет, %username%! Итак, продолжим написание нашего бота. Сегодня мы внедрим наш код в игровой процесс (не без помощи ассемблера), а позже позаботимся и о том, что бы его было не так просто найти, ведь наказывают не за то что жульничаешь, а за то что попался. И если быть до конца честным то даже не совсем в сам процесс игры будем его внедрять, да и 1 раз только за весь жизненный цикл.

Но обо всем по порядку, так что жду Вас под катом!

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

Пишем бот для MMORPG с ассемблером и дренейками. Часть 0 - 1 Привет, %username%! Покопавшись в статьях хабра, я нашел несколько оных про написание ботов для MMORPG. Несомненно это очень интересные и познавательные статьи, но возможности в них весьма скудны. Что если, например нужно пофармить мобов или руду по заданному маршруту убивая агрессивных мобов, игроков и всех кто будет на Вас нападать по пути, выкрикивая им вслед непристойности, да что б еще и определить не смогли. В общем полная эмуляция среднестатистического MMORPG игрока. Написание макросов для AutoIt, симуляция кликов в окне, анализ пикселей под курсором — это совсем не наш вариант. Заинтриговал? Добро пожаловать под кат! Читать полностью »

Данная заметка может оказаться полезной для людей, который пишут bare-metal код и используют ThreadX в своих задачах (по собственному выбору или по навязыванию SDK). Проблема в том, что что бы эффективно отлаживать код под ThreadX или другую многопоточную операционную систему нужно иметь возможность видеть эти самые потоки, иметь возможность посмотреть стек-трейс, состояние регистров для каждого потока.

OpenOCD (Open On Chip Debugger) заявляет поддержку ThreadX, но не сильно явно оговаривает её широту. А штатно, на момент написания статьи, в версии 0.8.0, это всего два ядра: Cortex M3 и Cortex R4. Мне же, волею судеб, пришлось работать с чипом Cypress FX3 который построен на базе ядра ARM926E-JS.

Под катом рассмотрим что нужно сделать, что бы добавить поддержку вашей версии ThreadX для вашего CPU. Акцент делается на ARM, но, чисто теоретически, вполне может подойти и для других процессоров. Кроме того, рассматривается случай, когда доступа к исходникам ThreadX нет и не предвидится.
Читать полностью »


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