Все потоки
Поиск
Написать публикацию
Обновить
166.74

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

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

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

Исследование: какие способы обхода антивирусов используют хакеры

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

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

Для решения этой проблемы хакеры используют техники упаковки, шифрования и мутации кода. Такие техники часто реализуют отдельные инструменты — «крипторы» (crypters) или просто «пакеры». В этой статье на примере банковского трояна RTM мы рассмотрим, какие «пакеры» могут использовать злоумышленники и как эти «пакеры» осложняют обнаружение ВПО.

Полная версия данного исследования доступна по ссылке.

Читать далее

Основные проблемы фриланса для инженера-конструктора в машиностроении

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

Богатый язык инженера - это ещё один способ утвердить свой профессиональный уровень в глазах окружающих.

- Ооо, ты инженер конструктор?

          - Да!

- Скажи что-нибудь как инженер конструктор!

        -Крыльчатка насоса.

- Бог с ним, отправляй, по замечаниям исправим...

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

Читать далее

Как мы обошли bytenode и декомпилировали байткод Node.js (V8) в Ghidra

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

«Да я роботов по приколу изобретаю!» Рик Санчес

Многим известно, что в 2019 году АНБ решило предоставить открытый доступ к своей утилите для дизассемблирования (реверс-инжиниринга) под названием Ghidra. Эта утилита стала популярной в среде исследователей благодаря высокой «всеядности». Данный материал открывает цикл статей, посвященных плагину ghidra_nodejs для Ghidra, разработанному нашей командой (https://github.com/PositiveTechnologies/ghidra_nodejs). Задача плагина — десериализовать содержимое jsc-файлов, дизассемблировать байткод функций и декомпилировать их. В первой статье мы обсудим сущности и байткод движка V8, а также тезисно опишем сам плагин, про который подробно расскажем в последующих статьях.

Рано или поздно все сталкиваются с программами на языке JavaScript, их так и называют скриптами. JavaScript — это полноценный язык со своим стандартом ECMA Script, скрипты которого выполняются не только в браузере, но и на сервере.

Скрипты исполняются с помощью специальной программы, которую называют движком (engine) JavaScript. За годы движкостроения их понапридумывали предостаточно: V8, SpiderMonkey, Chakra, Rhino, KJS, Nashorn и т. д.

Читать далее

Как и зачем S7 создает собственную ракету

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

Несколько месяцев назад стало известно, что в группе компаний S7 уже два года работает «Центр разработок С7» или S7 R&D. Эта компания занимается разработкой легкой ракеты, а в перспективе и средней, для запусков с «Морского старта» или наземных площадок.

«Центр разработок С7» располагается на пути из Москвы в аэропорт Домодедово. Будущее предприятие занимает несколько цехов, где планируется производство ракет. Пока эти цеха полупустые, но сейчас идет активное освоение технологий, которые должны значительно упростить и удешевить производство ракет.

Читать далее

Как Runescape ловит ботоводов, и почему она не поймала меня

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

Автоматизация действий игрока всегда была серьёзной проблемой таких MMORPG, как World of Warcraft и Runescape. Подобный взлом игр сильно отличается от традиционных читов, например, в шутерах.

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

Ботоводство


Последние несколько месяцев аккаунт sch0u круглосуточно играл на сервере world 67, выполняя такие монотонные задачи, как убийство мобов и сбор ресурсов. На первый взгляд, этот аккаунт похож на любого другого игрока, но есть одно важное отличие: это бот.


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

Поэтому единственное, что я смог понять — это важность перемещений мыши, но так ли это на самом деле?

Ломаем зашифрованный диск для собеседования от RedBalloonSecurity. Part 0x01

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

По мотивам
Часть 0x00
Часть 0x01
Часть 0x02

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

Продолжить приключение

Исследование целевых атак на российские НИИ

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

В конце сентября 2020 года в вирусную лабораторию «Доктор Веб» за помощью обратился один из российских научно-исследовательских институтов. Сотрудники НИИ обратили внимание на ряд технических проблем, которые могли свидетельствовать о наличии вредоносного ПО на одном из серверов локальной сети. В ходе расследования мы установили, что на НИИ была осуществлена целевая атака с использованием ряда специализированных бэкдоров. Изучение деталей инцидента показало, что сеть института была скомпрометирована задолго до обращения к нам и, судя по имеющимся у нас данным, — не одной APT-группой.

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

Читать далее

Пока расследование не разлучит нас: малварь, которая может сидеть в сети компании годами

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

Недавно мы расследовали АРТ-атаку на одну российскую компанию и нашли много занятного софта. Сначала мы обнаружили продвинутый бэкдор PlugX, популярный у китайских группировок, АРТ-атаки которых обычно нацелены на похищение конфиденциальной информации, а не денег. Затем из скомпрометированной сети удалось вытащить несколько других схожих между собой бэкдоров (nccTrojan, dnsTrojan, dloTrojan) и даже общедоступных утилит.


Программы, используемые в этой преступной кампании, не отличаются сложностью, за исключением, может быть, PlugX. К тому же три из четырех вредоносов использовали при запуске давно известную технику DLL hijacking. Тем не менее, как показало наше исследование, даже при таких условиях злоумышленники могут годами оставаться в скомпрометированных сетях.


Мы решили изучить обнаруженный софт и поделиться своими наблюдениями.

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

В дикой природе появился Kobalos

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

Эксперты компании ESET рассказали о новом вредоносном ПО, целью которого являются кластеры для высокопроизводительных вычислений по всему миру. Оно интересно по нескольким причинам. Несмотря на довольно малый размер кодовой базы (образцы, подвергнутые анализу, имели размер 25 Кб), малварь достаточно сложна для проведения атак на Linux, BSD и Solaris и, потенциально, может подходить для атак на AIX и Microsoft Windows. Еще одной отличительной чертой является способность превращать зараженные серверы в новые C&C по команде оператора. Из-за множества хитростей и малого размера кода исследователи назвали его Kobalos — в честь озорных древнегреческих духов, однажды ограбивших Геракла и обожающих обманывать и пугать людей.

В опубликованном специалистами исследовании рассказывается о предполагаемых начальных векторах компрометации, механизмах аутентификации и распространения, встроенных функциях и приводится технический анализ вредоносного кода. После этого эксперты указывают на признаки компрометации и применяемые методики MITRE ATT&CK.

У нас возникла мысль, что людям, слабо владеющим английским языком, но неравнодушным к актуальным исследованиям в области ИБ, в частности, к разбору вредоносного ПО, будет интересен и полезен перевод анализа такой, на наш взгляд, необычной малвари.
Читать дальше →

Balloon Fight: перенос с VS system на NES

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

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

Вообще меня очень увлекает история аркадных автоматов, консолей, игр, и немножко программирование. О том, как программируют для NES в наши дни, я писал в другой «making of» статье, которую также публиковали на Хабре.

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

Читать далее

Ломаем зашифрованный диск для собеседования от RedBalloonSecurity. Part 0x00

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

По мотивам
Часть 0x00
Часть 0x01
Часть 0x02

В нашей жизни существуют моменты когда все тихо. Все переменные соблюдены и выровнены, а существование давно не преподносит перемен: все люди, которые рядом уже давно стали друзьями, или близкими знакомыми. Со мной так и произошло, и я этому чертовски счастлив - это стоит невероятно дорого. Но осознание того, что наша жизнь конечна, порой заставляет задуматься "а что если?". Что если все-таки возможно выйти из привычного способа жизни и занять себя чем-то иным. Скажем так, прожить еще одну жизнь в рамках одной. Здесь и начинается наше приключение.

Пустится в приключение

Реверс-инжиниринг тетриса на Nintendo для добавления Hard Drop

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

Тетрис на Nintendo — одна из моих любимых версий тетриса. Моя единственная жалоба заключается в том, что ему не хватает возможности «Hard Drop» — мгновенного падения текущей фигуры и её фиксации на месте. Давайте её добавим

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

Читать далее

От int main() до BeginPlay: как происходит инициализация Unreal Engine под капотом

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

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

Но когда вы пишете игровой код на Unreal Engine, вы не имеете дело с игровым циклом напрямую. Вы не начинаете работать сразу с основной функцией — сначала вы определяете подкласс GameMode и переопределяете функцию под названием InitGame. Или пишете одноразовые классы Actor и Component и переопределяете их функции BeginPlay или Tick для добавления собственной логики. Это самый минимум того, что вам нужно сделать: обо всем остальном движок позаботится за вас.

Unreal Engine также предлагает вам как программисту мощный и гибкий инструментарий: конечно, он имеет открытый исходный код, но также возможно и расширение несколькими другими способами. Даже если вы только начинаете работать с этим движком, было бы не лишним получить представление о его GameFramework: о таких классах, как GameMode, GameState, PlayerController, Pawn и PlayerState.

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

Читать далее

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

Как реверс-инжиниринг чужой инерциальной навигационной системы перерос в свою собственную разработку

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

Инерциальные навигационные системы благодаря MEMS-датчикам инженеры сейчас начинают использовать везде, где есть движение. В зависимости уровня требуемой точности как по углу, так и по координатам применяют МЕМS-датчики разного уровня цены и интегрированности: от уровня "все датчики в одной микросхеме" до уровня "один датчик - одна микросхема". А сама инерциальная навигация, как часть инженерных систем, впервые появилась в торпедах, кораблях, ракетах и самолетах.

Читать далее

Мастера перевоплощений: охотимся на буткиты

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

Прогосударственые хакерские группы уже давно и успешно используют буткиты — специальный вредоносный код для BIOS/UEFI, который может очень долго оставаться незамеченным, контролировать все процессы и успешно пережить как переустановку ОС, так и смену жесткого диска. Благодаря тому, что подобные атаки сложно выявить (вендорам ИБ удалось лишь дважды самостоятельно обнаружить такие угрозы!), наблюдается рост интереса к подобному методу заражения компьютеров и среди финансово мотивированных преступников — например, операторов TrickBot. Семен Рогачев, специалист по исследованию вредоносного кода Group-IB, рассказывает как охотиться за подобными угрозами в локальной сети и собрать свой тестовый стенд с последним из обнаруженных UEFI-буткитов Mosaic Regressor. Бонусом - новые сетевые индикаторы компрометации, связанные с инфраструктурой Mosaic Regressor, и рекомендации по защите в соответствии с MITRE ATT&CK и MITRE Shield.

Читать далее

Переполнение кучи в Linux для начинающих

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

Данный туториал для начинающих, но подразумевается, что читатель уже знаком с основами работы функции malloc библиотеки glibc. Подробно рассмотрим как эксплуатировать переполнение кучи в Linux на примере 32-разрядного Raspberry PI/ARM1176.  Так же разберем некоторые нюансы эксплуатации и в x86-x64 системах. Для этого будем использовать инструменты  GDB + GEF.

Переходим сразу к уязвимому коду, который я позаимствовал из лабораторных заданий Protostar, а именно данное задание.

Читать далее

Исполняемый обвес. Часть 2

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

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

Читать далее

Реверс-инжиниринг протоколов управления конвектором

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

История берет свое начало в мае, когда в один из непогожих питерских дней, местная котельная решила отключить отопление. За окном было +10, влажность зашкаливала, ветер дул, а тепленькое солнышко не светило в окна от слова совсем (чертова северная сторона). В квартире стало ощутимо холодно. Кот слезал с теплых колен только для  опустошения миски. Мы же кутались в флиски и пледы. Через два дня такой жизни стало понятно - к черту все, нужен обогреватель! Требования были довольно просты - цена, определенная мощность, возможность эту самую мощность регулировать и какой-либо интерфейс (wi-fi\BT\ZigBee\485). Последнее хотелось больше для баловства и неведомого "а вдруг потребуется!". Оставлю за рамками статьи муки выбора, количество обогревателей на полках магазинов в конце весны и прочие приколы наших доставщиков.

Cобрано, запущено, кот согрет, самое время посмотреть, что там с интерфейсом. Приложение для мобилки подключилось к конвектору, залило настройки wi-fi сети и радостно предложило управлять обогревателем через интернет. И в принципе на этом можно было бы закончить, но в процессе эксплуатации появилось желание - время от времени использовать конвектор для просушки одного из помещений. Датчик влажности есть, к Home Assistant подключен, дело за малым, завести туда же конвектор. Тут меня ждало полнейшее разочарование - никакого API, никаких интеграций, вообще ни_че_го. Лан, инженером же работаю, не в первой городить программно-аппаратные решения.

Читать далее

Реверс-инжиниринг GPU Apple M1

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

Новая линейка компьютеров Apple Mac содержит в себе разработанную самой компанией SOC (систему на чипе) под названием M1, имеющую специализированный GPU. Это создаёт проблему для тех, кто участвует в проекте Asahi Linux и хочет запускать на своих машинах Linux: у собственного GPU Apple нет ни открытой документации, ни драйверов в open source. Кто-то предполагает, что он может быть потомком GPU PowerVR, которые использовались в старых iPhone, другие думают, что GPU полностью создан с нуля. Но слухи и домыслы неинтересны, если мы можем сами заглянуть за кулисы!

Несколько недель назад я купила Mac Mini с GPU M1, чтобы изучить набор инструкций и поток команд, а также разобраться в архитектуре GPU на том уровне, который ранее не был публично доступен. В конечном итоге я хотела ускорить разработку драйвера Mesa для этого оборудования. Сегодня я достигла своего первого важного этапа: теперь я достаточно понимаю набор команд, чтобы можно было дизассемблировать простые шейдеры при помощи свободного и open-source тулчейна, выложенного на GitHub.
Читать дальше →

Исполняемый обвес

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

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

Disclamer: Вся информация предоставляется исключительно для обучающих целей.

Читать далее

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