+ Reply to Thread
Results 1 to 4 of 4

Thread: Возможно ли увидеть реализацию криптоалгоритма в байт-коде?

  1. #1

    Default Возможно ли увидеть реализацию криптоалгоритма в байт-коде?

    Всем доброго времени суток! Интересует следующий вопрос - возможно ли увидеть реализацию криптоалгоритма в скомпилированном байт-коде, например Java или Dalvik?
    Я имею ввиду распознать константы или увидеть циклы характерные для крипты?
    Понятно, что для шифрования используются библиотеки типа crypto.dll и другие....
    Как то возможно увидеть ее работу в листинге? или только результат работы библиотеки?

  2. #2
    Darwin's Avatar

    Default Re: Возможно ли увидеть реализацию криптоалгоритма в байт-коде?

    Всем доброго времени суток! Интересует следующий вопрос - возможно ли увидеть реализацию криптоалгоритма в скомпилированном байт-коде, например Java или Dalvik?
    Да, возможно.

    Я так понимаю вы не совсем разбираетесь, что такое формат JAR и APK? Это контейнеры в которых находится байт-код. Оба являются ZIP-архивами.

    В JAR хранятся файлы с расширением .class, что есть скомпилированные в байт-код исходные файлы Java. Их можно декомпилировать (с помощью JD-Gui) или дизассемблировать (с помощь javap, IDA Pro).

    В APK все немного сложнее, там байт-код находится в файле classes.dex. Этот файл можно сконвертировать в JAR-файл или дизассемблировать в smali (ассемблерное представление Dalvik байткода).

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

    Как выглядит исходный код понятно. Вот так выглядит ассемблерный код Java, а так smali-код:



    Я имею ввиду распознать константы или увидеть циклы характерные для крипты?
    Понятно, что для шифрования используются библиотеки типа crypto.dll и другие....
    Как то возможно увидеть ее работу в листинге? или только результат работы библиотеки?
    Если для шифрования используются библиотеки, а не реализации на чистом Java, процесс распознавания упрощается на порядок. Если присмотритесь к картинке выше, то увидите, что там используются классы java.String, android.util.Log. Там же видно использование методов String->valueOf(), Log->i(), Log->е() и константы 0x0. То есть, можно видеть все, что имеет имя (namespace, class, method, etc), в том числе и константы.
    Last edited by Darwin; 15-11-2014 at 02:07.

  3. 3 пользователя(ей) сказали cпасибо:
    Stillman (15-11-2014) dukeBarman (14-11-2014) root (14-11-2014)
  4. #3

    Default Re: Возможно ли увидеть реализацию криптоалгоритма в байт-коде?

    Уважаемый Darwin! Огромное спасибо за развернутый и подробный ответ! Возможно к Вам обратиться в личку с вопросом? Заранее спасибо!

  5. #4
    Darwin's Avatar

    Default Re: Возможно ли увидеть реализацию криптоалгоритма в байт-коде?

    Смотря что за вопрос. Защитой java и android я не занимаюсь.

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:28
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org