Skip to content

Commit ee88bae

Browse files
Feature/detecteur crypto orchestrateur (#30)
* Intégration de AesCbcAnalyzer dans DetecteurCryptoOrchestrateur. * Debut de l'implementation du code dans la classe principale avec le menu * Suite de l'implementation du code dans la classe principale avec le menu * Update de l'option quitter * Revu des fonctions pour une meilleure optimisation * Ajout du guide d'utilisation * mission1 + console prémices * test * finalisation de l'intégration mission1 + console plus de stress --------- Co-authored-by: Eunock-web <izumishinishi7@gmail.com>
1 parent 76baf3a commit ee88bae

2 files changed

Lines changed: 39 additions & 22 deletions

File tree

src/detecteur_crypto.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def analyser_fichier_specifique(self, chemin_fichier_chiffre: str) -> ResultatAn
6666

6767
try:
6868
# Vérification de l'existence du fichier
69-
if not os.path.exists(chemin_fichier_chiffre):
69+
if not os.path.exists(f"data/{chemin_fichier_chiffre}"):
7070
print("Erreur: Fichier non trouvé")
7171
return ResultatAnalyse("", b"", 0.0, b"", 0.0, 0)
7272

@@ -80,14 +80,14 @@ def analyser_fichier_specifique(self, chemin_fichier_chiffre: str) -> ResultatAn
8080
# Parcours des algorithmes disponibles
8181
scores_algorithmes = {}
8282
for nom_algo, analyzer in self.analyzers.items():
83-
score = analyzer.identifier_algo(chemin_fichier_chiffre)
83+
score = analyzer.identifier_algo(f"data/{chemin_fichier_chiffre}")
8484
scores_algorithmes[nom_algo] = score
85-
print(f"{nom_algo}: score {score:.2f}")
85+
# print(f"{nom_algo}: score {score:.2f}")
8686

8787
if score > 0.5: # Seuil de confiance
8888
algorithme_detecte = nom_algo
8989
score_probabilite = score
90-
print(f"Algorithme détecté: {algorithme_detecte} (score: {score:.2f})")
90+
# print(f"Algorithme détecté: {algorithme_detecte} (score: {score:.2f})")
9191
break
9292

9393
if not algorithme_detecte:
@@ -249,5 +249,4 @@ def attaque_dictionnaire_manuelle(self, chemin_fichier: str, algorithme_choisi:
249249
print(f"Erreur lors de l'attaque: {str(e)}")
250250
temps_execution = time.time() - debut_attaque
251251
return ResultatAnalyse("", b"", 0.0, b"", temps_execution, 0)
252-
253-
print(DetecteurCryptoOrchestrateur().analyser_fichier_specifique(f"{os.path.abspath(os.curdir)}\\CryptoForensic-Python\\data\\mission2.enc"))
252+
# print(DetecteurCryptoOrchestrateur().analyser_fichier_specifique('data/mission1.enc'))

src/interface_console.py

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def dynamiqueText(self,text,color):
3636

3737
for char in text:
3838
self.console.print(f"[{color}]{char}[/{color}]",end='')
39-
time.sleep(0.04)
39+
time.sleep(0.02)
4040
self.console.print('\n')
4141

4242

@@ -45,7 +45,7 @@ def default_menu(self):
4545
self.console.clear()
4646
self.dynamiqueText("😈​ Bienvenue sur Forensic je suis Crypto votre assitant IA minimaliste 🤖​ ","green")
4747
self.dynamiqueText("En quoi puis-je vous aider ? :","white")
48-
time.sleep(0.04)
48+
time.sleep(0.02)
4949
menuTag = Markdown("# Menu",style="blue")
5050
menuOption = Markdown("1. #### Analyse d'un fichier spécifique \n" \
5151
"2. #### Mission complète automatique \n" \
@@ -54,7 +54,7 @@ def default_menu(self):
5454
"5. #### Système d'aide intégré \n" \
5555
"6. #### Quitter")
5656
self.console.print(menuTag,menuOption)
57-
time.sleep(0.04)
57+
time.sleep(0.02)
5858

5959
choix = self.prompt.ask("Veuillez choisir une option ", choices=["1","2","3","4","5","6"])
6060
try:
@@ -80,51 +80,69 @@ def menu_1(self):
8080
self.dynamiqueText("Analyse d'un fichier spécifique","green")
8181
self.dynamiqueText("Veuillez entrer le chemin du fichier","yellow")
8282
fichier = self.prompt.ask("")
83-
time.sleep(0.04)
83+
time.sleep(0.02)
8484
# chemin_fichier = self.prompt.ask("Veuillez entrer le chemin du fichier : ")
8585
# resultat = Analyser_fichier_uniquement(chemin_fichier)
86-
self.console.clear()
86+
# self.console.clear()
8787
# self.dynamiqueText("Analyse en cours...","green")
88-
# time.sleep(0.04)
88+
# time.sleep(0.02)
8989
# self.console.clear()
9090
self.dynamiqueText("Analyse terminée","green")
91-
self.console.print(DetecteurCryptoOrchestrateur().analyser_fichier_specifique(fichier))
92-
# time.sleep(0.04)
91+
data = DetecteurCryptoOrchestrateur().analyser_fichier_specifique(fichier)
92+
print(f"\n[bold]Algorithme détecté[/bold] : [yellow]{data.algo}[/yellow]")
93+
# print(data.cle)
94+
print(f"\n[bold]Score de probabilité[/bold] : [green]{data.score_probabilite}[/green]")
95+
# print(data.texte_dechiffre)
96+
print(f"\n[bold]Temps d'éxécution[/bold] : [green]{round(data.temps_execution,4)}[/green] s")
97+
esc=input("Veuillez appuyer sur la touche entrer pour retrouner au menu principal")
98+
if esc=="":
99+
self.default_menu()
100+
else : self.default_menu()
101+
# print(data.nb_tentatives)
102+
# time.sleep(0.02)
93103
#
94104

95105
def menu_2(self):
96106
self.console.clear()
97107
self.dynamiqueText("Mission complète automatique","green")
98108
self.dynamiqueText("Veuillez entrer le chemin du dossier :","white")
99-
time.sleep(0.04)
109+
time.sleep(0.02)
100110
# chemin_dossier = self.prompt.ask("Veuillez entrer le chemin du dossier : ")
101111
self.console.clear()
102112
self.dynamiqueText("Mission en cours...","green")
103-
time.sleep(0.04)
113+
time.sleep(0.02)
104114
self.console.clear()
105115
self.dynamiqueText("Mission terminée","green")
106-
time.sleep(0.04)
116+
time.sleep(0.02)
107117
self.default_menu()
108118

109119
def menu_3(self):
110120
self.console.clear()
111121
self.dynamiqueText("Attaque par dictionnaire manuelle","green")
112122
self.dynamiqueText("Veuillez entrer le chemin du fichier :","white")
113-
time.sleep(0.04)
123+
time.sleep(0.02)
114124
# chemin_fichier = self.prompt.ask("Veuillez entrer le chemin du fichier : ")
115125
self.console.clear()
116126
self.dynamiqueText("Attaque en cours...","green")
117-
time.sleep(0.04)
127+
time.sleep(0.02)
118128
self.console.clear()
119129
self.dynamiqueText("Attaque terminée","green")
120-
time.sleep(0.04)
130+
time.sleep(0.02)
121131
self.default_menu()
122132

123133
def menu_4(self):
124134
self.console.clear()
125135
self.dynamiqueText("Affichage des rapports","green")
126-
time.sleep(0.04)
127-
self.default_menu()
136+
time.sleep(0.02)
137+
f = open("rapport_mission.txt",'r')
138+
rapports = f.read()
139+
for rapport in rapports:
140+
print(f"\n{rapport}")
141+
f.close()
142+
esc = input('Veuillez appuyez sur la touche entrer pour continuer')
143+
if esc=='':
144+
self.default_menu()
145+
else: self.default_menu()
128146

129147
def menu_5(self):
130148
self.console.clear()

0 commit comments

Comments
 (0)