Blog ENI : Toute la veille numérique !
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
  1. Livres et vidéos
  2. Python et l'analyse forensique - Récupérer et analyser les données produites par les ordinateurs

Python et l'analyse forensique Récupérer et analyser les données produites par les ordinateurs

Informations

Livraison possible dès le 12 décembre 2024
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Livre (broché) - 17 x 21 cm
  • ISBN : 978-2-409-01790-2
  • EAN : 9782409017902
  • Ref. ENI : RIPYTFO

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-409-01829-9
  • EAN : 9782409018299
  • Ref. ENI : LNRIPYTFO
L'informatique forensique nécessite de comprendre en détail le fonctionnement des ordinateurs, des périphériques et des logiciels en question. L'objectif est de donner au lecteur les connaissances nécessaires pour se familiariser avec le langage Python (en version 3) en orientant la problématique de manière à se focaliser sur le fonctionnement de ces objets. Ce livre a été écrit avec la volonté d'être...
Consulter des extraits du livre en ligne Aperçu du livre papier
  • Niveau Initié à Confirmé
  • Nombre de pages 441 pages
  • Parution mars 2019
  • Niveau Initié à Confirmé
  • Parution mars 2019
L'informatique forensique nécessite de comprendre en détail le fonctionnement des ordinateurs, des périphériques et des logiciels en question. L'objectif est de donner au lecteur les connaissances nécessaires pour se familiariser avec le langage Python (en version 3) en orientant la problématique de manière à se focaliser sur le fonctionnement de ces objets. Ce livre a été écrit avec la volonté d'être accessible au plus grand nombre et la conviction qu'une « démocratisation » de la compréhension de l'outil informatique est désormais essentielle.

Ce livre propose une approche en deux temps : il commence par une introduction au langage Python puis présente comment l'utiliser pour récupérer et manipuler les données produites par nos ordinateurs. Les auteurs traitent ainsi de thématiques variées allant de l'inspection de la mémoire vive des processus, au fonctionnement interne de logiciels grand public ou à l'extraction de l'historique de navigateur web. Différents outils sont étudiés : des plus basiques avec la bibliothèque libmagic, aux technologies les plus récentes comme l'apprentissage automatique avec scikit-learn et son écosystème issu du calcul scientifique.

Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.


Les chapitres du livre :
Avant-propos – Introduction : Python et l'informatique forensique – Premiers pas en Python – Bibliothèque standard – Premiers pas dans l'analyse d'un fichier – Analyser un historique de navigation web – Partitionnement automatique de données – Extraire les sujets d'un ensemble de textes – Inspection des processus du noyau Linux



Quizinclus dans
la version en ligne !
  • Testez vos connaissances à l'issue de chaque chapitre
  • Validez vos acquis

Téléchargements

Avant-propos
  1. Introduction
Introduction : Python et l’informatique forensique
  1. Pourquoi un livre sur le sujet ?
    1. 1. La mutation de l’informatique forensique
      1. a. Des usages toujours plus nombreux et variés
      2. b. Un cadre légal qui évolue à l’échelleplanétaire
    2. 2. Une pratique qui se démocratise
      1. a. Des attentes en sécurité et en fiabilité toujoursplus grandes
      2. b. De la nécessité de maîtriserses outils
  2. Présentation du langage
    1. 1. Un langage adapté
      1. a. Python, un langage de script
      2. b. Une interface efficace avec C
      3. c. Une communauté active
    2. 2. Interprétation de Python
      1. a. CPython
      2. b. Autres implémentations
      3. c. URL
  3. Le choix des logiciels
    1. 1. Le choix du système d’exploitation
      1. a. GNU/Linux
      2. b. Le choix d’une distribution
      3. c. Les procédures d’installation dans ce livre
Premiers pas en Python
  1. Installation de CPython
    1. 1. Avec le gestionnaire de paquets de la distributionGNU/Linux
      1. a. Sur GNU/Linux Debian 9
      2. b. Autres gestionnaires de paquets
    2. 2. Autres méthodes
      1. a. Depuis les sources
      2. b. Avec les binaires fournis sur le site python.org
    3. 3. Exécuter du Python
      1. a. Depuis l’interpréteur interactif
      2. b. Depuis un fichier
      3. c. Hyperliens
  2. Éléments de syntaxe fondamentaux
    1. 1. Les commentaires
      1. a. Commentaire monoligne
      2. b. Les commentaires multilignes
    2. 2. Variables
      1. a. Nommage
      2. b. Affectation
    3. 3. Les fonctions
      1. a. Appeler une fonction
      2. b. Définir une fonction
      3. c. Fonction lambda
    4. 4. Les objets et leurs instances
      1. a. Rapide rappel sur la programmation orientéeobjet
      2. b. Créer une instance
      3. c. Accéder aux attributs, appeler une méthode
      4. d. Définir une classe en Python
      5. e. Les méthodes « magiques »
      6. f. Le « modèle objet » dePython
      7. g. Les attributs et les méthodes « declasse »
      8. h. Hyperliens
  3. Les types de données essentiels
    1. 1. Les nombres
      1. a. Entiers et flottants
      2. b. Opérations sur les nombres
      3. c. Opérateurs de comparaisons
      4. d. Opérations bits à bits
      5. e. Nombres complexes
    2. 2. Autres types
      1. a. None
      2. b. Booléens
      3. c. Opérateurs booléens
      4. d. Opérateurs d’identité
    3. 3. Itérables
      1. a. Introduction
      2. b. Les tableaux : list
      3. c. Le dépaquetage de séquences
      4. d. Les listes immuables : tuple
      5. e. Les tableaux associatifs : dict
      6. f. Les ensembles : set
      7. g. Les itérateurs
      8. h. Les fonctions de génération
      9. i. Regrouper des arguments de fonctions dans un itérable
    4. 4. Les chaînes de caractères
      1. a. Présentation
      2. b. Fonctions et méthodes des chaînesde caractères
      3. c. La méthode « format »
      4. d. Formater une chaîne avec la syntaxe « printf »
      5. e. Les chaînes d’octets
      6. f. Encode et decode
      7. g. URL
  4. Les structures de contrôles
    1. 1. Conditionnels et boucles
      1. a. Les branchements conditionnels
      2. b. Les expressions conditionnelles
      3. c. La répétition « tantque » avec while
      4. d. L’itération avec for
      5. e. Les instructions de contrôle de l’itération
      6. f. Le else de boucle
    2. 2. La compréhension de liste
      1. a. L’expression d’une collection
      2. b. L’introduction des conditions
    3. 3. Gestion des exceptions
      1. a. Introduction
      2. b. Les classes d’exceptions de Python
      3. c. Try, Except, Raise
      4. d. else/finally
  5. Mécanismes d’import
    1. 1. Définitions
      1. a. Les modules de Python
      2. b. Les packages en Python
    2. 2. Syntaxe de l’import
      1. a. Le mot-clé « import »
      2. b. Les chemins d’import
      3. c. Le mot-clé « from »
  6. Environnement, dépendances et communauté
    1. 1. Déploiement/installation
      1. a. Présentation
      2. b. Le script setup.py
      3. c. Egg et Wheel
      4. d. Pip
      5. e. Gestionnaire de paquet d’une distribution
      6. f. Hyperliens
    2. 2. Les environnements virtuels avec virtualenv
      1. a. Présentation et mise en garde
      2. b. Installation et utilisation
    3. 3. Qualité du code
      1. a. Les conventions de codage PEP8
      2. b. Utilitaires
      3. c. Hyperliens
Bibliothèque standard
  1. Bibliothèques utilitaires
    1. 1. Fonctions utilitaires
      1. a. Afficher avec print
      2. b. Interroger le type d’une variable
      3. c. Obtenir de l’aide avec help
    2. 2. Modules utilitaires de Python
      1. a. Garder une trace de l’exécutiondes programmes avec logging
      2. b. Analyser les arguments de la ligne de commande avecargparse
      3. c. Parallélisation facile avec multiprocessing.Pool
      4. d. Hyperliens
  2. Opérations de base sur un système de fichiers
    1. 1. Se déplacer et explorer l’arborescencedes dossiers
      1. a. Les chemins d’accès : lespaths
      2. b. Le dossier courant cwd et le déplacementdans l’arborescence
      3. c. Les fonctions utilitaires sur les chemins de os.path
      4. d. Exploration d’une arborescence avec le moduleos
    2. 2. Opérations sur les fichiers
      1. a. Ouverture et fermeture d’un fichier
      2. b. stdin, stdout & stderr
      3. c. Lecture et écriture dans un fichier
      4. d. Exemple : réaliser une image disque
    3. 3. Utilitaires
      1. a. Manipulation des fichiers avec le module os
      2. b. Aller plus loin dans la manipulation des fichiersavec shutil
      3. c. Gérer les fichiers temporaires avec tempfile
  3. Opérations de base sur le réseau
    1. 1. TCP/UDP
      1. a. Python et les sockets
      2. b. Serveur
      3. c. Client
      4. d. Recevoir et envoyer des données sur un socket
      5. e. Un faux serveur chargen
    2. 2. Le module urllib
      1. a. Introduction
      2. b. Analyse d’URL avec urllib.parse
      3. c. Forger une URL avec urllib.parse
      4. d. Hyperliens
Premiers pas dans l'analyse d'un fichier
  1. Le fichier dans son ensemble
    1. 1. Trouver le type d’un fichier avec les nombres magiques
      1. a. Présentation
      2. b. Installation de python-magic
      3. c. Exemple d’utilisation
      4. d. Hyperliens
    2. 2. Les fonctions de hachage
      1. a. Présentation du concept
      2. b. Le module hashlib de la bibliothèque standard
      3. c. Contrôler l’intégrité desfichiers
    3. 3. Génération de "diff" avec difflib
      1. a. Présentation de diff
      2. b. Le programme GNU diff
      3. c. Générer le diff de deux fichiersavec Python
      4. d. Générer des diff de fichiers binaires
  2. Utiliser Python pour lire des métadonnées
    1. 1. De l’importance des métadonnées
      1. a. Définition
      2. b. Quels intérêts pour les métadonnées ?
    2. 2. Lire les informations fournies par un systèmede fichiers
      1. a. L’espace utilisé
      2. b. Les métadonnées temporelles avecos.path
      3. c. Le système de fichiers vu par le noyau
      4. d. Identifier les liens matériels à l’aidedes inodes
      5. e. Hyperliens
    3. 3. Métadonnées de fichiers multimédiasavec XMP
      1. a. Le choix du format de métadonnéeXMP
      2. b. Installation de python-xmp-toolkit
      3. c. Utilisation de la bibliothèque
      4. d. Présentation rapide de XML
      5. e. Un petit explorateur de métadonnées
      6. f. Hyperliens
Analyser un historique de navigation web
  1. Bibliothèques HTML et HTTP haut niveau
    1. 1. La bibliothèque requests
      1. a. Présentation
      2. b. Installation
      3. c. Envoyer une requête avec une commande spécifique
      4. d. Passage de paramètres dans l’URL
      5. e. Passage de paramètres pour une requêtePOST
      6. f. Hyperliens
    2. 2. La bibliothèque Beautiful Soup
      1. a. Présentation
      2. b. Installation
      3. c. Charger du HTML
      4. d. Extraire du contenu
      5. e. Hyperliens
  2. Les bases de données SQLite3
    1. 1. SGBD et SQL
      1. a. Les Systèmes de Gestion de Base de Données
      2. b. Structured Query Langage (Langage de requêtestructurée)
      3. c. Un ORM pour les interfacer tous
    2. 2. SQLite3 un SGBD léger
      1. a. Présentation
      2. b. Les types de données SQLite3
      3. c. Hyperlien
    3. 3. Le module SQLite3
      1. a. Connexion à une base de données
      2. b. Exécuter une requête SQL
      3. c. Les curseurs
      4. d. Hyperliens
  3. Accéder à l’historique d’un navigateur
    1. 1. L’historique des navigateurs les plus utilisés
      1. a. Introduction
      2. b. Mozilla Firefox
      3. c. Safari®
      4. d. Navigateur Android®
      5. e. Navigateur Chrome™/Chromium™
      6. f. Hyperliens
    2. 2. Écriture d’un module d’accès
      1. a. Organisation générale du code
      2. b. Exécuter la requête selon le navigateur
      3. c. Exemple d’utilisation
      4. d. Récupérer un document HTML
      5. e. Mise en place d’un cache
      6. f. Accélérer l’exécutionavec multiprocessing
      7. g. Hyperliens
    3. 3. Utilisations
      1. a. Lister les noms de domaines visités
      2. b. Établir des statistiques sur les en-têtesdes documents
Partitionnement automatique de données
  1. L'apprentissage automatique ou apprentissage statistique
    1. 1. Présentation
      1. a. Définition
      2. b. « Supervision » desalgorithmes
    2. 2. Le partitionnement non supervisé
      1. a. Présentation de la famille d’algorithmes
      2. b. Principaux algorithmes
  2. Bibliothèques Python
    1. 1. Calcul matriciel optimisé avec NumPy
      1. a. Présentation
      2. b. Installation
      3. c. Le type numpy.array
      4. d. Hyperliens
    2. 2. L’apprentissage automatique avec Scikit-Learn
      1. a. Présentation
      2. b. Installation
      3. c. Le partitionnement de données avec scikit-learn
      4. d. Hyperliens
    3. 3. Afficher des données avec Matplotlib
      1. a. Présentation
      2. b. Installation
      3. c. Afficher un ensemble de données dans un graphique
      4. d. Hyperliens
  3. Une première application : regrouper les fichiers par date de création
    1. 1. Représentation des données
      1. a. Description de la problématique
      2. b. Stockage et identification des temps et des chemins
      3. c. Écrire un script pour créer desinstances de FilesTime
      4. d. Normalisation des données
    2. 2. Création du modèle et constructiondes sous-groupes
      1. a. Préambule
      2. b. Création du modèle avec MiniBatchKmeans
      3. c. Création du modèle avec BIRCH
      4. d. Création du modèle avec DBSCAN
      5. e. Création des groupes à partir desmodèles
    3. 3. Écrire une interface textuelle
      1. a. Présentation de l’interface
      2. b. Les fonctions utilitaires d’une interfacetextuelle
      3. c. Une représentation des modèles pourl’interface
      4. d. Le module ui
      5. e. Afficher les données dans un graphique
      6. f. Le menu principal et la boucle de traitement
      7. g. Utilisation
Extraire les sujets d'un ensemble de textes
  1. Le traitement automatique des langues naturelles
    1. 1. Introduction
      1. a. Présentation
      2. b. La modélisation de sujets
    2. 2. Les langues naturelles en Python avec NLTK
      1. a. Présentation
      2. b. Installation
      3. c. Hyperliens
    3. 3. La modélisation de sujets avec gensim
      1. a. Présentation
      2. b. Installation
      3. c. Hyperliens
    4. 4. Les autres bibliothèques utiliséesdans ce chapitre
      1. a. Les caractères accentués avec unidecode
      2. b. La progression avec tqdm
      3. c. Hyperliens
  2. Modélisation de sujet avec LDA et LSI
    1. 1. Extraire une liste de mots d’un texte
      1. a. Analyse lexicale ou tokenization
      2. b. Suppression des caractères accentuéset de la ponctuation
      3. c. Suppression des mots vides
      4. d. Une première version du module « corpus »
    2. 2. Sac de mots et TF-IDF
      1. a. Introduction
      2. b. Génération d’un dictionnaire demots
      3. c. Création de "sacs de mots"
      4. d. Le modèle TF-IDF de gensim
      5. e. Hyperliens
    3. 3. Les modèles gensim pour LDA et LSI
      1. a. Génération du modèle
      2. b. Regrouper les documents par sujets
      3. c. Récupération des sujets
  3. Exemples d'application
    1. 1. Depuis l’historique d’un navigateur web
      1. a. Réutilisation de l’analyse de l’historique
      2. b. Adaptation de l’interface d’extraction
      3. c. Écrire un script doté d’uneinterface
    2. 2. Depuis des fichiers textes
      1. a. Utilisation de LibreOffice comme convertisseur
      2. b. TF-IDF depuis un système de fichier
      3. c. Un script et une interface
      4. d. Hyperliens
Inspection des processus du noyau Linux
  1. Introduction
    1. 1. Ptrace et le noyau Linux
      1. a. Exécutables et processus
      2. b. La mémoire vue par un processus
      3. c. Présentation de ptrace
      4. d. Hyperliens
  2. Inspection d’un processus avec Python
    1. 1. La bibliothèque python-ptrace
      1. a. Introduction
      2. b. Installation de python-ptrace
      3. c. Hyperliens
    2. 2. « Tracer » unprocessus
      1. a. Démarrer un nouveau processus
      2. b. Attacher un processus existant
      3. c. Mise en pause et reprise de l’exécution
      4. d. Récupérer l’étatdes registres
      5. e. Reprise d’exécution conditionnelle
      6. f. Hyperliens
    3. 3. La mémoire d’un processus
      1. a. Généralités sur l’organisationde la mémoire pour un processus
      2. b. Les maps mémoire
      3. c. L’interface d’accès à lamémoire de python-ptrace
      4. d. Hyperliens
  3. Exemple d'utilisation
    1. 1. Extraire le texte
      1. a. Objectif du programme
      2. b. La fonction d’extraction des chaînesde caractères
      3. c. Récupérer les maps à partird’un PID
      4. d. Initialisation et appel
    2. 2. Tricher à un jeu vidéo
      1. a. Présentation de l’approche
      2. b. La classe MemState
      3. c. Un script et une interface pour MemState
      4. d. Exemple d’utilisation
      5. e. Hyperliens
Auteur : Mehdi BENNIS

Mehdi BENNIS

Mehdi Bennis est fasciné par les nouvelles technologies depuis son plus jeune âge. Il a commencé par s'intéresser à l'électronique et l'électricité en bricolant des objets par lui-même pour ensuite se focaliser sur les ordinateurs. À 19 ans, il obtient un DUT en réseaux et télécommunication à l'IUT de Colmar. Pour compléter ses compétences réseau, il intègre ensuite l'Université de Technologie de Belfort-Montbéliard (UTBM) en alternance au sein de l'entreprise Bull S.A.S avec laquelle il découvre le langage de programmation Python. Actuellement ingénieur de développement dans la division « Big Data and Security » dans cette même entreprise, il suit de très près les différentes évolutions technologiques.
En savoir plus
Auteur : Yann WEBER

Yann WEBER

Autodidacte et engagé dans le logiciel libre, Yann Weber s'intéresse à la programmation dès son plus jeune âge et reste guidé depuis par une interrogation : pourquoi et comment les ordinateurs fonctionnent ? Cette interrogation le pousse à s'intéresser tout autant aux problématiques bas niveau, de l'écriture de compilateurs au fonctionnement d'un système d'exploitation, à celles de plus haut niveau, comme le traitement de textes structurés ou le « web ». L'obtention d'un DUT en informatique est un premier pas pour lui vers l'utilisation de ses compétences dans un cadre professionnel. Après un poste d'ingénieur au sein du pôle Recherche et Développement de SFR puis au sein de la recherche publique française (CNRS), Yann Weber est aujourd'hui développeur freelance et continue à être fasciné par son outil de travail.
En savoir plus

Nos nouveautés

voir plus