2013-03-10 2 views
6

Есть ли способ как-то «защитить» родную общую библиотеку (.so) для платформы Android от бинарного изменения? . кто-то может перезаписать JMP-инструкцию NOP после обратного проектирования приложения и распространить эту библиотеку на корневые устройства.Защита целостности общедоступной библиотеки Android

Есть что-нибудь кто-то может это сделать?

Что я ищу здесь, это идеи о реализации серии проверок (например, шифрование, контрольные суммы и т. Д.). Конечно, поскольку платформа не выглядит так, как будто она предлагает поддержку для этого (исправьте меня, если я ошибаюсь), она должна быть «клиентской». Таким образом, все это немного бесполезно, но, по крайней мере, будет мешать реверсированию некоторых.

+0

Конечно, вы можете реализовать SO-защиту, позволяя вычислить собственную контрольную сумму, зашифровать части своего кода. Все это похоже на то, что было сделано в Windows в течение многих лет (но сложнее). Но если у вас нет опыта защиты модулей в Linux, лучше не начинать. Я не знаю, существуют ли предварительно созданные средства защиты для вашей задачи. –

+0

Спасибо @ EugeneMayevski'EldoSCorp. Я хотел бы попробовать - как вы вычисляете собственную контрольную сумму? – AndroidSec

ответ

3

Да, есть вещи, которые вы можете сделать, и они сделают его очень сложным для обратного инженера, но я сомневаюсь, что вы сможете сделать все, что остановит Chris Eagle.

Лучший способ защитить от модификации - взять SHA-2 .so после его компиляции и перефразировать каждый раз во время выполнения, сопоставляя его с известным значением. Эта проверка будет выполняться на стороне клиента, поэтому квалифицированный RE может просто изменить двоичный файл, чтобы игнорировать проверку. Однако это немного сложнее. Если вы помещаете чеки на весь код и используете разные методы проверки, то он расширяет объем работы, которую должен выполнить RE. Однако знаете, что Microsoft налила миллионы долларов в анти-RE-технологии, и есть еще пиратских копий Office и Windows. Вы никогда их не прекратите. Моя личная философия (теперь, когда я сама изучила RE), заключается в том, что в конечном итоге слишком много боли, чтобы попытаться остановить их. Просто сделайте хорошее приложение, сделайте его дешевым, и люди купят. Противники, которые украдут ваши вещи, все равно не купили бы.

Если ваше приложение звонит домой, вы также можете отправить хэш на сервер для проверки. Конечно, RE может все же обойти это, но это еще одна вещь.

+0

Именно то, что я искал. Спасибо! – AndroidSec

Смежные вопросы