2016-09-05 2 views
0

J'ai essayé de décompiler et d'extraire des données utiles d'un APK depuis un certain temps maintenant. Ces données sont stockées dans des fichiers CSV dans un dossier "assets". Malheureusement, les développeurs sont devenus intelligents et ont commencé à crypter ces fichiers CSV à partir de juillet. J'ai épuisé tous les moyens que je connaissais pour essayer de transformer ces fichiers en versions lisibles d'eux-mêmes sans aucun succès. Mais alors, j'ai réalisé, il y a quelques fichiers dans le dossier des actifs qui n'ont pas changé depuis bien avant juillet-ainsi, j'ai les versions décryptées et cryptées de ces fichiers. En utilisant cette connaissance, est-il possible de prédire le modèle de cryptage que tous les autres fichiers du répertoire ont traversé? Je suis assez sûr qu'il a été crypté au niveau des bits, pas au niveau octet, car il y a beaucoup de caractères inconnus (représentés comme des points d'interrogation spéciaux) en essayant de lire ces CSV en utilisant Notepad/TextEdit/Atom dans Mode UTF-8 (ou tout autre mode sauf UTF-16, vraiment).Méthode pour découvrir le modèle de chiffrement en utilisant une petite partie du texte décrypté?

+0

Qu'est-ce que cela a à voir avec Excel? – pnuts

+0

Vous devriez remplacer "excel" par "obfuscation" car même si techniquement il peut y avoir un algorithme de cryptage en jeu, il ne peut qu'obscurcir le code. – xendi

Répondre

0

Vous parlez d'une attaque de type "texte connu". Aucune méthode moderne et largement utilisée n'est vulnérable à ce type d'attaque, mais de nombreuses méthodes de cryptage développées en interne le sont. Même avec du texte connu, vous devez savoir ou deviner beaucoup sur les détails de l'algorithme de chiffrement.

Un meilleur plan pourrait être de pirater le logiciel que vous savez effectuer le décryptage , qui doit contenir à la fois l'algorithme et la clé.

0

Vous auriez plus de chance de deviner simplement en fonction de la sortie cryptée. Vous devrez vous familiariser avec les caractéristiques de la sortie des algorithmes et comparer avec ce que vous voyez. C'est probablement beaucoup plus facile pour les hachages mais vous parlez de cryptage. Cependant, pour répondre à votre question, il est peu probable que vous puissiez utiliser une version non cryptée d'un fichier pour le déchiffrer. Vous pouvez essayer de chiffrer ce fichier en utilisant différents algorithmes et en comparant les résultats. Cela pourrait vous donner l'algo mais pourrait prendre plus de temps.

Sinon, voici quelques outils que je trouvais que cela pourrait être en mesure d'automatiser le processus pour vous ...

https://code.google.com/archive/p/aligot/

https://bitbucket.org/daniel_plohmann/simplifire.idascope

https://www.aldeid.com/wiki/IDA-Pro/plugins/FindCrypt2

à se fissurer, vous » Je vais aussi avoir besoin de trouver la clé qui a été utilisée pour le chiffrer. Puisque c'est un programme qui doit être décrypté pour être utilisé, cette clé ne devrait pas être impossible à trouver. C'est soit dans l'apk, soit sur un serveur quelque part, auquel cas j'utilise wireshark mais je suppose que c'est embarqué.

Ils peuvent être utilisés par DexGuard ou ProGuard. Voici un poste lié What methods are being used to protect this Android APK: Reflection? Encryption? How do I reverse engineer it and analyze it?

Si c'est ProGuard vous pourriez commencer par quelque chose comme ceci: http://proguard.sourceforge.net/manual/retrace/examples.html

Voici quelques informations sur ce point: How to decode ProGuard's obfuscated code precisely?

+0

Ajout de quelques informations sur ce qu'ils pourraient utiliser pour crypter et comment vous pourriez commencer le reverse engineering. – xendi