Обновить
118.44

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

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

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

Исследуем результат работы php-транслятора

Время на прочтение17 мин
Охват и читатели26K
Здравствуйте. Думаю, что большинство веб-программистов знает, как работает php-интерпретатор.

Для тех, кто не знает:
Вначале, написанный нами код разбирается лексическим анализатором. Далее, полученные лексемы, передаются в синтаксический анализатор. Если синтаксический анализатор дал добро, то лексемы передаются транслятору, а он, в свою очередь, генерирует так называемые opcodes (operation codes). И только после этого, в дело вступает виртуальная машина PHP (та самая Zend Engine) которая и выполняет наш алгоритм из получившихся opcodes. Opcodes так же называют эдаким php-шным ассемблером.
Данная статья расскажет вам о том, какие opcodes и в каких случаях генерируются. Конечно, рассказать про все opcodes в рамках одной статьи не получится, но в данной статье будет рассмотрен конкретный пример и на его основе мы попытаемся разобраться что к чему у этих opcodes. На мой взгляд, самое главное, что вы узнаете прочитав статью, это то, как на самом деле происходит выполнение ваших исходных текстов и, возможно, это поможет вам в лучшем понимании языка php.

Советую вам налить себе чашечку капучино или просто зеленого чая, т.к. под катом листинги opcodes и php-кода…
Читать дальше →

Доклад Алексея Брагина на Russian Open Source Summit 2015

Время на прочтение2 мин
Охват и читатели4K
image16 марта 2015 года в Москве в очередной раз состоялся Russian Open Source Summit.

ROSS 2015 был призван осветить качественно новую роль Open Source как основного движителя развития современных информационных технологий в эпоху облаков, мобильности и социальных сетей. Только идеология Open Source сегодня позволяет реализовать на практике концепцию универсальной технологической платформы, обеспечивающей интероперабельность информационных систем и сервисов различных производителей. В качестве ярких примеров здесь можно привести Open Source проекты облачной операционной платформы OpenStack, программно-определяемых сетей (SDN), контейнерных технологий автоматизации развёртывания и управления приложениями в среде виртуализации (Docker, Rocket и др.).

В рамках мероприятия с докладом об опыте, полученном в процессе разработки ReactOS, выступил координатор проекта Алексей Брагин.
Читать дальше →

Исследование защиты игры Limbo. Кейген

Время на прочтение7 мин
Охват и читатели70K


Всем привет. Многие знают об этой замечательной игре — LIMBO! Вы даже наверняка покупали ее в Стиме, или качали с торрентов…
Я тоже ее купил когда-то (что и вам советую!), и прошел). Но, как всегда, мне было этого мало, и я, из спортивного интереса, решил изучить ее защиту. Так и появился кейген к игре LIMBO.
Читать дальше →

Исследование защиты PVS-Studio

Время на прочтение4 мин
Охват и читатели55K
PVS-Studio

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

Reverse Engineering ESP8266 — часть 2

Время на прочтение5 мин
Охват и читатели48K
Продолжаем исследование модуля ESP8266. В этот раз рассмотрим процесс загрузки прошивки для дизассемблирования.

Первая часть статьи здесь.


Содержание


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

Читать дальше →

Reverse Engineering ESP8266 — часть 1

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


Содержание


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

Читать дальше →

Видео от пользователя: Windows 3.11 внутри ReactOS

Время на прочтение1 мин
Охват и читатели21K
40-летнему юбилею корпорации Microsoft посвящается.



На видео один из пользователей нашего проекта демонстрирует работу Windows 3.11 внутри ReactOS.

Исследование мобильного jar трояна

Время на прочтение2 мин
Охват и читатели16K
Бывает так, что вам приходит смс следующего содержания: «Вам пришло MMS-сообщение, которое можно посмотреть по ссылке: ...» Хотя сейчас мобильные вирусы уже полностью переключились на Android-устройства, все же остались старинные «динозавры», которые до сих пор терроризируют мирных жителей.

В мои руки попал файл «mms5.jar», который был мгновенно детектирован Антивирусов Касперского как «троянская программа Trojan-SMS.J2ME.Smmer.f». Его мы и разберем подробно.
Читать дальше →

DIY управление телевидением Дом.ru с планшета при помощи ардуино

Время на прочтение3 мин
Охват и читатели38K
Пусть описание принципа работы уникального смарт-девайса для упрощения взаимодействия в системе «человек машина» выглядит как реклама таблеток для похудения, но в данном случае это лучший способ объяснить для чего, почему и как собирался данный девайс.

Тему телевидения затрагивать в статье не буду, расскажу только про «гаджетостроение» и разработку интерфейса.
Читать дальше →

Результаты Radare Summer of Code 2014 и организация нового RSoC/GSoC 2015

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

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

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

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

Во-первых, это поддержка парсинга сложных структур и отображение их в необходимом формате, с помощью команды pf и парсера описания данных на языке Си (struct/union, etc).

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

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

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

Как крадут деньги, которых нет. Или кое-что новенькое о криптовалютах

Время на прочтение7 мин
Охват и читатели45K
Привет, Хабр!

Безусловно, ты знаешь о криптовалютах очень много, но сегодня мы принесли тебе кое-что новенькое: исследование вредоноса, созданного для кражи кошельков 80 криптовалют, включая биткойн вместе со всеми реквизитами доступа к ним.

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

Ниже мы расскажем о том, как вредонос работает, и как не оказаться в группе риска. И конечно ещё раз просуммируем информацию о самих криптомонетах и их родственниках.

Кстати, финансовые регуляторы считают биткойн и всех его друзей валютными суррогатами, и мы ни в коем случае не пропагандируем их использование, а наоборот, призываем пользоваться фиатными деньгами как надёжным и стабильным платёжным инструментом. (Тут мог бы быть смайл)
Читать дальше →

Hotpatch. Патчим память ядра Windows

Время на прочтение6 мин
Охват и читатели23K
В версии Windows Server 2003 SP1 была представлена технология, называемая «хотпатчингом». То есть обновление системы «на лету», без необходимости ее перезагрузки. Технология позволяет устанавливать патчи на отдельные функции (как пользовательские, так и режима ядра). В версии 8.1 возможность установки хотпатчей была ликвидирована. Примечательно, что использовать данную возможность можно из user-mode'a даже в случае kernel-mode патчей.
Читать дальше →

Пишем бота для MMORPG с ассемблером и дренейками. Часть 4.5

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

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

Работы по модернизации эксплорера в ReactOS завершены

Время на прочтение1 мин
Охват и читатели36K
image Коммитом 66418 была фактически завершена основная часть работ по модернизации графической оболочки ReactOS, и теперь она очень сильно напоминает файловый эксплорер из Windows 2000. После этого Giannis Adamopoulos посчитал работу над новым проводником в целом завершённой и закрыл баг-репрорт класса «эпик» CORE-7330. Основной разработчик новой оболочки, David Quintana, помимо контрактных денег получил ещё и постепенно собранные через Bountysource 100$.

О начале апгрейда на новый эксплорер можно почитать по ссылке.

Скриншоты

Пишем бота для MMORPG с ассемблером и дренейками. Часть 4

Время на прочтение4 мин
Охват и читатели16K
Привет, %username%! Итак, продолжим написание нашего бота. Из прошлых статей, мы научились находить адрес перехватываемой функции для DirectX 9 и 11, исполнять произвольный ассемблерный код в главном потоке игры скрывая его от различных методов защиты и получать информацию об окружающем мире. Другими словами, мы можем совершать осознанные действия в игре. И для начала я предлагаю научиться передвигаться!
I like to move it, move it!

«Реверс-инжиниринг» клиентского приложения в образовательном центре

Время на прочтение3 мин
Охват и читатели12K
Привет, Хабр. Хочу поделиться историей из жизненного опыта. Несколько месяцев назад я записался на платные курсы по изучению языка программирования JavaScript в прекрасном городе Минск. Потратил около недели времени на подробное изучение отзывов о каждой из компаний на рынке, сравнивал цены на услуги и местоположение относительно моего дома. Наконец, выбрав «достойного» кандидата, направился к ним в офис для заключения договора. В общем, прошел я начальный инструктаж, получил расписание занятий и содержание всего курса и с радостью приступил к делу.
Читать дальше →

Пишем бота для MMORPG с ассемблером и дренейками. Часть 3

Время на прочтение8 мин
Охват и читатели23K
Привет, %username%! Итак, продолжим написание нашего бота. Из прошлых статей, мы научились находить адрес перехватываемой функции для DirectX 9 и 11, а так же исполнять произвольный ассемблерный код в главном потоке игры и прятать от различных методов защиты. Теперь все эти знания можно применить в реальных боевых условиях. И начнем мы с исследования программы, для которой мы и пишем бот.
Взглянуть в микроскоп

Пишем бота для MMORPG с ассемблером и дренейками. Часть 2

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

Пишем бота для MMORPG с ассемблером и дренейками. Часть 1

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

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

Приподнять завесу тайны

Пишем бота для MMORPG с ассемблером и дренейками. Часть 0

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

Вклад авторов