2016-04-23 17 views
2

Ich entwickle eine Android-Anwendung, die nativen Code enthält. Der systemeigene Code ist in einer .so-Datei kompiliert, die wichtige Algorithmen enthält.Ist es möglich, .so Datei zu bearbeiten/zu ändern?

Ich bin wirklich besorgt über die Möglichkeit, dass meine .so-Datei bearbeitet oder geändert werden kann und dann neu erstellen (neu packen). Wie APK-Dateien können sie geändert werden und neu verpackt ein neues

Ich habe mehrere Fragen hier zu erstellen:

1) Gibt es eine Möglichkeit, um Dateien zu bearbeiten/ändern .so und neu zu bauen? 2) Wenn ja, wie machen die Leute das? 3) Wie verhindert man, dass .so-Dateien bearbeitet und dann neu erstellt werden?

Antwort

2

Die kurze Antwort ist, dass alles, was ein Computer lesen und verstehen kann, es auch ändern kann. Es gibt keinen krisenfesten Signaturmechanismus in Android für Java oder nativen Code. Dennoch werden die So-Dateien im Allgemeinen als viel weniger anfällig angesehen als der Java-Code, selbst wenn die Verschleierung eingeschaltet ist.

Reverse Engineering einer gemeinsam genutzten Bibliothek ist schwierig, aber möglich. Demontage, Änderung und Montage zurück ist nicht schwer, wenn man weiß, was zu ändern ist.

Es gibt viele Möglichkeiten, den Schutz Ihres C++ - Codes gegen Reverse Engineering zu verstärken, aber keiner wird gegen einen entschlossenen und gut finanzierten Angriff bestehen. Also, wenn die Einsätze sehr hoch sind, sollten Sie den wichtigen Teil Ihres Algorithmus auf Ihrem Server ausführen und nach seiner Sicherheit suchen.

+0

Danke Alex für Ihre Antwort. Darf ich Sie etwas fragen? Können Sie vorschlagen, wie Sie den Schutz von C/C++ - Code am besten verbessern können? Was sind die üblichen Tricks, die Hacker können .so Dateien ändern? –

+0

siehe z.B. http://stackoverflow.com/questions/6481668/protecting-executable-from-reverse-engineering –