Обновить
129.22

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

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

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

Читаем бинарные файлы iOS-приложений. Часть 2: Swift

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

Продолжаем серию про чтение бинарных файлов iOS-приложений. Для понимания технических деталей рекомендуется почитать первую часть здесь. В этой статье посмотрим, как укладывается в бинарный файл код на Swift.



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

Облегчаем реверсинг Golang бинарников или зачем вообще писать скрипты в IDA

Время на прочтение4 мин
Охват и читатели21K
Golang — отличный язык. Строгая типизация, сборщик мусора, вызов си функций через cgo, reflect, chan — просто сказка! Очевидно что так считаю не только я, т.к. go популярен, а значит его использует много программистов, а значит есть высокая вероятность что когда-то кому-то понадобится реверсить его бинарники — этим мы сейчас и займемся.
Читать дальше →

Это не шутки — остались считанные сутки… до дедлайна на GSoC 2017

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


Внимание! Это вам не шутки, а реальная возможность заработать!

Мы совсем забыли Вам напомнить или даже вообще рассказать, что в этом году случилось знаменательное событие. ReactOS впервые в истории получит слоты на Google Summer of Code второй год подряд. Ранее нам удавалось попасть в эту программу лишь раз в пять лет. Еще одно свидетельство значимости роли проекта в глазах индустрии!

Если вы хотите принять участие в GSoC и покодить этим летом за солидные премиальные и на общественное благо, то немедленно посетите данные странички на нашем сайте:

Основная информация о GSoC 2017 | Идеи для Google Summer of Code 2017

Если после просмотра данных материалов вы решитесь претендовать на участие в рамках наших слотов, то безотлагательно пишите в наш IRC-чат и высылайте свое резюме в текстовом виде в нашу рассылку
Читать дальше →

Прогнозы по развитию программ-вымогателей в 2017 году

Время на прочтение8 мин
Охват и читатели13K
Каждому из нас 2016 год запомнился по-своему. Физикам — обнаружением предсказанных Альбертом Эйнштейном гравитационных волн, политикам — конфликтами на Ближнем Востоке, музыкантам — Нобелевской премией Мира Бобу Дилану. Специалистам в области IT-безопасности 2016 запомнился невероятным всплеском активности программ-вымогателей, заставивших не только специалистов, но и простых обывателей выучить ответ на вопрос "Что такое ransomware?".



Сейчас на дворе 2017 год, и нет сомнений, что «ransomware» aka «программы-вымогатели» станут еще опаснее и продолжат свое наступление на данные пользователей. В опасности окажутся все пользователи, и либо вы, либо ваши друзья уже завтра могут столкнуться с этой угрозой.

«Предупрежден, значит вооружен», — подумали мы, провели детальный разбор одной из последних программ-вымогателей, а также подготовили небольшой прогноз на предстоящий год.
Читать дальше →

Анализ исходного кода Quake

Время на прочтение17 мин
Охват и читатели47K
image

Я с удовольствием погрузился в изучение исходного кода Quake World и изложил в статье всё, что я понял. Надеюсь, это поможет желающим разобраться. Эта статья разделена на четыре части:

  • Архитектура
  • Сеть
  • Прогнозирование
  • Визуализация
Читать дальше →

Устраняем ошибки в Building resources при сборке android-приложения с помощью Apktool

Время на прочтение1 мин
Охват и читатели6.1K
image

Всем привет. Меня зовут Алексей и я занимаюсь реверсом adnroid-приложений. Многие, кто делал реверс android-приложений, сталкивались с тем, что при обратной сборке с помощью apktool приложение не собиралось и писало об ошибках во время Building resources. Как правило эти ошибки можно исправить вручную в местах их возникновения. Но что делать когда их много? На исправления уйдет не один час. Сегодня я расскажу как бороться с эти за пару минут.
Читать дальше →

Недокументированные возможности Windows: скрываем изменения в реестре от программ, работающих с неактивным реестром

Время на прочтение6 мин
Охват и читатели20K
Можно ли создать такой ключ реестра, который будет виден в Windows в составе активного (подключенного) реестра, но не будет виден программам, работающим с неактивным (отключенным) реестром? Оказывается, если у вас есть возможность изменить лишь одну переменную ядра (например, с помощью драйвера), то да, способ есть.
Читать дальше →

Анализ исходного кода Another World

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

Я потратил две недели на чтение и реверс-инжиниринг исходного кода Another World (в Северной Америке игра вышла под названием Out Of This World). Моя работа основана на обратной разработке Грегори Монтуа (Gregory Montoir) оригинального исполняемого файла для DOS из двоичного кода в C++.

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

Всё это умещалось на гибкий диск ёмкостью 1,44 МБ и работало на 600 КБ ОЗУ. Совсем неплохо для 1991 года! Как обычно, я привёл свои заметки в порядок — это поможет кому-нибудь сэкономить несколько часов работы.

Немного о приватности реальных Git-репозиториев

Время на прочтение4 мин
Охват и читатели22K
logo

Введение


Здравствуйте, уважаемые читатели. Сегодня на повестке дня у нас небольшое тестирование —
первых ≈100 тысяч по популярности сайтов в интернете (ранжирование на основе статистики посещаемости с Alexa Rank). Стоит отметить, что оное тестирование будет достаточно узконаправленным, а именно — проверим каждый сайт на предмет существования и открытости Git-репозитория без аутентификации прямо из веба по url-адресу искомого. Напомню, что такая брешь в безопасности зачастую позволяет прочитать актуальные исходные коды на сервере, получить чувствительную информацию (файлы конфигов, структуру системы и т.д.) и, в последствии, получить определенного рода права на сервере. Рай для различного рода негодяев, да и только :)
Совершенно аналогичную проверку я делал для себя порядка 100 дней назад, и сегодня мы сделаем это ещё раз, посмотрим что изменилось и что с этим делать.
Разумеется, использовать будем список сайтов, полученный в рамках первого тестирования.
Для заинтересовавшихся милости прошу под кат.
Читать дальше →

Угадай фильтр по импульсной характеристике

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


На некотором сайте, в некотором форуме, добрый молодец по прозвищу SciFi озадачил коллектив свой историей.
Нашел он в руководящих технических материалах иноземной фирмы Texas Instruments [FSK Modulation and Demodulation With the MSP430 Microcontroller] требуемый ему цифровой фильтр. Но иноземцы шибко хитры оказались, и в исходном коде привели следующее:
Читать дальше →

Читаем бинарные файлы iOS-приложений

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

На хабре есть много статей о том, как работает рантайм Swift/Objective-C, но для еще более полного понимания того, что происходит под капотом, полезно залезть на самый низкий уровень и посмотреть, как код iOS приложений укладывается в бинарные файлы. Кроме того, безусловно, под капот приходится залезать при решении реверс-инжиниринговых задач. В этой статье мы обсудим самые простые конструкции Objective-C, а о Swift и более сложных примерах поговорим в последующих статьях.


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




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

По следу Cobalt: тактика логической атаки на банкоматы в расследовании Group-IB

Время на прочтение13 мин
Охват и читатели43K
image

В июле 2016 года работа First Bank, одного из крупнейших банков Тайваня, была парализована. Банк столкнулся с масштабной атакой: люди в масках одновременно опустошили три десятка банкоматов на $2 млн. Полиция терялась в догадках: на корпусах банкоматов не было ни следов взлома, ни накладных устройств — скиммеров. Злоумышленники даже не использовали банковские карты.

Как все происходило, зафиксировали видеокамеры: люди в масках подходили к банкоматам, звонили по мобильному — банкомат выдавал деньги, преступники складывали их в рюкзаки и убегали. После такого масштабного налета восемь крупнейших банков страны приостановили выдачу наличных в 900 банкоматах.

То, с чем столкнулся First Bank, называется логической атакой. Ее суть в том, что киберпреступники получают доступ к локальной сети банка и из нее устанавливают полный контроль над банкоматами. Удаленно они получают команду на выдачу денег. Сообщники взломщиков — “мулы” — забирают деньги и передают их организаторам атаки. Таким образом Cobalt — самая активная и опасная преступная группа — меньше чем за год атаковала банки в двух десятках стран мира.
Читать дальше →

NeoQuest 2017: Выбираемся из додекаэдра, не запуская ничего в qemu

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

«Затерянные в додекаэдре»


На Земле – египетские пирамиды, а на этой планете – один (зато какой!) гигантский додекаэдр, левитирующий в воздухе на высоте порядка десяти метров. Должно быть, именно в нём и кроется вся загадка этой планеты. Сама фигура как бы приглашает исследовать ее – одна из граней отсутствует, обозначая вход, и оттуда до земли свивает веревочная лестница. Разумеется, мы туда полезли.

«Вот так и пропадают неизвестно куда космические экспедиции…» – уныло говорили мы, уже третий час безуспешно пытаясь выбраться из дурацкого додекаэдра, дверь которого моментально заблокировалась, как только последний из нас забрался внутрь. Выломать дверь не удавалось, единственным выходом было блуждание по лабиринту объемной фигуры. Трудно сказать, сколько прошло времени, но наши поиски увенчались успехом: в одном из закоулков мы обнаружили вполне себе земной древний компьютер! Недовольно урча и подтормаживая, он все-таки загрузился. Всё, что удалось обнаружить – один файлик. Хорошо, что у меня с собой был ноутбук и флешка, я перекинул файл на ноут и стал внимательно его изучать.
Читать дальше →

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

NeoQuest 2017: Реверс андроид приложения в задании «Почини вождя!»

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


Всем доброго времени суток, сегодня, 10 марта закончился онлайн этап NeoQuest 2017. Пока жюри подводят итоги и рассылают пригласительные на финал, предлагаю ознакомиться с райтапом одного из заданий: Greenoid за который судя по таблице рейтинга, можно было получить до 85 очков.
Читать дальше →

Exploit Exercises: Введение в эксплуатацию бинарных уязвимостей на примере Protostar

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


Всем доброго времени суток. Продолжаем разбор заданий с сайта Exploit Exercises, и сегодня будут рассмотрены основные типы бинарных уязвимостей. Сами задания доступны по ссылке. На этот раз нам доступны 24 уровня, по следующим направлениям:

  • Network programming
  • Byte order
  • Handling sockets
  • Stack overflows
  • Format strings
  • Heap overflows
Читать дальше →

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

Время на прочтение1 мин
Охват и читатели12K
Привет читатель! Я пишу первый раз статью, я один из членов команды PC-RET, я изучил статью и решил подойти с другой стороны

Этапы работы

1. Анализ программы
2. Подбор программы для Реверса
3. Анализ кода
4. Патч
Читать дальше →

Поэтический дискурс с привкусом реверс-инжиниринга

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

«Старик Ассемблер нас заметил,
И в гроб сходя, благословил»


image

Однажды я решил написать программу, сочиняющую стихи. Алгоритм придумался быстро – в конце сочиняемых строф ставить рифмующиеся слова, а остальную часть строфы заполнять словами с учетом рифмы, ритма, и вероятности их нахождения рядом с другими словами, взятыми из готовых связных текстов. Эдакие марковские цепи с прикрученными к ним рифмами.

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

Решение задач зимнего CrackMe

Время на прочтение5 мин
Охват и читатели27K
Как известно, важной частью борьбы с киберугрозами является исследование вредоносных файлов, чем у нас занимаются вирусные аналитики — отважные парни (и девушки!) из Anti-Malware Team. На основании своего опыта они регулярно создают специальные тренажеры, CrackMe, которые начинающие аналитики могут использовать для проверки своих знаний.

Не так давно, мы анонсировали конкурс CrackMe, проходивший в рамках event-платформы CoLaboratory. Теперь, когда конкурс завершился и все решения приняты, мы можем рассмотреть задачи подробнее.

image

ВНИМАНИЕ: Если вы не успели поучаствовать в конкурсе, но тем не менее хотите попробовать свои силы — не читайте информацию под катом. Там мы описываем алгоритм решения задания. Скачать свежие задачи CrackMe можно здесь.
Читать дальше →

Смотрим внутренности отечественного 28нм MIPS процессора — Baikal-T1

Время на прочтение2 мин
Охват и читатели81K
Думаю многие уже слышали про реализованный московскими разработчиками Байкал Электроникс процессор Байкал-Т1 — с двумя ядрами Imagination Technologies P5600 MIPS 32 r5 и набортным 10GbE. Байкал оказался первым, кто реализовал в кремнии это ядро.

Терзал этот процессор я с перерывами больше года — но наконец под катом могу поделиться результатами.
Читать дальше →

Анализ исходного кода движка Doom: рендеринг

Время на прочтение8 мин
Охват и читатели43K
image

От экрана дизайнера к экрану игрока


Карты разрабатывались дизайнером уровней в 2D с помощью редактора Doom Editor (DoomED). LINEDEFS описывали замкнутые секторы (SECTORS в исходном коде), а третье измерение (высота) указывалась посекторно. Первый уровень Doom E1M1 выглядит так:

image

После завершения работы над картой она нарезается методом двоичного разбиения пространства (Binary Space Partitioning, BSP). LINEDEF рекурсивно выбирались и их плоскости превращались в секущие плоскости. То есть LINEDEF разрезались на сегменты (SEGS) до тех пор, пока не оставались только выпуклые подсектора (SSECTOR в коде).

Интересный факт: И DoomED, и iBSP писались на… Objective-C на рабочих станциях NextStep. Пятнадцать лет спустя тот же язык почти в той же операционной системе выполняет игру на мобильном устройстве! [прим. пер.: в 2010 году Doom вышел на iPhone] Я немного поработал веб-археологом и мне удалось найти исходный код idbsp. На него стоит посмотреть.

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