0Pricing
Reverse Engineering & Binary Analysis Basics · Pelajaran

Endianness dan Urutan Bita

Pahami cara nilai multibita ditata dalam memori dan file, alasan endianness sering membingungkan pemula, serta cara membaca bita mentah dengan benar.

Endianness dan Urutan Bita adalah pelajaran Reverse Engineering & Binary Analysis Basics gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Reverse Engineering & Binary Analysis Basics, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Reverse Engineering & Binary Analysis Basics mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

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 = 704643072

Seeing 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 order

Byte 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 = 42

Quick 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.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Endianness dan Urutan Bita” gratis?

Ya — teks lengkap “Endianness dan Urutan Bita” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Reverse Engineering & Binary Analysis Basics, upgrade ke CoddyKit PRO. Kursus Reverse Engineering & Binary Analysis Basics mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Endianness dan Urutan Bita”?

Pahami cara nilai multibita ditata dalam memori dan file, alasan endianness sering membingungkan pemula, serta cara membaca bita mentah dengan benar. Kamu berlatih Reverse Engineering & Binary Analysis Basics dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Reverse Engineering & Binary Analysis Basics?

Tidak diperlukan pengalaman sebelumnya. Reverse Engineering & Binary Analysis Basics di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Endianness dan Urutan Bita” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Reverse Engineering & Binary Analysis Basics ini?

Ya. Setiap pelajaran Reverse Engineering & Binary Analysis Basics menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Ikhtisar Arsitektur CPU
  2. Representasi Data dalam Biner
  3. Format Berkas Biner Umum
  4. Endianness dan Urutan Bita
← Kembali ke Reverse Engineering & Binary Analysis Basics