Passer aux informations sur le produit
Entre 0 et 1
Entre 0 et 1
Description
Introduction au livre
Systèmes embarqués, débogage, sécurité des systèmes, optimisation, etc.
Toutes sortes de techniques et 89 savoir-faire dans un seul livre !


Les systèmes informatiques modernes possèdent une architecture multicouche.
Elle a évolué par superposition de couches d'abstraction, et d'innombrables fonctionnalités ont été mises en œuvre dans la pratique.
Ces couches sont conçues de manière si élaborée que vous n'avez pas besoin de comprendre le fonctionnement détaillé de chaque couche si vous souhaitez simplement utiliser ses fonctions.


Mais parfois, il faut lever le voile sur les couches d'abstraction et examiner de plus près l'intérieur du système.
Des exemples typiques incluent la tentative de mise en œuvre de quelque chose d'impossible avec les seuls outils existants, la création de logiciels à hautes performances ou la programmation liée à la sécurité.
Car il arrive que nous ayons besoin d'exploiter le mécanisme d'abstraction lui-même ou la fonctionnalité cachée par l'abstraction.

Avant tout, il est très intéressant de jeter un coup d'œil à la couche d'abstraction et à sa structure sous-jacente.
En explorant chaque composant et la structure que les développeurs ont mise en place jusqu'à présent, nous pouvons découvrir des choses nouvelles que nous ignorions.
De plus, comme le code source de nombreux logiciels est désormais accessible au public, vous pouvez remplacer ou modifier des composants à votre guise.
Ce livre propose une sélection de 89 astuces, ou techniques, nécessaires pour explorer et comprendre le monde de la programmation bas niveau.
  • Vous pouvez consulter un aperçu du contenu du livre.
    Aperçu

indice
Chapitre 1 Introduction

_#01 Lecture d'un binaire inconnu
_#02 Introduction à l'assemblage
_#03 Bonjour, monde à nouveau !

Chapitre 2 Piratage ELF

_#04 Segment de fichier ELF
_#05 Utilisation des variables d'environnement dans ld-linux.so
_#06 Répertoire de recherche des bibliothèques partagées
_#07 Techniques de chargement et d'application lors de l'exécution d'une bibliothèque avec dlopen
_#08 Changement d'implémentation à l'exécution à l'aide d'IFUNC
_#09 Structure de la table de hachage ELF
#10 Comprendre la structure du TLS
#11 Lecture du fichier principal
_#12 Transmission d'informations à un processus à l'aide de vecteurs auxiliaires
#13 La relation entre la liaison statique et l'ASLR
_#14 Lier ultérieurement les bibliothèques partagées dépendantes à l'aide de sold
_#15 Piratage de glibc
_#16 Modification des champs dans les binaires ELF avec patchelf
_#17 Modification des binaires ELF à l'aide de LIEF
_#18 Correctif binaire utilisant PT_NOTE
_#19 Exécution de l'expression DWARF : DWARF I
_#20 Évaluation des formules avec DWARF : DWARF II
_#21 Sortie vers la sortie standard de DWARF : DWARF III

Chapitre 3 Piratage du système d'exploitation

_#22 Fichiers exécutables et comment les exécuter
#23 Utilisation des pages énormes sous Linux
_#24 Sauvegarde et reprise des processus à l'aide de CRIU
#25 Comprendre les bases de procfs/sysfs
#26 Choisir le système de fichiers adapté à vos besoins
#27 Remplacer les fichiers visibles par un processus spécifique
#28 Création directe d'un système de fichiers à l'aide de FUSE
_#29 Zones de mémoire spéciales vsyscall et vDSO
#30 Création d'un hyperviseur à l'aide de KVM
#31 Introduction au piratage du noyau Linux
#32 UniKernel : Exécution d’applications sur le système d’exploitation
_#33 UEFI et démarrage sécurisé
_#34 Génération de fichiers en langage machine avec la chaîne d'outils GNU
#35 #30 Création d'un firmware fonctionnant sous QEMU
#36 Exécuter votre propre firmware personnalisé sur votre Chromebook

Chapitre 4 Piratage de conteneur

#37 Séparation des processus à l'aide des espaces de noms Linux
#38 Gestion des ressources de processus avec cgroups
_#39 Passage au répertoire racine avec chroot/pivot_root
#40 3 façons pour les utilisateurs normaux d'agir comme un root
#41 Utilisation et structure des conteneurs rootless
_#42 Création de différents espaces de noms au sein de l'espace de noms utilisateur
#43 Accès direct aux fichiers d'un conteneur depuis /proc/PID/root

Chapitre 5 Débogueur, piratage de traceur

#44 Conseils gdb
_#45 Débogage de l'enregistrement et de la relecture à l'aide de rr
_#46 Détection des bactéries à faible niveau grâce aux désinfectants : Désinfectant I
_#47 Structure du désinfectant d'adresse : désinfectant II
#48 Introduction à l'analyse des performances Linux
_#49 Suivi de ce qui se passe à l'intérieur du noyau à l'aide de ftrace
_#50 Introduction au traçage à l'aide d'eBPF
_#51 Suivi et modification des commandes d'exécution avec DBI
#52 Acquisition de traces à haute vitesse avec Intel PT

Chapitre 6 : Piratage de sécurité

_#53 Limitation des appels système qu'un processus peut utiliser avec seccomp
#54 Création d'un environnement de test sans privilèges avec Landlock
_#55 ASLR : Mécanisme de sécurité pour l’accès à la mémoire invalide
_#56 ROP : Une technique d’attaque standard qui exploite la corruption de la mémoire
_#57 Intel CET : Mécanisme de sécurité pour ROP
_#58 Détection d'un flux de contrôle incorrect à l'aide de Clang CFI
_#59 Observation des changements dans la pile d'appels
_#60 Aperçu et classification de la purge
_#61 Détection de bugs et de vulnérabilités avec le fuzzing en boîte grise
#62 Implémentation d'un fuzzer avec LibAFL
_#63 Amélioration du fuzzer implémenté avec LibAFL
_#64 Exécution symbolique avec colère
#65 BadUSB : Périphériques USB trompeurs
_#66 Row Hammer : Une technique d’attaque contre les vulnérabilités de la DRAM
_#67 Meltdown et Spectre : Techniques d’attaque pour les vulnérabilités des processeurs

Chapitre 7 : Représentation numérique et traitement des données (astuce)

_#68 Connaissances de base de la représentation des entiers
_#69 Diverses représentations entières
#70 Comprendre la représentation binaire des nombres à virgule flottante
Exception à virgule flottante n° 71
_#72 Modifier la méthode d'arrondi des nombres à virgule flottante
_#73 Lutte contre les optimisations du compilateur pour le code traitant des environnements à virgule flottante
_#74 Approfondir l'analyse de NaN
_#75 Gestion des différences architecturales dans les nombres à virgule flottante
#76 Connaissances de base du jeu d'instructions SIMD
_#77 Écriture de code parallèle SIMD
#78 Diverses techniques utilisant les instructions SIMD

Chapitre 8 : Astuce de traitement du langage

_#79 Stockage des valeurs étiquetées dans des valeurs 64 bits à l'aide de NaN
_#80 Implémentation des coroutines avec ucontext.h
_#81 Optimisation guidée par le profil
_#82 Remplacement de l'allocateur de mémoire à l'aide de LD_PRELOAD
_#83 Comprendre l'ABI et les conventions d'appel
_#84 Appel d'une fonction dont la signature est inconnue jusqu'à l'exécution avec libffi
_#85 Génération de code machine à l'exécution
_#86 Utilisation des fonctions intégrées de GCC/Clang

Chapitre 9 Autres astuces

#87 Glossaire
_#88 Outils nécessaires pour le piratage binaire
Guide de littérature n° 89

Avis de l'éditeur
● Chapitre 1 (Introduction) : Il s’agit de l’introduction de ce livre, expliquant les « piratages binaires » et présentant les piratages de base.
● Chapitre 2 (Piratage ELF) : Présente la structure du format exécutable et lié (ELF), largement utilisé dans Linux, et comment le pirater.
● Chapitre 3 (Piratage du système d'exploitation) : Présente des piratages qui utilisent de manière avancée les fonctions du système d'exploitation, en particulier Linux.
Explorons l'histoire du système d'exploitation que nous utilisons habituellement.
● Chapitre 4 (Piratage de conteneurs) : Présente des astuces sur la technologie des conteneurs.
La technologie des conteneurs est aujourd'hui considérée comme allant de soi, mais elle repose en réalité sur une combinaison de nombreuses astuces binaires.
● Chapitre 5 (Débogueur, Traceur Hack) : Présente comment utiliser et implémenter des débogueurs et des traceurs.

● Chapitre 6 (Piratage de sécurité) : Couvre les technologies liées à la sécurité informatique.
Dans ce domaine, attaquants et défenseurs s'affrontent férocement au quotidien, et nous allons aborder un aspect de cette compétition.
● Chapitre 7 (Astuces de représentation numérique et de traitement des données) : Présente des astuces liées à la représentation numérique et au traitement des données.
Dans les deux domaines, il y a le plaisir de traiter directement avec les ordinateurs.
● Chapitre 8 (Astuces de traitement du langage) : Couvre des sujets relatifs aux compilateurs et aux interpréteurs qui sont difficiles à trouver dans les manuels généraux sur les compilateurs.
● Chapitre 9 (Autres astuces) : Explique les termes, les outils et les références utilisés dans ce livre.
Ce livre servira de guide non seulement lors de la lecture, mais aussi lors de la mise au point de divers hacks binaires.

À toutes les époques, l'esprit de Binary sera immortel !
Nous vous invitons à découvrir le nouvel univers des hacks binaires.


Nous vivons à une époque où les technologies issues de domaines divers, notamment l'IA, le cloud, la sécurité et la robotique, convergent pour créer des systèmes plus complexes que jamais auparavant.
Si l'IA générative révolutionne la programmation, le débogage et favorise l'automatisation, la compréhension des principes fondamentaux du matériel et du logiciel demeure – et devient de plus en plus – cruciale. Une solide maîtrise des technologies de bas niveau est essentielle pour interpréter correctement les résultats de l'IA et réagir aux situations imprévues.
Par conséquent, le monde des nombres binaires et de la programmation bas niveau, que l'on peut considérer comme les racines des systèmes informatiques, conserve toute sa valeur aujourd'hui.

Publié en 2007, « Binary Hacks : 100 Hacking Techniques » a fait sensation dans les domaines de la programmation bas niveau et du piratage binaire, servant de guide précieux à tous ceux qui souhaitent apprendre ces sujets.
Ce livre est une bonne introduction, couvrant un large éventail de sujets, notamment la rétro-ingénierie, l'analyse binaire ELF, le fonctionnement des éditeurs de liens et des chargeurs, la gestion de la mémoire, les stratégies de débogage et l'analyse des vulnérabilités de sécurité.
Cependant, étant donné qu'il est actuellement épuisé et difficile à se procurer, il risque d'être décevant pour ceux qui n'ont pas eu l'occasion de le lire en personne.

Le livre récemment paru, « Between 0 and 1 (titre original : Binary Hacks Rebooted) », comble cette lacune tout en élargissant les horizons de la programmation bas niveau en fournissant des connaissances et des techniques adaptées à l'évolution des temps et de l'environnement.
Tout en minimisant les redondances de contenu avec les ouvrages existants, il couvre un contenu pratique englobant les mécanismes de bas niveau de la virtualisation et des conteneurs, les techniques de sécurité avancées telles que ASLR, PIE et Stack Canary, l'analyse des vulnérabilités, les techniques de débogage et de traçage, ainsi que les environnements multi-architectures et de systèmes d'exploitation divers.

Ce livre à lui seul suffit pour plonger au cœur du monde de la programmation bas niveau et du binaire.
De plus, nous servirons de guide fiable aux ingénieurs et chercheurs en systèmes, logiciels et sécurité qui souhaitent comprendre les principes fondamentaux des technologies de bas niveau et acquérir une compréhension plus claire des systèmes complexes actuels.
Je crois que ce livre restera longtemps pour vous un socle de connaissances inébranlables, même dans un environnement technologique en constante évolution.
Nous vous invitons cordialement une fois de plus à découvrir l'univers en constante évolution des hacks binaires.
- Extrait de la « Note du traducteur »

SPÉCIFICATIONS DES PRODUITS
- Date d'émission : 16 octobre 2025
- Nombre de pages, poids, dimensions : 712 pages | 183 x 235 x 40 mm
- ISBN13 : 9791169214360
- ISBN10 : 1169214363

Vous aimerez peut-être aussi

카테고리