2016-04-23 3 views
2

Я разрабатываю приложение для Android, которое содержит собственный код. Собственный код скомпилирован в файле .so, который содержит важные алгоритмы внутри.Можно ли отредактировать/изменить файл .so?

Я действительно беспокоюсь о возможности редактирования или модификации моего .so-файла, а затем повторной сборки (перекомпоновки). Как APK, они могут быть изменены и перепакованным, чтобы создать новый один

У меня есть несколько вопросов здесь:

1) Есть ли способ редактировать/изменять файлы .so и заново строить? 2) Если есть, как люди это делают? 3) Как предотвратить редактирование файлов .so после их редактирования?

ответ

2

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

Обратное проектирование общей библиотеки сложно, но возможно. Демонтаж, изменение и сборка не трудно, если известно, что нужно изменить.

Существует множество способов усилить защиту вашего кода на C++ от обратного проектирования, но ни один из них не будет защищен от решительной и хорошо финансируемой атаки. Таким образом, если ставки очень высоки, подумайте над тем, чтобы использовать важную часть вашего алгоритма на вашем сервере и жертву для его безопасности.

+0

Спасибо, Алекс за ваш ответ. Можно вас спросить о чем-то? Не могли бы вы предложить, что является лучшим способом для усиления защиты кода C/C++? Каковы общие трюки, которые хакеры могут изменять .so файлы? –

+0

см., Например, http://stackoverflow.com/questions/6481668/protecting-executable-from-reverse-engineering –