Branch/Call/Jump filter for 32-bit ARM (A32) machine code. Detects BL (Branch with Link) instructions, identified by the 0xEB opcode byte, and rewrites their word-aligned 24-bit relative offset into an absolute word address so repeated calls to the same target produce identical byte sequences.
| Property | Value |
|---|---|
| Category | Compression Algorithms |
| Sub-category | Transform |
| Security status | Not classified |
| Complexity | Intermediate |
| Inventor | Igor Pavlov |
| Year | 2003 |
| Origin | 🇷🇺 Russia |
| Source | algorithms/compression/bcj-arm.js |
Status: not classified — treat as unverified.
No vulnerabilities are recorded for this implementation.
2 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — Empty buffer
| Field | Value |
|---|---|
input |
(empty) |
expected |
(empty) |
Vector 2 — Two consecutive BL instructions (little-endian words, opcode byte 0xEB)
| Field | Value |
|---|---|
input |
000000eb010203eb |
expected |
000000eb020203eb |