Как стать автором
Обновить
149.62

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

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

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

Анализ sms-бота для Android. Часть II

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

Анализ sms-бота для Android. Часть II


Продолжение статьи Анализ sms-бота для Android. Часть I

Вступление

Еще один бот под Android, рассылаемый по «красивым» номерам вида 8***6249999 и т.д. Смской приходит ссылка вида: «Посмотрите, что о Вас известно» или «Информация для владельца» и т.д. названиесайта.ру/7***6249999"

Процесс вскрытия Android-приложений:

  • Скачиваем APK-файл;
  • Извлекаем файл манифеста;
  • Декомпилируем приложение в читаемый исходный или байт-код;
  • Анализируем манифест и код.


Джентльменский набор инструментов:

  • Apktool – Используем для того чтобы вытащить манифест и ресурсы;
  • Dex2jar – Декомпилируем APK-файл в байт-код;
  • Jd-gui – Байт-код переводим в читабельный код.

Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии5

Анализ sms-бота для Android. Часть I

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

Анализ sms-бота для Android. Часть I.


image

Введение
Разбор smsBot (Android) с целью выявления принципа работы и интересного функционала.
Бот реализован для платформы Android, алгоритм вскрытия приложения таков:
  • Скачиваем APK-файл;
  • Извлекаем файл манифеста;
  • Декомпилируем приложение в читаемый исходный или байт-код;
  • Анализируем манифест и код.

Инструментарий:
  • Apktool – Используем для того, чтобы вытащить манифест и ресурсы;
  • Dex2jar – Декомпилируем APK-файл в байт-код;
  • Jd-gui – Байт-код переводим в читабельный код.


Читать дальше →
Всего голосов 29: ↑23 и ↓6+17
Комментарии10

Разлочиваем велокомпьютер VDO A4 до A8

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

Как заплатить 600 рублей и получить функциональности на 1200? Наверное всем известен способ «апгрейда» велокомпьютера — ставим 2 магнитика на колесо и скорость удваивается, но мы пойдём другим путём. Увеличим количество функций велокомпьютера вдвое одним движением отвёртки.
Читать дальше →
Всего голосов 124: ↑115 и ↓9+106
Комментарии59

Как запатчить 11 разных прошивок и не сойти с ума от разнообразия

Время на прочтение12 мин
Количество просмотров11K
Если какая-либо операция превращается в рутину — автоматизируй её. Даже если времени потратишь больше — зато ты занимался не рутиной, а интересным делом. Именно под этой вывеской вместо того, чтобы просто запатчить новые 11 версий rtsp_streamer'а для камер от TopSee, решил нарисовать автопатчер. Идеальным языком для любых наколенных изделий я считаю питон — достаточно лаконично, достаточно жестко по читабельности (хотя я всё равно умудряюсь сделать его не читаемым). В общем, сейчас я расскажу, как с помощью палки и верёвки за один вечер научиться рисовать автопатчеры.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии12

Истории

Внедрение кода с пользой

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


В статье описан способ построения моста между неуправляемым и управляемым кодом на примере математического пакета Mathcad. На картинке показан пример, как бурундук Тот собирается обрабатывать своё изображение средствами математического пакета. Для этого он «использовал» пользовательскую функцию, написанную на VB.Net, в которой реализована возможность подключения к веб-камере и создания снимка. Результат работы функции сразу доступен в рабочем документе.
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии14

Siemens SGold: I/O сниффер

Время на прочтение35 мин
Количество просмотров13K
Сниффер — специальная программа для анализа и перехвата сетевого трафика, передачи данных через интерфейсы
и многого другого. В данном случае мы будем мониторить операции (чтение и запись) с портами ввода-вывода
на примере телефона линейки Siemens SGold и я постараюсь объяснить, как это всё работает.

image

Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии8

Атака на чёрный ящик. Реверс-инжиниринг виртуализированного и мутированного кода

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


Защита собственного программного обеспечения от реверс инжиниринга достаточно старая проблема, в своё время терзавшая сердца многих shareware разработчиков и не только. Обычно для таких целей применяют протектор, но насколько бы ни был крутой протектор, всегда найдутся люди которые его распилят и взломают. Однако последнее время протекторы стали применять технологии видоизменения кода(мутацию и виртуализацию), которые позволяют из исходного алгоритма сделать кашу, внешне напоминающую 'чёрный ящик'. И действительно встречаются люди, уверенные в том, что виртуализация и мутация исполняемого кода современными коммерческими протекторами является некой панацеей. Понятное дело что любой безопасник скорее ухмыльнётся и не согласится с таким утверждением, ведь люди знающие горькую цену безопасности любые намёки на идеальную защиту скорее всего воспримут как миф и маркетинговую сказку. В этой статье я расскажу о собственном опыте и виденье исследования чёрного ящика коммерческих протекторов и возможных атаках на него. Надеюсь понимание недостатков таких технологий, поможет вам более разумно и эффективно применять их на практике или не применять вообще.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии14

Написание бота для Stronghold Kingdoms

Время на прочтение11 мин
Количество просмотров43K
История написания бота для Stronghold Kingdoms

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

Да, как Вы могли заметить, C# не спроста – игра написана именно на нем, с использованием .net 2.0, что в последствии вставило мне некоторые палки в колеса.


Изначально я думал написать сокетного бота, который бы лишь эмулировал сетевой протокол (который никак не шифруется), а имея «исходные коды» (результат декомпиляции il-кода) легко восстанавливается в стороннем приложении.

Но мне это показалось нудным и муторным, ведь зачем городить велосипед, если имеются те самые «исходные коды».

Вооружившись Reflector’ом я начал разбираться с точкой входа игры (код которой вообще никак не обфусцирован более трех лет, диву даюсь разработчикам) – ничего особенного.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии9

Steam Files. Часть 1 — GCF/NCF

Время на прочтение21 мин
Количество просмотров22K
Steam LogoКак и обещал в предыдущей статье, начинаю публиковать статьи о той части инфраструктуры Steam, которую смогло открыть Anti-Steam сообщество путём реверс-инжиниринга и продолжительных мозговых штурмов.

Файлы формата GCF до недавнего времени являлись стандартом для всех игр, выпускаемых компанией VALVE, а NCF — для всех остальных. Сами по себе эти файлы представляют образ файловой системы с несколькими уровнями защиты. Отличие NCF от GCF заключается в том, что первые содержат только заголовки, а файлы, принадлежащие им, расположены в отдельном каталоге (<каталог Steam>/SteamApps/common/<имя игры>). Поэтому описывать буду GCF, а все особенности NCF приведу после.

В данной статье я подробно разберу структуру данных файлов и работу с ними на примере своей библиотеки (ссылка на неё — в конце статьи). Начало будет достаточно скучным — описание структур и назначения их полей. Самое «вкусное» будет после них…

Весь код, приведенный здесь, является плодом реверс-инжиниринга библиотек Steam. Большая часть информации о формате файлов была почерпнута из открытых источников, я же немного её дополнил и значительно оптимизировал работу с файлами кеша (даже по сравнению с самой популярной на то время библиотекой HLLIB).
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии31

Взламываем D-Link DSP-W215 Smart Plug: Опять, снова, еще раз

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

В предыдущих сериях:
  1. Взламываем D-Link DSP-W215 Smart Plug
  2. Взламываем D-Link DSP-W215 Smart Plug. Снова
  3. Взламываем D-Link DSP-W215 Smart Plug. Снова и опять


До сих пор, все найденные в DSP-W215 уязвимости могли быть выполнены только из LAN, ну, если вы не глупец и не открыли доступ к Smart Plug из интернета.
Типичным способом атаки устройств со встроенным веб-сервером, доступным только из внутренней сети, типа того, что у DSP-W215 — через CSRF. Проблема этого метода в том, что любой веб-браузер будет кодировать (urlencode) передаваемые данные, например, адрес возврата, но до этого момента мы использовали уязвимости, которые не декодируют (urldecode) наши данные (уязвимость в функции replace_special_char, которую мы эксплуатировали в предыдущей статье, декодирует только ограниченный набор ASCII-символов).

Бинарный файл my_cgi.cgi, который является основной уязвимой целью, содержит функцию-декодировщик «decode», которая декодирует POST-данные. Этой функции передается два аргумента: указатель на закодированные данные и указатель на буфер, где хранятся раскодированные данные:
void decode(char *encode_buf, char *decode_buf);


Эта функция просто проходит циклом по всем байтам в encode_buf и раскодирует или копирует их в decode_buf:
image
Читать дальше →
Всего голосов 56: ↑46 и ↓10+36
Комментарии17

Взламываем D-Link DSP-W215 Smart Plug. Снова и опять

Время на прочтение3 мин
Количество просмотров9.7K
Вот мы снова и опять.
image

В последнем эксплоите к DSP-W215 я говорил, чтобы функция get_input_entries не падала, нужно использовать имя «storage_path» в POST-запросе. Так нужно было сделать из-за того, что есть еще одно переполнение буфера, на этот раз в функции get_input_entries, которую вызывает get_input_entries, если имя пост параметра отлично от «storage_path» или «path»:
image

В функцию replace_special_char передается один аргумент — указатель на обрабатываемое POST-значение:
image
Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии0

Взламываем D-Link DSP-W215 Smart Plug. Снова

Время на прочтение4 мин
Количество просмотров12K
image
Недавно, D-Link выпустил прошивку v1.02 для DSP-W215, в которой исправлен баг HNAP с переполнением буфера в my_cgi.cgi. Хоть они и быстренько убрали прошивку с сайта: «Вы можете обновить прошивку через мобильное приложение», я успел ее скачать перед моим рейсом в Мюнхен, и 8-часовой перелет предоставил мне достаточно времени для качественного анализа новой версии прошивки.

К сожалению, баг с HNAP был не единственной проблемой этого устройства. Конфигурационный файл lighttpd показывает нам, что my_cgi.cgi используется для обработки некоторых страниц, а не только HNAP-запросов:
alias.url += ( "/HNAP1/" => "/www/my_cgi.cgi",
               "/HNAP1"  => "/www/my_cgi.cgi",
               "/router_info.xml" => "/www/my_cgi.cgi",
               "/post_login.xml" => "/www/my_cgi.cgi",
               "/get_shareport_info" => "/www/my_cgi.cgi",
               "/secmark1524.cgi" => "/www/my_cgi.cgi",
               "/common/info.cgi" => "/www/my_cgi.cgi"
)


Главная функция в my_cgi.cgi имеет два ветвления кода: один для обработки HNAP-запросов, а другой — для всего остального:
image
Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии4

Steam Protocol 2 и Steam Files — Введение

Время на прочтение5 мин
Количество просмотров31K
Steam Logo
Source Pirate Kit и все-все-все...

В далёком 2007-ом году автор одной замечательнейшей программы Source Pirate Kit (SPK) полностью утерял исходники своего проекта вместе с остальными документами — у него банально умер винчестер, где это всё хранилось. Назначение программы некоторым будет понятно из названия (кто-то даже сталкивался с ней) — создание Standalone-версий игр на движках Half-Life и Half-Life 2 (говоря проще — пираток). Всё в программе было хорошо, но с утерей исходников ушла в небытие и возможность хоть как-то подправлять алгоритм её работы — вся программа была монолитным EXE-файлом и все необходимые вспомогательные программы были подключены ресурсами и распаковывались при необходимости. Но — основной функционал был скрыт в самой программе…
Читать дальше →
Всего голосов 60: ↑51 и ↓9+42
Комментарии44

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

Пару слов о перехвате HTTP/HTTPS трафика iOS приложений

Время на прочтение3 мин
Количество просмотров47K
В этой статье я расскажу о простом методе заработка в сети перехвата HTTP/HTTPS трафика iOS приложений, включая трафик приложений использующих certificate pinning (а это например Twitter, Facebook и куча других приложений). От прочих методов, где бедным людям рекомендуют в командной строке руками генерировать какие-то сертификаты и куда-то их запихивать, этот метод отличается (относительной) безгеморройностью, хотя кое-какие телодвижения сделать конечно прийдется.
Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии17

Взламываем D-Link DSP-W215 Smart Plug

Время на прочтение4 мин
Количество просмотров31K
image
D-Link DSP-W215 Smart Plug — беспроводное устройство для мониторинга и контроля за электрическими розетками. Его пока нельзя купить в магазинах Amazon или Best Buy, но прошивка уже доступна для скачивания на сайте D-Link.

TL;DR: DSP-W215 содержит ошибку переполнения буфера, которая позволяет неаутентифицированному пользователю полностью управлять устройством, в том числе и самой розеткой.
Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии14

Реверс-инжинеринг и написание бота для flash игры на Go

Время на прочтение19 мин
Количество просмотров9.6K
image В этой статье я расскажу, как декомпилировать flash-приложение с последующим извлечением алгоритма подписи запросов на игровой сервер. И как на основе этой информации написать игрового бота на Go.
Все началось с того, что я искал стратегию, чтобы поиграть со своего android смартфона. Нашел неплохую игру под названием «Throne rush». Потом оказалось, что есть и браузерный клиент, что делает удобнее некоторые действия. Но все же игровой процесс явно требовал автоматизации. Я воспользовался прекрасным инструментом JPEXS Free Flash Decompiler, о котором далее пойдет речь.
Читать дальше →
Рейтинг0
Комментарии6

Reverse-инжиниринг Caesar III (часть 2, Рисование города)

Время на прочтение4 мин
Количество просмотров44K
Надеюсь, предыдущий пост Back-инжиниринг Caesar III, где был описан алгоритм получения текстур из ресурсов оригинальной игры, был благосклонно встречен хабражителями. В этой статье я опишу формат карт, алгоритм выбора и порядок тайлов для отрисовки, формирование итоговой текстуры.



Как это устроено
Всего голосов 110: ↑109 и ↓1+108
Комментарии55

Про Сталина, Дурова, печеньки и параметр EncryptedPasswd

Время на прочтение5 мин
Количество просмотров30K
В ходе неудачной попытки хабрасуицида в комментах к статье про психологическую помощь травмированному СМС-ками ребенку, я поведал о своем сне в котором Сталин кормил связанного Дурова шоколадными печеньками, а из трубки у Сталина вместо дыма выходил публичный ключ Google Play в base64. Этот сон мне приснился после длинного и нудного реверсинга мобильного протокола Google Play. Там же, в комментах, мне предложили написать об этом отдельную статью. Ну вот собственно эта статья и есть. В ней я предлагаю поговорить о моем сне, а также о параметре EncryptedPasswd в POST запросе к android.clients.google.com/auth.
Читать дальше →
Всего голосов 95: ↑78 и ↓17+61
Комментарии40

Кого атакует BillGates?

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

Похоже, ботнет BillGates распространяется все больше и больше — уже 4 знакомых человека обратились ко мне с вопросами, как от него избавиться, и что это такое.
Мне удалось заполучить свежую версию, которая нормально работала на моей системе (получала команды с сервера и DOS-ила), и это весело!

Что изменилось?


Модуль «Gates» теперь состоит из 2 модулей: «Beikong» и «Monitor (moni)». Если он запускается по пути /usr/bin/pojie (в моем случае), то запускается moni, если же по какому-то другому пути, то Beikong. Beikong, по сути, является хренотенью, которая переконфигурирует и обновляет другие модули, а moni отслеживает состояние всех модулей (и перезапускает их в случае необходимости), собирает с них статистику и отправляет ее на сервер через Beikong. Если /usr/bin/pojie не существует, то Beikong скопирует себя туда и запустит.

image
Читать дальше →
Всего голосов 110: ↑99 и ↓11+88
Комментарии19

Удаление Whitelist в bios ноутбуков на примере Lenovo X230

Время на прочтение5 мин
Количество просмотров144K
Недавно понадобилось поставить новую wifi карточку стандарта ac в свой ноутбук Lenovo x230, в котором есть whitelist для wlan карточек. Ниже опишу свои изыскания по отключению whitelist'а.


Читать дальше →
Всего голосов 74: ↑73 и ↓1+72
Комментарии55

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