Plateforme OSINT libre en C17 et GTK4 pour collecter, organiser et présenter des éléments d’enquête numériques traçables.
Find a file
2026-07-18 11:29:56 +02:00
data files: README + LICENSE 2026-07-18 09:27:07 +02:00
database refactor(database): introduce database infrastructure layer 2026-07-16 09:14:34 +02:00
docs delete: docs/tickets/ 2026-07-18 10:04:58 +02:00
include feat: initialize external tools asynchronously 2026-07-18 11:29:56 +02:00
resources feat(database): finalize database architecture v1 2026-07-15 23:10:24 +02:00
src feat: initialize external tools asynchronously 2026-07-18 11:29:56 +02:00
tests feat: initialize external tools asynchronously 2026-07-18 11:29:56 +02:00
.gitignore arbo 2026-07-13 13:57:25 +02:00
CHANGELOG.md files: README + LICENSE 2026-07-18 09:27:07 +02:00
compile_flags.txt arbo 2026-07-13 13:57:25 +02:00
labfy-investigation feat: initialize external tools asynchronously 2026-07-18 11:29:56 +02:00
LICENSE files: README + LICENSE 2026-07-18 09:27:07 +02:00
Makefile feat: initialize external tools asynchronously 2026-07-18 11:29:56 +02:00
README.md docs: clarify Forgejo as primary repository 2026-07-18 10:03:29 +02:00

Labfy Investigation

Important

Forgejo est le dépôt principal du projet.

Le code peut également être publié sur GitHub comme miroir public, mais le suivi du développement, les tickets, les décisions techniques et la feuille de route se trouvent sur :

https://git.labfytools.com/fy59/labfy-investigation

Tickets :

https://git.labfytools.com/fy59/labfy-investigation/issues

Les tickets et pull requests ouverts uniquement sur GitHub risquent de ne pas être suivis.

Labfy Investigation est un poste de travail libre dinvestigation numérique et dOSINT, développé en C17 avec GTK4.

Le projet vise à fournir un environnement local, modulaire et traçable pour organiser une enquête, préserver les preuves originales, analyser des données, corréler des entités et produire des rapports exploitables.

État du projet : développement actif

Le logiciel nest pas encore prêt pour un usage opérationnel en production. Les formats internes, linterface et les mécanismes dintégration peuvent encore évoluer.


Labfy Investigation est un poste de travail libre dinvestigation numérique et dOSINT, développé en C17 avec GTK4.

Le projet vise à fournir un environnement local, modulaire et traçable pour organiser une enquête, préserver les preuves originales, analyser des données, corréler des entités et produire des rapports exploitables.

État du projet : développement actif

Le logiciel nest pas encore prêt pour un usage opérationnel en production. Les formats internes, linterface et les mécanismes dintégration peuvent encore évoluer.


Objectifs

Labfy Investigation doit permettre de :

  • créer et ouvrir une enquête autonome ;
  • conserver les preuves originales sans les modifier ;
  • organiser les fichiers, entités, relations et événements ;
  • stocker les données structurées dans SQLite ;
  • afficher larborescence complète dune enquête ;
  • exécuter des traitements longs en arrière-plan ;
  • intégrer progressivement des outils OSINT externes ;
  • conserver les sorties brutes, les versions et les paramètres dexécution ;
  • distinguer les faits observés, les résultats doutils, les corrélations et les hypothèses ;
  • produire des rapports compréhensibles et traçables.

Le logiciel est pensé pour des usages légaux par des particuliers, journalistes, analystes OSINT, experts judiciaires et forces de lordre.


Cadre légal et éthique

Labfy Investigation est conçu pour travailler avec :

  • des sources publiquement accessibles ;
  • des données fournies légalement par une victime ou un enquêteur ;
  • des API utilisées conformément à leurs autorisations ;
  • des recherches passives ou explicitement autorisées ;
  • des copies locales dont la provenance peut être documentée.

Le projet na pas vocation à fournir ou automatiser :

  • lintrusion dans un système ;
  • le contournement dune authentification ;
  • lexploitation de vulnérabilités ;
  • le brute force ou le credential stuffing ;
  • le phishing ou lusurpation ;
  • lutilisation de secrets découverts ;
  • laccès à des données privées sans autorisation ;
  • la modification ou la suppression de données distantes.

Un résultat produit par un outil OSINT constitue une piste à vérifier, pas une preuve didentité à lui seul.


Principes fondamentaux

Une enquête est autonome

Chaque enquête est stockée dans un dossier transportable :

MonEnquete/
├── 00_BaseDeDonnees/
│   └── Enquete.sqlite
├── 01_Preuves_Originales/
├── 02_Preuves_Traitees/
├── 03_Chronologie/
├── 04_Entites/
└── 05_Rapports/

Une enquête peut être copiée, déplacée, sauvegardée, archivée ou transmise avec ses données.

Les preuves originales sont immuables

Toute annotation, conversion, extraction ou analyse doit produire un nouveau fichier. Une preuve originale ne doit jamais être modifiée.

SQLite est la source de vérité

Les tableaux, graphes, chronologies et résultats de recherche sont des vues différentes des mêmes données persistées.

Les résultats bruts et normalisés sont séparés

Chaque traitement doit conserver :

  • loutil utilisé ;
  • sa version ;
  • les arguments ;
  • la date et lheure UTC ;
  • la source interrogée ;
  • la sortie brute ;
  • lempreinte des fichiers produits ;
  • les données normalisées utilisées par lapplication.

Linterface ne doit jamais être bloquée

Les opérations longues doivent sexécuter en arrière-plan et rester annulables.

Aucun shell construit dynamiquement

Les outils externes sont lancés avec GSubprocess et des arguments séparés. Les commandes concaténées puis transmises à un shell sont interdites.


Fonctionnalités déjà présentes

Le socle actuel comprend notamment :

  • création et ouverture denquêtes ;
  • validation de larborescence ;
  • sessions denquête remplaçables proprement ;
  • base SQLite versionnée ;
  • transactions et remontée structurée des erreurs ;
  • DAO et modèles denquête ;
  • arborescence des fichiers ;
  • fenêtre principale GTK4 ;
  • barre latérale et espace de travail ;
  • affichage graphique des erreurs ;
  • tâches asynchrones annulables ;
  • gestionnaire de tâches ;
  • panneau dactivité GTK ;
  • registre doutils externes ;
  • exécution sécurisée par GSubprocess ;
  • exécution doutils en tâche de fond ;
  • catalogue initial doutils ;
  • détection de présence et de version.

Les outils actuellement présents dans le catalogue initial sont :

dig
host
whois
curl
openssl

Ils restent optionnels : labsence dun outil ne doit pas empêcher Labfy Investigation de démarrer.


Architecture

Le projet sépare strictement les responsabilités :

Interface GTK4
      ↓
Application
      ↓
Services métier
      ↓
Adaptateurs
├── SQLite
├── système de fichiers
├── outils CLI
└── futures API

Règles principales :

  • le cœur métier ne dépend pas de GTK ;
  • les widgets ne manipulent ni SQLite ni les preuves ;
  • les modèles ne connaissent ni GTK ni SQLite ;
  • les erreurs remontent jusquà lapplication ;
  • chaque allocation possède une responsabilité de libération claire ;
  • les tests du cœur ne doivent pas nécessiter le lancement de GTK.

Organisation actuelle :

database/          Ressources et éléments liés à la base
docs/              Architecture, conventions et feuille de route
include/core/      Interfaces du cœur
include/dao/       Interfaces daccès aux données
include/database/  Infrastructure SQLite
include/models/    Modèles métier
include/views/     Fenêtres GTK
include/widgets/   Widgets réutilisables
resources/         Ressources de lapplication
src/core/          Implémentation du cœur
src/dao/           Accès aux données
src/database/      Implémentation SQLite
src/models/        Modèles métier
src/views/         Vues GTK
src/widgets/       Widgets GTK
tests/             Tests unitaires

La documentation détaillée se trouve dans :


Environnements ciblés

Ubuntu

Ubuntu est la cible principale de distribution, notamment pour un futur déploiement auprès des forces de lordre.

Dépendances de compilation :

sudo apt update
sudo apt install     build-essential     pkg-config     libgtk-4-dev     libglib2.0-dev     libsqlite3-dev

La disponibilité réelle des paquets devra être vérifiée sur les postes utilisant des dépôts institutionnels restreints.

Arch Linux

Arch Linux est lenvironnement principal de développement et de validation.

sudo pacman -S --needed     base-devel     pkgconf     gtk4     glib2     sqlite

Les paquets AUR ne devront jamais devenir une dépendance obligatoire du futur paquet Ubuntu.


Compilation

Depuis la racine du dépôt :

make

Le binaire produit est :

./labfy-investigation

Lancer lapplication :

make run

Nettoyer les fichiers générés :

make clean

Le projet est compilé en C17 avec les avertissements traités comme des erreurs.


Tests

Lancer tous les tests :

make test

Vérifications recommandées avant chaque commit :

make clean
make
make test
git diff --check

Les nouveaux modules doivent être accompagnés de tests couvrant :

  • les arguments invalides ;
  • le fonctionnement nominal ;
  • les erreurs ;
  • lannulation lorsque nécessaire ;
  • les responsabilités mémoire ;
  • les régressions possibles.

Développement

Conventions essentielles :

  • C17 uniquement ;
  • fichiers et fonctions en snake_case ;
  • fonctions préfixées par leur module ;
  • noms de variables explicites ;
  • aucune logique métier dans les widgets ;
  • aucun commit tant que la fonctionnalité ne compile pas et ne fonctionne pas ;
  • compilation sans avertissement ;
  • tests valides avant intégration.

Exemples de préfixes :

database_*
investigation_*
task_manager_*
tool_registry_*
tool_process_*
tool_catalog_*

Outils OSINT externes

Le ticket historique #40 reste ouvert comme inventaire évolutif des outils OSINT potentiels.

Les outils ne sont pas intégrés en masse. Lorsquun besoin concret apparaît :

  1. un ticket Forgejo dédié est créé ;
  2. loutil est audité techniquement et juridiquement ;
  3. sa compatibilité Ubuntu et Arch est vérifiée ;
  4. son adaptateur est développé ;
  5. ses sorties brutes et normalisées sont testées ;
  6. son état est mis à jour dans linventaire.

Aucun outil absent nest installé automatiquement par lapplication.


Suivi du projet

Les tickets sont désormais suivis directement dans Forgejo :

https://git.labfytools.com/fy59/labfy-investigation/issues

Les tickets historiques jusquau numéro 40 conservent leur numérotation. Les nouveaux tickets utilisent uniquement le numéro attribué automatiquement par Forgejo.

Le prochain chantier porte sur linitialisation asynchrone du registre et des versions doutils au démarrage.


État du packaging

Le packaging nest pas encore finalisé.

Les cibles prévues sont :

  • paquet .deb pour Ubuntu ;
  • dossier source accompagné dun script de compilation ;
  • procédure de développement et de test pour Arch Linux.

Le futur installateur Ubuntu devra fonctionner autant que possible sans dépendre de dépôts non standards.


Contribution

Avant toute modification :

  1. consulter les tickets ouverts ;
  2. lire larchitecture et les conventions ;
  3. limiter chaque changement à un objectif cohérent ;
  4. ajouter ou adapter les tests ;
  5. vérifier la compilation complète ;
  6. documenter toute dérogation architecturale.

Licence

Labfy Investigation est distribué sous licence MIT.

Voir le fichier LICENSE pour les conditions complètes.