Les langages de programmation semi-compilés (compilé en un code binaire interprété par une machine virtuelle) tels que Java et .NET rendent la ingénierie inverse plus aisée.
A ce propos , on va parler de l'ingénierie inverse pour une application Android. Plusieurs outils peuvent etre utilisés pour ce faire à savoir Dex2Jar qui est un outil pour l'ingénierie inverse.
De nombreux éditeurs de logiciels propriétaires incluent dans leurs CLUF des clauses interdisant l' ingénierie inverse.
RIIS a développé HoseDex2Jar qui est un nouvel outil qui empêche les pirates d'utiliser Dex2Jar pour avoir accès au code source. HoseDex2Jar est un outil simple qui ajoute des instructions dans le fichier classes.dex que Dex2Jar ne peut pas traiter.
L'outil de ProGuard rétrécit, optimise et obscurcit votre code en supprimant code inutilisé et en renommant les classes, les champs et les méthodes avec des noms sémantiquement obscures. Le résultat est un fichier APK de plus petite taille qui est plus difficile à désosser. Parce que ProGuard fait votre demande difficile à désosser, il est important que vous l'utilisez lorsque votre application utilise des fonctionnalités qui sont sensibles à la sécurité comme quand vous êtes licence de vos applications.
Pour mieux clarifier les choses on va répondre à ces questions :
1) Comment puis-je éviter complètement l'ingénierie inverse d'un APK Android? Est-ce possible?
Il n'y a pas de truc pour éviter complètement de l'ingénierie inverse.
Quoi que vous fassiez à votre code, un attaquant potentiel est capable de changer en aucune façon qu'elle ou il se trouve faisable. Vous pouvez tout simplement pas protéger votre application d'être modifié. Et de toute protection que vous mettez là-bas peut être désactivé / supprimé.
2) Comment puis-je protéger toutes les ressources de l'application, l'actif et le code source pour que les pirates ne peuvent pas pirater le fichier APK de quelque façon?
Vous pouvez faire différentes astuces pour rendre le piratage plus difficile cependant. Par exemple, utiliser obfuscation (si c'est le code Java). Cette ralentit généralement l'ingénierie inverse de manière significative.
3) Y a t-il un moyen de rendre le piratage plus difficile, voire impossible? Que puis-je faire pour protéger le code source dans mon fichier APK?
Comme tout le monde dit, et comme vous le savez sans doute, il n'y a pas de sécurité à 100%. Mais le point de départ pour Android, que Google a intégré, est ProGuard. Si vous avez la possibilité d'inclure les bibliothèques partagées, vous pouvez inclure le code nécessaire dans C ++ pour vérifier la taille des fichiers, l'intégration, etc Si vous avez besoin d'ajouter une bibliothèque native externe de dossier de la bibliothèque de votre APK sur chaque version, vous pouvez utiliser par la proposition ci-dessous.
Mettez la bibliothèque dans le chemin de bibliothèque native qui est par défaut «libs» dans votre dossier de projet. Si vous avez créé le code natif pour cible les «armeabi 'puis mettre sous libs / armeabi. Si elle a été construite avec armeabi-V7A puis le mettre sous libs / armeabi-V7A.
<projet> /libs/armeabi/libstuff.so