Inhaltsverzeichnis:
- Code-Verschleierung
- Ändern der Lizenzbibliothek
- Machen Sie Ihre Anwendung manipulationssicher
- Verschieben Sie die Lizenzüberprüfung auf einen Remote-Server
Anwendungssicherheit, Produktpiraterie und Prävention sind aus gutem Grund aktuelle Themen. Ohne einen robusten Markt für Anwendungen sind Hunderttausende neuer Aktivierungen pro Monat nicht wartbar, und ein robuster Markt ist ohne die Unterstützung von Entwicklern nicht möglich. Wir haben festgestellt, dass Android eine integrierte Lösung zur Verhinderung von Produktpiraterie bietet, und wir haben auch festgestellt, wie einfach es ist, diese zu umgehen, wenn Sie entschlossen sind und das Schema in seiner Grundform belassen wird. Google hat angedeutet, dass sie weitere Informationen zu dem gesamten Thema hätten, und sie haben dies wortgetreu getan. Lassen Sie uns nach der Pause einen Blick auf die Methoden eines Googlers werfen, um einen sicheren und benutzerfreundlichen Weg zum Schutz von Anwendungen zu finden.
Der Android Market Licensing Service und die License Verification Library sind leistungsstarke Tools, mit denen Entwickler versuchen können, Anwendungspiraterie zu umgehen. Das Problem, wie es kürzlich vorgeführt wurde, ist, dass es nicht sehr schwer ist, es zu umgehen. Da Menschen Menschen sind und viele mehr Zeit aufwenden, als es sich lohnt, eine 99-Cent-Anwendung vom Markt zu knacken, hat Trevor Johns (einer der Entwickler von Android-Programmen) praktische Tipps zur Verbesserung der mitgelieferten Tools zusammengestellt. und dafür zu sorgen, dass die Maßnahmen zur Bekämpfung der Piraterie besser funktionieren.
Die vier Schlüsselbereiche sind:
Code-Verschleierung
Die Verschleierung von Code ist ein Trick, den Entwickler anwenden, um den Quellcode zu ändern, sodass bekannte Funktionen, Pakete, Klassen und Variablen nur schwer zu finden sind, indem jedem ein Alias zugewiesen wird. Nehmen Sie zum Beispiel diese imaginäre Funktion - onRedraw (). Jeder Ort, an dem Sie die Funktion im Quellcode verwenden, ist genau dort, leicht zu lesen und möglicherweise auszunutzen. Ein Code-Obfuscator ersetzt die lesbare Funktion durch einen generierten Aliasnamen - wy23 () ist ein gutes Beispiel. Ein kurzer Blick (oder ein automatisiertes Tool) auf die Funktionen funktioniert nicht, da man sich gründlich überlegen muss, was wy23 () wirklich bedeutet. Es gibt kommerziellen Java-Code obfyousk8tors (ha!), Und Trevor empfiehlt ProGuard und plant einen zukünftigen Artikel im Android Developers Blog über die Arbeit mit ProGuard.
Ändern der Lizenzbibliothek
Google empfiehlt Entwicklern, die Quelle der bereitgestellten Lizenzbibliotheken so weit wie möglich zu ändern, ohne die ursprüngliche Funktion zu beeinträchtigen. Dies ist ein Fall, in dem der eingeschlagene Weg unwichtig ist, solange das Ziel erreicht ist. Entwickler können Funktionen in if / then-Anweisungen und Schleifen begraben und sogar die gesamte Bibliothek in einen eigenen Codeblock umwandeln.
Um noch einen Schritt weiter zu gehen, sollten Entwickler Hash-Prüfungen und andere Verschlüsselungsmethoden verwenden, um neue Konstanten zu generieren, und den Code ändern, um nach den neuen Konstanten zu suchen, anstatt die von Google im Beispielcode bereitgestellten zu verwenden. Klicken Sie unbedingt auf den Quelllink, um ein großartiges Beispiel von Google zu sehen, das zeigt, wie dies getan werden kann. Und vergessen Sie auch hier nicht, den Code zu verschleiern!
Machen Sie Ihre Anwendung manipulationssicher
Das ist einfach. Damit ein Hacker- Dieb die Lizenzierung aus Ihrer Anwendung entfernen kann, muss er die Anwendung zurückentwickeln und neu erstellen. Verwenden Sie CRC-Prüfungen, um dies zu verhindern. Google hat auch für diesen Bereich ein weiteres nützliches Tool: Stellen Sie sicher, dass der Android Market die Installationsquelle Ihrer Anwendung war, und lassen Sie sie andernfalls nicht laufen. Wieder gibt es ein geschicktes Beispiel dafür am Quelllink.
Verschieben Sie die Lizenzüberprüfung auf einen Remote-Server
Wenn Ihre Anwendung Online-Komponenten verwendet, empfiehlt Google, dass Sie die LVL-Informationen und -Antworten aus der App auf Ihren Server verschieben. Wenn der Nutzer die App nutzt, überprüft Ihr Server dies bei Google. Wenn nicht alles koscher ist, werden keine Inhalte bereitgestellt. Obwohl es einfach ist, ist es auch sehr effektiv, um dies zu umgehen. Jemand müsste nicht nur die Anwendung ändern, sondern auch den Inhalt auf Ihrem Server. Denken Sie daran, lokale Daten sind niemals sicher, aber ein ordnungsgemäß gewarteter und gesicherter Server ist eine ziemlich harte Nuss.
Schließlich erinnert sich Google an uns Endnutzer und empfiehlt, diese Tricks auf transparente und benutzerfreundliche Weise zu verwenden. Wenn Sie ein Anwendungsentwickler sind, der an der Integrität und Piraterieprävention Ihrer App interessiert ist (und das sollten Sie auch tun!), Lesen Sie unbedingt den Quelllink. Es wird alles geeky und flockig und legt alles für Sie aus. Für den Rest von uns ist dies eher eine Erinnerung daran, wie Goggle seine Entwickler liebt, und wir können uns gut fühlen, wenn wir wissen, dass Big G alles tut, um zu helfen.