Skip to content

Commit cb996da

Browse files
wesley-kamiEunock-webe-mandy
authored
Feature/detecteur crypto orchestrateur (#50)
* 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 * Intégration de l'AesGcmAnalyzer dans l'orchestrateur * implémentation de l'attaque par dictionnaire --------- Co-authored-by: Eunock-web <izumishinishi7@gmail.com> Co-authored-by: e-mandy <andymfrd02@gmail.com>
1 parent 52c5278 commit cb996da

File tree

1 file changed

+43
-1
lines changed

1 file changed

+43
-1
lines changed

src/detecteur_crypto.py

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import time
44
from typing import List, Union
55
from pathlib import Path
6+
from rich.progress import Progress
67
# Import des modules d'analyse
78
from src.analyzers.aes_cbc_analyzer import Aes_Cbc_Analyzer
89
from src.crypto_analyzer import CryptoAnalyzer
@@ -358,6 +359,47 @@ def attaque_dictionnaire_manuelle(self, chemin_fichier: str, algorithme_choisi:
358359
print(f"Erreur lors de l'attaque: {str(e)}")
359360
temps_execution = time.time() - debut_attaque
360361
return ResultatAnalyse("", b"", 0.0, b"", temps_execution, 0)
362+
363+
def attaque_dictionnaire(self,chemin_fichier_chiffrer: str, algo : str, chemin_dico : str = "keys/wordlist.txt"):
364+
365+
with Progress() as progress:
366+
analyzer = self.analyzers[algo]
367+
368+
cle_candidates = analyzer.generer_cles_candidates(chemin_dico)
369+
370+
with open(chemin_dico,'r') as d:
371+
dico = d.readlines()
372+
373+
with open(f"data/{chemin_fichier_chiffrer}",'rb') as f :
374+
texte_chiffrer = f.read()
375+
376+
task_id = progress.add_task("Testing...",total=len(cle_candidates))
377+
378+
current_task = 0
379+
380+
advance = 1
381+
382+
383+
while current_task < len(cle_candidates) :
384+
time.sleep(0.5)
385+
386+
essai_dechiffrage = analyzer.dechiffrer(f"data/{chemin_fichier_chiffrer}", cle_candidates[current_task])
387+
388+
if essai_dechiffrage != b"" :
389+
390+
progress.update(task_id,advance=len(cle_candidates) - current_task)
391+
392+
return essai_dechiffrage
393+
394+
current_task+=1
395+
396+
progress.update(task_id,advance=advance)
397+
398+
399+
return "Aucune clé trouvé"
400+
401+
# print("\n Process is done ...")
402+
361403

362-
# print(DetecteurCryptoOrchestrateur().analyser_fichier_specifique(f"{os.path.abspath(os.curdir)}\\CryptoForensic-Python\\data\\mission2.enc"))
404+
# print(DetecteurCryptoOrchestrateur().attaque_dictionnaire("mission1.enc","Fernet"))
363405

0 commit comments

Comments
 (0)