Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
80c1f1b
Intégration de AesCbcAnalyzer dans DetecteurCryptoOrchestrateur.
Eunock-web Aug 2, 2025
83cc501
Merge branch 'feature/consoleInterface' of https://github.com/mouwafi…
Eunock-web Aug 2, 2025
a41256c
Debut de l'implementation du code dans la classe principale avec le menu
Eunock-web Aug 2, 2025
cac3bf5
Suite de l'implementation du code dans la classe principale avec le menu
Eunock-web Aug 2, 2025
93fd27d
Update de l'option quitter
wesley-kami Aug 4, 2025
77102c5
Merge branch 'main' of https://github.com/mouwaficbdr/CryptoForensic-…
wesley-kami Aug 4, 2025
c1c0b22
Revu des fonctions pour une meilleure optimisation
Eunock-web Aug 5, 2025
abb4365
Merge branch 'feature/DetecteurCryptoOrchestrateur' of https://github…
wesley-kami Aug 5, 2025
b74715c
Ajout du guide d'utilisation
wesley-kami Aug 5, 2025
5c9e9bb
Merge branch 'main' of https://github.com/mouwaficbdr/CryptoForensic-…
wesley-kami Aug 5, 2025
3a51f8e
Merge branch 'main' of https://github.com/mouwaficbdr/CryptoForensic-…
wesley-kami Aug 6, 2025
a45afa0
mission1 + console prémices
wesley-kami Aug 6, 2025
5e5d7c0
Merge branch 'main' of https://github.com/mouwaficbdr/CryptoForensic-…
wesley-kami Aug 7, 2025
ced12b2
test
wesley-kami Aug 7, 2025
8a11839
Merge branch 'main' into feature/DetecteurCryptoOrchestrateur
wesley-kami Aug 7, 2025
d18e690
finalisation de l'intégration mission1 + console plus de stress
wesley-kami Aug 7, 2025
49082ed
Merge branch 'feature/DetecteurCryptoOrchestrateur' of https://github…
wesley-kami Aug 7, 2025
87ec604
Merge branch 'main' into feature/DetecteurCryptoOrchestrateur
wesley-kami Aug 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions src/detecteur_crypto.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def analyser_fichier_specifique(self, chemin_fichier_chiffre: str) -> ResultatAn

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

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

if score > 0.5: # Seuil de confiance
algorithme_detecte = nom_algo
score_probabilite = score
print(f"Algorithme détecté: {algorithme_detecte} (score: {score:.2f})")
# print(f"Algorithme détecté: {algorithme_detecte} (score: {score:.2f})")
break

if not algorithme_detecte:
Expand Down Expand Up @@ -249,5 +249,4 @@ def attaque_dictionnaire_manuelle(self, chemin_fichier: str, algorithme_choisi:
print(f"Erreur lors de l'attaque: {str(e)}")
temps_execution = time.time() - debut_attaque
return ResultatAnalyse("", b"", 0.0, b"", temps_execution, 0)

print(DetecteurCryptoOrchestrateur().analyser_fichier_specifique(f"{os.path.abspath(os.curdir)}\\CryptoForensic-Python\\data\\mission2.enc"))
# print(DetecteurCryptoOrchestrateur().analyser_fichier_specifique('data/mission1.enc'))
50 changes: 34 additions & 16 deletions src/interface_console.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def dynamiqueText(self,text,color):

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


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

choix = self.prompt.ask("Veuillez choisir une option ", choices=["1","2","3","4","5","6"])
try:
Expand All @@ -80,51 +80,69 @@ def menu_1(self):
self.dynamiqueText("Analyse d'un fichier spécifique","green")
self.dynamiqueText("Veuillez entrer le chemin du fichier","yellow")
fichier = self.prompt.ask("")
time.sleep(0.04)
time.sleep(0.02)
# chemin_fichier = self.prompt.ask("Veuillez entrer le chemin du fichier : ")
# resultat = Analyser_fichier_uniquement(chemin_fichier)
self.console.clear()
# self.console.clear()
# self.dynamiqueText("Analyse en cours...","green")
# time.sleep(0.04)
# time.sleep(0.02)
# self.console.clear()
self.dynamiqueText("Analyse terminée","green")
self.console.print(DetecteurCryptoOrchestrateur().analyser_fichier_specifique(fichier))
# time.sleep(0.04)
data = DetecteurCryptoOrchestrateur().analyser_fichier_specifique(fichier)
print(f"\n[bold]Algorithme détecté[/bold] : [yellow]{data.algo}[/yellow]")
# print(data.cle)
print(f"\n[bold]Score de probabilité[/bold] : [green]{data.score_probabilite}[/green]")
# print(data.texte_dechiffre)
print(f"\n[bold]Temps d'éxécution[/bold] : [green]{round(data.temps_execution,4)}[/green] s")
esc=input("Veuillez appuyer sur la touche entrer pour retrouner au menu principal")
if esc=="":
self.default_menu()
else : self.default_menu()
# print(data.nb_tentatives)
# time.sleep(0.02)
#

def menu_2(self):
self.console.clear()
self.dynamiqueText("Mission complète automatique","green")
self.dynamiqueText("Veuillez entrer le chemin du dossier :","white")
time.sleep(0.04)
time.sleep(0.02)
# chemin_dossier = self.prompt.ask("Veuillez entrer le chemin du dossier : ")
self.console.clear()
self.dynamiqueText("Mission en cours...","green")
time.sleep(0.04)
time.sleep(0.02)
self.console.clear()
self.dynamiqueText("Mission terminée","green")
time.sleep(0.04)
time.sleep(0.02)
self.default_menu()

def menu_3(self):
self.console.clear()
self.dynamiqueText("Attaque par dictionnaire manuelle","green")
self.dynamiqueText("Veuillez entrer le chemin du fichier :","white")
time.sleep(0.04)
time.sleep(0.02)
# chemin_fichier = self.prompt.ask("Veuillez entrer le chemin du fichier : ")
self.console.clear()
self.dynamiqueText("Attaque en cours...","green")
time.sleep(0.04)
time.sleep(0.02)
self.console.clear()
self.dynamiqueText("Attaque terminée","green")
time.sleep(0.04)
time.sleep(0.02)
self.default_menu()

def menu_4(self):
self.console.clear()
self.dynamiqueText("Affichage des rapports","green")
time.sleep(0.04)
self.default_menu()
time.sleep(0.02)
f = open("rapport_mission.txt",'r')
rapports = f.read()
for rapport in rapports:
print(f"\n{rapport}")
f.close()
esc = input('Veuillez appuyez sur la touche entrer pour continuer')
if esc=='':
self.default_menu()
else: self.default_menu()

def menu_5(self):
self.console.clear()
Expand Down