Boutisme et ordre des octets
Comprenez comment les valeurs multioctets sont organisées en mémoire et dans les fichiers, pourquoi le boutisme déroute les débutants et comment lire correctement les octets bruts.
Boutisme et ordre des octets est une leçon Reverse Engineering & Binary Analysis Basics gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Reverse Engineering & Binary Analysis Basics, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Reverse Engineering & Binary Analysis Basics comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Bytes Have an Order
You learned how data is represented in binaries. But a number like 0x12345678 occupies four bytes, and the CPU must decide which byte comes first in memory.
That decision is called endianness.
Little-Endian
In little-endian, the least significant byte is stored first (lowest address).
The value 0x12345678 is stored as the bytes 78 56 34 12. x86, x64, and most ARM systems use little-endian.
Value: 0x12345678
Memory: 78 56 34 12 (low -> high address)Big-Endian
In big-endian, the most significant byte is stored first.
The same value 0x12345678 is stored as 12 34 56 78. Network protocols and some older RISC chips use big-endian, so it is also called network byte order.
Value: 0x12345678
Memory: 12 34 56 78 (low -> high address)Why It Matters in RE
When you see raw bytes in a hex editor, you must apply the correct endianness to recover the real value. Misreading endianness turns a valid pointer into garbage.
- Reading addresses
- Parsing file headers
- Interpreting struct fields
Reading a 4-Byte Integer
Suppose a hex dump shows the bytes 2A 00 00 00. On a little-endian machine that is the integer 42, not 0x2A000000.
Always know the platform before interpreting.
Bytes: 2A 00 00 00
LE int: 0x0000002A = 42
BE int: 0x2A000000 = 704643072Seeing It in Code
This C snippet inspects the running machine's endianness by aliasing an int through a byte pointer.
#include <stdio.h>
int main(void) {
unsigned int x = 0x12345678;
unsigned char *p = (unsigned char *)&x;
printf('First byte: %02X\n', p[0]);
return 0;
}Network Byte Order
Protocols standardize on big-endian so machines of different architectures agree. C provides conversion helpers like htons and ntohl.
When reversing network code, watch for these calls; they reveal which fields are multi-byte.
uint16_t port = htons(8080); // host -> network orderByte Swapping
Converting between endian formats means reversing the byte order. Tools and disassemblers often offer a one-click swap, but understanding the mechanism is essential.
uint32_t swap32(uint32_t v) {
return ((v & 0xFF) << 24) |
((v & 0xFF00) << 8) |
((v >> 8) & 0xFF00) |
((v >> 24) & 0xFF);
}Endianness in File Formats
Many file formats declare their endianness in a magic field. ELF stores EI_DATA in its header; TIFF starts with II (Intel/little) or MM (Motorola/big).
Reading this field first tells you how to parse the rest.
Common Pitfalls
Beginners often:
- Read bytes left-to-right and forget to reverse for little-endian
- Assume the target matches their own machine
- Mix endianness mid-struct
When a pointer looks absurd, suspect endianness first.
Tools That Show Endianness
Most analysis tools let you toggle interpretation. In a hex editor you can flip between little- and big-endian data inspectors; disassemblers display the architecture's native order automatically.
When carving raw structures, always confirm the tool's current setting matches the target.
xxd -l 4 sample.bin
# 00000000: 2a00 0000 -> LE int = 42Quick Check
How is the value 0x12345678 stored on a little-endian machine?
Recap
Endianness decides byte order for multi-byte values:
- Little-endian: least significant byte first (x86/x64)
- Big-endian: most significant first (network order)
- Check the format's endianness field before parsing
Mastering this stops the most common 'garbage value' confusion in binary analysis.
Questions Fréquemment Posées
La leçon « Boutisme et ordre des octets » est-elle gratuite ?
Oui — le texte complet de « Boutisme et ordre des octets » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Reverse Engineering & Binary Analysis Basics, passe à CoddyKit PRO. Le cours Reverse Engineering & Binary Analysis Basics comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Boutisme et ordre des octets » ?
Comprenez comment les valeurs multioctets sont organisées en mémoire et dans les fichiers, pourquoi le boutisme déroute les débutants et comment lire correctement les octets bruts. Tu pratiques Reverse Engineering & Binary Analysis Basics avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Reverse Engineering & Binary Analysis Basics ?
Aucune expérience préalable n'est requise. Reverse Engineering & Binary Analysis Basics sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Boutisme et ordre des octets » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Reverse Engineering & Binary Analysis Basics ?
Oui. Chaque leçon Reverse Engineering & Binary Analysis Basics inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Panorama des architectures de CPU
- Représentation des données dans les fichiers binaires
- Formats courants de fichiers binaires
- Boutisme et ordre des octets