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

Минкомсвязи обновило мобильное приложение «Госуслуги СТОП Коронавирус», его декомпилированный код уже есть на GitLab

Время на прочтение 5 мин
Количество просмотров 50K
Разработка мобильных приложений *Законодательство в IT Смартфоны Планшеты


10 апреля 2020 года в App Store и Google Play появилась обновленная версия 1.0.2 (на 15 апреля 2020 года уже версия 1.0.5) бесплатного мобильного приложения «Госуслуги СТОП Коронавирус», которое разработано Минкомсвязи России.

Публикация обновлена на 20:00 по МСК.
Читать дальше →
Всего голосов 36: ↑34 и ↓2 +32
Комментарии 471

dotPeek — новый, бесплатный декомпилятор от JetBrains

Время на прочтение 1 мин
Количество просмотров 37K
.NET *
Всем привет! Сегодня у меня еще одно радостное сообщение для всех кто еще ищет замену Reflector’у — наконец-то вышел “в публику” декомпилятор dotPeek от компании JetBrains.

И как же это счастье выглядит?
Всего голосов 85: ↑81 и ↓4 +77
Комментарии 38

Учимся считать в hex, или реверс-инженеринг будильника

Время на прочтение 13 мин
Количество просмотров 52K
Разработка под Android *

Введение


Недавно у меня появилась мысль научиться считать в шестнадцатеричной системе счисления. Так как я человек ленивый, такие способы, как выучить таблицу умножения меня не устраивали. Немного поразмыслив, я вспомнил, что каждое утро решаю (иногда несколько раз) несложный пример, чтобы отключить будильник. Помогает слабо, со временем я начал решать почти не просыпаясь. Так почему бы не совместить полезное с полезным?
Осталось выбрать способ реализации. Так как я не имею не малейшего представления о разработке под андроид (да и вообще с Java не сильно знаком), да и писать свое приложение ради такой мелочи — это стрельба из пушки по воробьям, было решено модифицировать уже имеющийся будильник.

Под катом вы найдете описание инструментов, процесса и результата перевода примера в hex. А также объяснение синтаксиса smali кода (язык опкодов для виртуальной машины dalvik). Картинок почти нет, буков много.
Читать дальше →
Всего голосов 77: ↑74 и ↓3 +71
Комментарии 20

Декомпилятор от JetBrains: релиз dotPeek 1.0

Время на прочтение 2 мин
Количество просмотров 61K
Блог компании JetBrains .NET *C# *
imageДобрый день, хабровчане! Бесплатный декомпилятор и менеджер сборок от JetBrains ушел в народ – несколько дней назад на нашем сайте стал доступен официальный релиз dotPeek 1.0.

dotPeek, о котором мы писали на Хабре около года назад, когда появились первые публичные сборки продукта, — это инструмент, сочетающий качественную декомпиляцию с развитой навигацией и поиском на манер ReSharper — нашего небезызвестного расширения для Visual Studio. Сегодня мы представляем вашему вниманию авторизованный перевод новости о выходе этого продукта.

Основные возможности dotPeek 1.0 таковы:

  • Декомпиляция сборок .NET Framework 1.0-4.5 в эквивалентный код на C#. Поддерживаются библиотеки (.dll), исполняемые файлы (.exe), а также файлы метаданных Windows 8 (.winmd). Кроме того, dotPeek умеет искать сборки в каталогах, которые вы ему указываете, и открывает разного рода архивы: как .zip, так и родственные форматы .vsix и .nupkg.
Читать дальше →
Всего голосов 55: ↑54 и ↓1 +53
Комментарии 35

Доступен для скачивания dotPeek 1.1 EAP

Время на прочтение 2 мин
Количество просмотров 5.9K
Блог компании JetBrains Программирование *.NET *
В нашем недавнем посте мы анонсировали выход в EAP 8й версии ReSharper, упомянув улучшенную поддержку декомпиляции. Сегодня мы рады анонсировать, что следующая версия dotPeek, нашего бесплатного декомпилятора, также достигла стадии EAP. Вот несколько новых возможностей, которые можно попробовать уже сегодня.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 16

Декомпиляция Java приложений

Время на прочтение 3 мин
Количество просмотров 195K
Java *Разработка под Java ME *
Декомпиляция — процесс воссоздания исходного кода декомпилятором
Недавно я задался вопросом: Какой декомпилятор лучше?
Начал мучить Google, экспериментировать. В итоге нашел отличное решение. Как декомпильнуть любую программу и получить рабочие «исходники»? Об этом в сабже.
Читать дальше →
Всего голосов 56: ↑51 и ↓5 +46
Комментарии 37

Кодирование и декодирование PHP кода

Время на прочтение 8 мин
Количество просмотров 69K
Разработка веб-сайтов *PHP *
Recovery mode
Из песочницы
Я занимаюсь восстановлением исходников PHP из закодированного вида.
В этой статье я расскажу о том, как обстоят дела с кодированием и декодированием PHP в настоящее время.

Очень краткий ликбез по внутреннему устройству интерпретатора PHP


При выполнении PHP-скрипта, он парсится и компилируется в опкоды внутренней виртуальной машины PHP.
Из каждого файла PHP получаются:
— массив классов: в каждом классе — информация о классе, свойства класса и массив методов класса
— массив функций
— «тело скрипта» — код вне классов и функций
Читать дальше →
Всего голосов 46: ↑38 и ↓8 +30
Комментарии 25

Вирус на сайте или реверс-инжиниринг Exploit.SWF.254

Время на прочтение 5 мин
Количество просмотров 29K
Информационная безопасность *Action Script *
Все началось с того, что на моем рабочем ноутбуке (Win XP) админ установил новый антивирус. В один прекрасный день, когда я зашел на один из своих сайтов, я обнаружил вот такую неприятную картину:



Update: Антивирус Dr.Web, скрипт до сих пор на сайте тут

Конечно же первое что я захотел сделать это удалить его, для этого нужно было просто зайти по FTP и прибить rss.js файл. Но тут вдруг оказалось что я не могу зайти на сайт по FTP, так как хостинг и домен не мои, и видимо недавно админы сменили логин и пароль. Дозвониться владельцам так и не удалось, зато понять что именно делает вирус было очень любопытно…

Что у вируса 'под капотом' - под катом
Всего голосов 28: ↑25 и ↓3 +22
Комментарии 13

Простой способ модификации Android приложения

Время на прочтение 3 мин
Количество просмотров 55K
Java *Разработка под Android *
Из песочницы
Бывает после релиза приложения его исходники куда-то деваются. Правда ведь, такое постоянно случается? И ничего не остается кроме как декомпилировать его и подправить несколько сотен строк кода и все это нужно сделать максимально быстро.

Вот и у меня появилась задача модифицировать приложение имея всего лишь его apk. И те, кто занимался декомпиляцией приложений знают насколько тяжело его потом скомпилировать.
Читать дальше →
Всего голосов 32: ↑28 и ↓4 +24
Комментарии 14

Профайлер для Entity Framework

Время на прочтение 22 мин
Количество просмотров 24K
Программирование *.NET *
Туториал


Приветствую!

Продолжу серию статей про программирование. На этот раз, я хочу рассказать о написанном мной бесплатном профайлере для Entity Framework-а ( далее EF) c 4-й по 6-ю версию, а также о некоторых примененных мной решениях, таких как декомпилирование .NET кода на лету, форма для обработки исключений и прочее.
Nuget пакет для EF6: https://www.nuget.org/packages/EFlogger-For6/
Nuget пакет для EF4 — 5: https://www.nuget.org/packages/EFlogger-For4/

Подробности под катом.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 13

Как работает декомпиляция в .Net или Java на примере .Net

Время на прочтение 6 мин
Количество просмотров 35K
Блог компании Семинары Станислава Сидристого Java *.NET *
Туториал

Сегодня хотелось бы поговорить про декомпиляцию приложений (все применительно к той же Java, да и любому языку с некоторыми допущениями и ограничениями, но поскольку сам я — .Net разработчик, примеры будут совсем немного MSIL'овизированы :) ).

Для вводной, перечислю текущие средства декомпиляции в мире .Net:
  • JetBrains dotPeek (поддержка R# хоткеев, сервер символов)
  • Telerik JustDecompile (также не плохой, множество хоткеев)
  • RedGate Reflector (аналог dotPeek, но платный. Изначально был основным в мире .Net, но пока был бесплатным)
  • icsharpcode ILSpy (хороший, opensource. Полезен, когда вы сами пишете код, использующий Mono.Cecil, т.к. Это даст лучшее понимание его работы)
  • 9rays Spices .Net Decompiler
  • Dis# с функцией inplace editor

Для программной декомпиляции:
  • Mono.Cecil (основной, самый крутой декомпилятор в мире .Net. На выходе получаете объектное «зеркало» содержимого сборки. Т.е. Максимально-упрощенно, без наворотов типа конвертации массива IL в DOM).
  • ICSharpCode.Decompiler (надстройка над mono.cecil, переводящая array[MSIL] в DOM, где есть циклы, switches и if'ы. Является частью SharpDevelop/ILSpy)
  • Harmony Core (аналогичное от меня, но сохраняющее информацию о символах. В среднем состоянии, не готова для прода, помощь приветствуется).


А теперь, хотелось бы описать как они работают (вам же интересно, как работает машинка от JetBrains?). Чтобы как минимум понять, насколько это сложно: написать свой декомпилятор .Net сборки обратно в код на C#.



Читать дальше →
Всего голосов 45: ↑41 и ↓4 +37
Комментарии 28

Модификация исходного кода android-приложения с использованием apk-файла

Время на прочтение 4 мин
Количество просмотров 86K
Информационная безопасность *Разработка под Android *
Из песочницы
Так уж получилось, что приложение для чтения комиксов и манги, которое я использую на своем android-смартфоне, после обновления стало показывать рекламу в конце каждой главы комикса. Данное приложение пару лет назад было доступно на Google Play (платная версия которого и была мной куплена), но было удалено в силу «нарушения авторских прав», после чего ушло в подполье и стало распространятся через сайт разработчика. Увы, достойных альтернатив этому приложению на android и iOS я не нашел, но и смотреть рекламу особо не было желания, тем более я уже покупал версию без рекламы. Сам разработчик почему-то не сделал возможности отключить ее, а на просьбы добавить такую возможность не отозвался. Поэтому пришлось искать альтернативные методы ее отключения. Первое, что пришло в голову, это то, что android-приложения пишутся на java, а значит есть вероятность, что автор не обфусцировал свое приложение и его можно попытаться декомпилировать. Немного подумав, я приступил к работе.
Читать дальше →
Всего голосов 35: ↑23 и ↓12 +11
Комментарии 2

Как же работает этот загадочный HTC Dot View?

Время на прочтение 10 мин
Количество просмотров 52K
Разработка мобильных приложений *Разработка под Android *Отладка *Реверс-инжиниринг *
В мире HTC существует такая штука, как Dot View. HTC Dot View — это весьма оригинальный чехол, который позволяет пользователям передовых моделей от HTC(линейки One) использовать свой девайс весьма нестандартным образом. Данный аксессуар был призван принести еще большую славу компании, и, кажется, со своей задачей он успешно справляется: многие люди делают свой выбор в пользу HTC One * и благодаря чехлу Dot View.

Подобные аксессуары привлекают не только пользователей делать их многочисленные обзоры, но и мобильных разработчиков создавать нестандартные приложения, которые задействуют эти прикольные фичи. Стандартный набор возможностей Dot View от производителя(HTC) довольно богат: удобный плеер с промоткой треков, вывод всевозможных уведомлений «на точки» чехла и даже простые игры, напоминающие своими «большими пикселями» ушедшую «восьмибитную эпоху». Но проблема вот только в том, что официальный разработчик не предоставил не только API для использования, но даже ни малейшей инструкции на тему того, как же работает его детище Dot View. Это привело к тому, что энтузиастам пришлось разбираться самостоятельно в механизмах сопряжения чехла с девайсом, а исследователям — исследовать.

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



Ну, и как же?
Всего голосов 26: ↑22 и ↓4 +18
Комментарии 10

Поиск уязвимостей в байткоде Java: что делать с результатами?

Время на прочтение 5 мин
Количество просмотров 7.2K
Блог компании Ростелеком-Солар Информационная безопасность *Java *

Solar inCode умеет обнаруживать уязвимости в байткоде Java. Но показать инструкцию байткода, которая содержит уязвимость, мало. Как показать уязвимость в исходном коде, которого нет?
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Комментарии 7

Статический анализ → уязвимость → профит

Время на прочтение 5 мин
Количество просмотров 10K
Программирование *Java *

В статьях про PVS-Studio всё чаще говорят об уязвимостях и дефектах безопасности, которые можно найти с помощью статического анализа. Авторов этих статей критикуют (и я в том числе), что не каждая ошибка является дефектом безопасности. Возникает однако интересный вопрос, можно ли пройти весь путь от сообщения статического анализатора до эксплуатации найденной проблемы и получения какой-то выгоды. В моём случае выгода всё же осталась теоретической, но эксплуатировать ошибку удалось, не особо вникая в код проекта.

Читать дальше →
Всего голосов 43: ↑42 и ↓1 +41
Комментарии 11

McSema и декомпиляция в исходный код LLVM: реально ли это?

Время на прочтение 8 мин
Количество просмотров 5.3K
Open source *Программирование *Анализ и проектирование систем *Assembler *Компиляторы *
Представьте себе, что есть некая очень полезная программа, но она, например, существует только в версии Windows и только 64 бита. А вам нужно, например, под ARM64 и под другую ОС, соответственно. Причём исходников у вас нет, и достать их невозможно.

image

Что делать? Существует проект MCSema (пост на Хабре про mcsema: https://habrahabr.ru/post/232871/). Его создатели (а они на финансировании DARPA, между прочим), обещают сказочные вещи: перевод бинарников в LLVM IR, оптимизации, семантический анализ кода и т.д. И конечно же, перекомпиляцию на любые архитектуры, которые поддерживает LLVM. Проект опенсорсный (ссылка на гитхаб: https://github.com/trailofbits/mcsema)

А теперь посмотрим, что происходит на самом деле.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 4

Ломаем простую «крякми» при помощи Ghidra — Часть 1

Время на прочтение 9 мин
Количество просмотров 67K
C++ *C *Реверс-инжиниринг *
Из песочницы
О том, что это за зверь такой — Ghidra («Гидра») — и с чем его едят она ест программки, многие уже, наверняка, знают не понаслышке, хотя в открытый доступ сей инструмент попал совсем недавно — в марте этого года. Не буду докучать читателям описанием Гидры, ее функциональности и т.д. Те, кто в теме, уже, уверен, всё это сами изучили, а кто еще не в теме — могут это сделать в любое время, благо на просторах веба сейчас найти подробную информацию не составит труда. Кстати, один из аспектов Гидры (разработку плагинов к ней) уже освещался на Хабре (отличная статья!) Я же дам только основные ссылки:


Итак, Гидра — это бесплатный кроссплатформенный интерактивный дизассемблер и декомпилятор с модульной структурой, с поддержкой почти всех основных архитектур ЦПУ и гибким графическим интерфейсом для работы с дизассемблированным кодом, памятью, восстановленным (декомпилированным) кодом, отладочными символами и многое-многое другое.

Давайте попробуем уже что-нибудь сломать этой Гидрой!
Читать дальше →
Всего голосов 58: ↑57 и ↓1 +56
Комментарии 32

Ломаем простую «крякми» при помощи Ghidra — Часть 2

Время на прочтение 12 мин
Количество просмотров 13K
C++ *C *Реверс-инжиниринг *
Туториал
В первой части статьи мы при помощи Ghidra провели автоматический анализ простой программы-крякми (которую мы скачали с сайта crackmes.one). Мы разобрались с тем, как переименовывать «непонятные» функции прямо в листинге декомпилятора, а также поняли алгоритм программы «верхнего уровня», т.е. что выполняется функцией main().

В этой части мы, как я и обещал, возьмемся за анализ функции _construct_key(), которая, как мы выяснили, как раз и отвечает за чтение переданного в программу двоичного файла и проверку прочитанных данных.
Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 2

Реверс-инжиниринг клиента Dropbox

Время на прочтение 12 мин
Количество просмотров 9.7K
Python *Отладка *Реверс-инжиниринг *Софт
Перевод
TL;DR. В статье рассказывается об обратной разработке клиента Dropbox, взломе механизмов обфускации и декомпиляции клиента на Python, а также изменении программы для активации функций отладки, которые скрыты в обычном режиме. Если вас интересует только соответствующий код и инструкции, пролистайте до конца. На момент написания статьи код совместим с последними версиями Dropbox, основанными на интерпретаторе CPython 3.6.

Введение


Dropbox очаровал меня сразу с момента своего появления. Концепция по-прежнему обманчиво проста. Вот папка. Кладёшь туда файлы. Он синхронизируется. Переходишь к другому устройству. Он опять синхронизируется. Папка и файлы теперь появились и там!

Объём скрытой фоновой работы на самом деле поражает. Во-первых, никуда не исчезают все проблемы, с которыми приходится иметь дело при создании и обслуживании кросс-платформенного приложения для основных десктопных операционных систем (OS X, Linux, Windows). Добавьте к этому поддержку различных веб-браузеров, различных мобильных операционных систем. И мы говорим только о клиентской части. Меня интересует также бэкенд Dropbox, который позволил достичь такой масштабируемости и низкой задержки с безумно тяжёлой рабочей нагрузкой, которую создают полмиллиарда пользователей.
Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Комментарии 2

Сравнительный анализ некоторых Java-декомпиляторов

Время на прочтение 17 мин
Количество просмотров 12K
Блог компании Ростелеком-Солар Программирование *Java *Реверс-инжиниринг *Софт


В этой статье будут рассмотрены четыре декомпилятора — Fernflower, CFR, Procyon и jadx — и произведено их сравнение по нескольким параметрам.


Дисклеймер: сравнение неформальное и не претендует на научность. Скорее, это просто обзор всех актуальных (на осень 2019) декомпиляторов Java-байткода.


Автор — Анна Явейн (brontozyablik), разработчица Solar appScreener

Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 18
1