Partage

décrypter un fichier .txt en C ?

Le 11 février 2007 à 18:30:10

Bonjour tout le monde, j'ai reçu un mail contenant un fichier texte crypté et le début du code de decryptage... le probleme est que je suis débutant.
pourriez vous me montrer comment décrypter ce truc ? merci.

voici le texte :

¯ÔÞÏÐᆉ¯ÐÙÒÎÚÕŒÛÊßàÚ¨v¶Ê‰ßÖÕ؉ÕÎÜ×ÎßÔÕÔ×Ñ,Œ¹ÞŒÂß…ÛUÖßØÒŒAŒÑÒÞÆŒÈÎŒÎÑØÜÍÈÑ“
—šºÔ׌ÑÍ؉ÝÖÑ…ÓÑÐÔÞàÆŒÉÎŒÕÑ؉ÏÂÜÆÌÕÕÑ؉”>Œ²ÊÕÔŒÖÞÍÏÐ…ÖVÎÑ…—ŒkŒ´Ô˜ÏʉÏÓåÕÝÍÈÑ…ÎßÕŒÛÛÍÊÙÊ×àÞÚÍÕÎÑÓÝÍÊÞÊ•
ŒÎÍÎÜŒÒáÆ×ÐÛÓ‰ÍÞÎÎÚL…ÏÍÊÞʉÐÆŒÕÕáÔš“—v¼×ÎâÊÑÓÜŒÎÛΉÐÆß…ÚáÆŒÙÞŒÂß…ÛÑÖßØÒkŒ¾ÊÚÏÕÈÔŒkv


et voici le code C pour décrypter ( il faut que le fichier texte crypte.txt soit dans le meme dossier que l'executable )

#include
#include


int main(int argc, char *argv[]){

FILE *pFichier;
int i;
char *nomFichier="crypt.txt";
char nom[500];
char cle[100];



printf("saisir la clé : ");
scanf("%s",&cle);


pFichier= fopen(nomFichier, "r");
fgets(nom,500,pFichier);

for(i=0;



merci pour votre aide :)
Publicité
Le 11 février 2007 à 18:30:10
Le 11 février 2007 à 18:34:08

tu n'as pas la suite du code ?
parce que vu comme ça on peut pas trop t'aider… :(
Le 11 février 2007 à 18:36:42

justement, j'ai reçu le mail comme ça,l'algo de cryptage dois etre connu pour que le mail ne la contienne pas ?
Le 11 février 2007 à 18:42:10

rien a voir mais j'ai noté une legere erreur, on ne met pas
char *nomFichier="crypt.txt";

mais :
const char *nomFichier="crypt.txt";

car ta chaine n'est pas modifiable

et sinon dans ton scanf inutile de mettre &cle car ta variable est déja un tableau tu mets soit cle soit &cle[0].
Le 11 février 2007 à 18:45:14

je cherche just un moyen de décrypter ce fichier texte, j'ai n'ai pas le niveau pour ecrire ce genre de trucs...
Le 11 février 2007 à 18:45:53

Apriori si c'est un algorithme de décalage, il suffit de regarder sur quelle plage de valeurs varient les caractères cryptés.. S'en suit une petite analyse de fréquence et le tour est joué ! :p

Maintenant en y regardant de plus près, ca ressemble plus à du texte ayant subit un XOR mais je peux me tromper !
Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
anonyme
Photo
Le 11 février 2007 à 18:47:41

Citation : slimshady451

rien a voir mais j'ai noté une legere erreur, on ne met pas
<code type="c">char *nomFichier="crypt.txt"; </code>
mais :
<code type="c">const char *nomFichier="crypt.txt"; </code>
car ta chaine n'est pas modifiable

et sinon dans ton scanf inutile de mettre &cle car ta variable est déja un tableau tu mets soit cle soit &cle[0].



Les deux sont valables.
Le 11 février 2007 à 18:50:52

quelqu'un pourrait me balancer le code pour décrypter tout ca ? je trouverai moi meme le décalage
s'il vous plait, c'est un défi :(
Le 11 février 2007 à 18:56:03

Citation : taftouf

quelqu'un pourrait me balancer le code pour décrypter tout ca ? je trouverai moi meme le décalage
s'il vous plait, c'est un défi :(



Si c'est un décalage, la clé doit être assez grosse donc tu vas mettre du temps avant de trouver la clé (une nuit à taper sur ton clavier?)
Ce n'est pas bien dur de résoudre ce problème mais ca doit prendre un certain temps à coder... Je ne suis pas celui qui te "balancera" le code je n'ai pas le temps pour ca désolé !

EDIT :

Essaye de voir quelle est le caractère qui se répète le plus de fois, ce devrait être le caractère crypté pour 'E'. En effet, 'E' est le caractère de loin le plus souvent utilisé dans la langue française et anglaise entre autre.. Cela pourrait déjà t'avancer grandement en te donnant directement la clé si c'est un algorithme à décalage simple comme le Cesar...
Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
Le 11 février 2007 à 18:58:09

merci quand meme :)
je vous tiens au courant :)
Le 11 février 2007 à 19:05:14

Tu connais la clef/passphrase au moins ?
Lorsque tu parle de XOR, tu pense à un XOR de quoi et quoi la passphrase avec le texte ?
Ensuite, si c'est du décalage à quoi sert la passphrase ? Tu décale par les lettres de la passphrase et une fois que tu es au début tu recommence ?

Bref, sans plus d'info on peut pas trop t'aider
Le 11 février 2007 à 19:18:19

La passphrase peut être utilisée avec un XOR ou avec un décalage. Il suffit de répéter la passphrase autant de fois que nécessaire pour coder lettre par lettre le message en entier.
Avec César, on décale toutes les lettres du message par la même clé, le même nombre, ce qui fait que l'on peut directement faire une analyse de fréquence pour déterminer la clé et décrypter le message. L'algorithme de Vigénère est très similaire, sauf que là, on a plusieurs clés (une passphrase) qui est répété pour coder le message. Afin de cryptanalyser le vigénère, il ne suffit donc plus de faire une simple analyse de fréquence. Il faut faire une analyse de fréquence tout les X lettres, X représentant la longueur supposée de la clé.
Pour le XOR, il faut générer un grand nombre de clé, que l'on va appliquer au texte crypter avec un XOR jusqu'à ce que l'analyse de fréquence donne quelque chose de correct ! :) (ce qui peut prendre un certain temps, suivant la longueur de la clé.. :-° )
Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
Le 12 février 2007 à 22:41:26

voici ce que la personne qui a posé le cryptage m'a envoyé :

Citation : sensei

pas besoin d'être un grand informaticien pour le faire marcher
Oui c'est un simple décalage, mais je ne sais pas ou il va chercher son XOR ?

Bon ce n'es pas completement idiot, puisque qu'il est possible d'utiliser le XOR pour certain algo de cryptage, qui peut s'avérer inviolable si la clé est vraiment aléatoire .
Le XOR s'utilise en logique, et implique qu'on travaille directement sur du binaire (ici ce n'est pas le cas ,Après, il faut voir comment est traduit le programme par la machine, sachant que dans l'unité de calcul du processeur, normalement il doit y avoir des portes XOR, enfin c'est comme ça pour les ARM, ça ne doit pas être trop différent pour les AMD et INTEL ).

Après, c'est peut être possible de faire une implémentation FSM (je rappelle, Finite State Machine) derrière tout ça . En gros, un compteur - decodeur . Il y a de la logique derrière, donc surement des XOR? Faudrait mettre les équations en place, mais pas trop l'envie pour le moment !! (mais ça ce fais bien) Ensuite un simple FPGA devrait suffire , et hop , un décodeur embarqué .

Mais je m'égare..


Donc ce cryptage est simple (je t'explique) :
Je prend la valeur ASCII de la premiere lettre du fichier texte, et la valeur ASCII premiere lettre de la clé .
Je soustrait ces deux valeurs
Et j'obtiens la valeur ASCII de la lettre decrypté . Je l'affiche, traduit en caractère .
et de recommence avec la lettre suivant .

Sauf que lorsque je suis arrivé à la derniere lettre de la clé, je remet le compteur à zero c'est le i%5
ça s'appelle un modulo .
c'est le reste de la division de i par 5
ex:
Si i=1 ----> 1/5=1+0*5 donc i%5 =1
Si i=2 -----> 2/5=2+0*5 donc i%5 =2
etc..
Si i=5 -----> 5/5=0 + 1*5 donc i%5=0
Si i=6 -----> 6/1 +1*5 donc i%5=1
le compteur une fois arrivé à quatre retombe à zero .
----> ce qui donne une grosse indication sur la clé : c'est une clé à 5 caractères

Alors oui, il est possible de retrouver la clé, puisque niveau sécurité il y a de grosseS failleS .

Ex : faire un programme qui essaye toutes les clef possibles et vérifie si le code trouvé correspond à des mots de moine de 24 lettres .
(avec une clé de 5 caractères, c'est très rapide)
Ou encore utiliser un dictionnaire et vérifier que les mots trouvé on un sens . (c'est un simple calcul de distance entre les mots)

Il est aussi possible de remarquer que certaine lettre reviennent plus souvent que d'autre, ça peut être une indication .
---> pour éviter ça, il faut faire ce qu'on appelle une table de hachage, ce qui permet une bonne répartition de chaque lettre .

et j'en oublie surement plein d'autre failles ...




Mais bon, tan pis . Je t'ai (encore une fois) sur-estimé ???
De toute façon, il y n'y rien d'intéressant dans ce message .




merci de m'aider!
Le 13 février 2007 à 1:17:35

Fais une recherche sur la cryptanalyse de l'algorithme de Vigenere car c'est avec cet algo que le message est crypté d'après les indications de ton copain...
Maintenant que tu connais la longueur de la clé (5), la tache est grandement simplifiée...

Va faire un tour par ici : http://www.apprendre-en-ligne.net/crypto/vigenere/decodevig.html :)

EDIT : Bon je me suis décidé à écrire rapidement un petit programme avec mes pieds qui fait une petite analyse de fréquence. Je n'arrive toujours pas à déchiffrer le message. Cependant, j'ai réussi à déduire de cette analyse que la longueur de la clé était surement 5 comme ton copain l'a dit. Si c'est possible, j'aimerais bien avoir le fichier .txt original, histoire de m'assurer que les caractères spéciaux ont tous bien été conservés lorsque tu as posté le message codé sur le forum.
Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.

décrypter un fichier .txt en C ?

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown