Получить байт-код во время выполнения - PullRequest
1 голос
/ 11 декабря 2011

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

Во всяком случае, я пытаюсь это так:

InputStream is = this.getClass().getClassLoader()
                     .getResourceAsStream("org/foo/bar");

Какой бы параметр я ни передавал в getResourceAsStream (), он всегда возвращает ноль.

Есть ли способ получить доступ к байт-коду во время выполнения на Android?

1 Ответ

1 голос
/ 11 декабря 2011

Не уверен, если это возможно, вы должны доверять системе подписи, используемой для APK.Единственный взлом, который я видел с этим, - это оборачивание этого приложения в другое приложение, содержащее вредоносный код, и Google исправил это (я думаю).У классов уже есть хэш-код, но я уверен, что это не даст того же результата, что и вы.

Если кто-то может изменить ваш код, он также отключит ваши проверки.

Я видел и попробовал приложение для обратного инжиниринга, чтобы проверить безопасность байт-кода Android с помощью моего собственного приложения, и оно работало только на рутованных системах, а отключенный код настолько ужасен, что его невозможно использовать.Это не то же самое, что разбирать Java-приложения.

Пиратство в игре не требует его модификации.

...