- Linux Foundation Referenced Specifications
- CyberChef A simple, intuitive web app for analysing and decoding data without having to deal with complex tools or programming languages. CyberChef encourages both technical and non-technical people to explore data formats, encryption and compression.
- One hot is an encoding such that only one bit is one, all the other are zero
- The secret life of NaN
- Float toy
Caret notation is a notation for unprintable control characters in ASCII encoding. The notation consists of a caret (^) followed by a capital letter.
American Standard Code for Information Interchange, it's a 7bits code.
ASCII reserves the first 32 codes (numbers 0–31 decimal) for control characters: codes originally intended not to represent printable information, but rather to control devices (such as printers) that make use of ASCII, or to provide meta-information about data streams such as those stored on magnetic tape.
Unicode is not an encoding but is a classification of characters: though each one is identified by a number, this number is not used directly in its representation: 'UTF-8' is particular representation where for compatibility purpose the ASCII set is maintained as is.
- Hacking GitHub with Unicode's dotless 'i'
For testing purpose use
“Iñtërnâtiônàlizætiøn” looks like E2 80 9C 49 C3 B1 74 C3 AB 72 6E C3 A2 74 69 C3 B4 6E C3 A0 6C 69 7A C3 A6 74 69 C3 B8 6E E2 80 9D in UTF-8 in hex.
An implementation of
strlen() is the following:
# original from <http://canonical.org/~kragen/strlen-utf8.html> .global strlen_utf8 strlen_utf8: push %esi cld mov 8(%esp), %esi xor %ecx, %ecx loopa: dec %ecx loopb: lodsb shl $1, %al js loopa # x1xxxxxx jc loopb # 1xxxxxxx jnz loopa # 00xxxxxx mov %ecx, %eax not %eax pop %esi ret
Compression related (Zip, GZip)
The most common compression formats are all using the
DEFLATE algorithm defined in
RFC 1951, in particular
ZLIB (defined in
RFC 1950 and
GZip (defined in
RFC 1952); the
Zip format instead is defined
- Dissecting the GZIP format
- Zip Files All The Way Down
- The structure of a PKZip file
- A better zip bomb
- How to make compressed file quines, step by step
- YouFLATE An interactive tool that allows you to DEFLATE (compress) data using your own length-distance pairs, not merely the most efficient ones as is default with DEFLATE.
- infgen Deflate disassember to convert a deflate, zlib, or gzip stream into a readable form.
- PNG Merge this is a Poc (Proof of Concept) to create a PNG file that contains different images somehow entangled together.
- Let's write a PDF file speakerdeck
- PDF file format basic structure
ELF file is identified by four magic bytes
\x7FELF; it has an header
that gives general information about the types of
ELF file that can be
- Relocatable file
- Shared objects/library
the architecture and the entry point.
It defines a series of sections and segments (program header and section header), respectively describing the execution and the linking for the file.
The kernel loads in memory only the
PT_LOAD type and if is defined an interpreter (in
PT_INTERP) call the interpreter to do its job (i.e. resolve the dynamic sections).
This is a prime that is also an
- Cheating the ELF
- LIEF The purpose of this project is to provide a cross platform library which can parse, modify and abstract ELF, PE and MachO formats
- Why doesn't
stripremove section headers from ELF executables?
- 0pack A novel technique to hide code from debuggers
- Analyzing ELF Binaries with Malformed Headers Part 1 - Emulating Tiny Programs
Relocations are the entities used by the linking process, dynamic or not
- Anatomy of a program in memory POST
- Cheating ELF PDF
- Dissection of an ELF file
- Reversing an ELF from the ground up
- Source code of binfmt_elf
- How programs get run: ELF binaries
- A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux
- Executable and Linkable Format
- Writeup about reversing ELF with forged sections/segments
- Executable and Linkable Format 101 - Part 1 Sections and Segments
- Executable and Linkable Format 101. Part 2: Symbols
- Shared libraries and execute permissions
- Custom ELF program headers—what, why and how
- Introduction to the ELF Format
- ELF Header
- Understanding Program Headers
- Section Header Table
- Section Types and Special Sections
- Understanding C start up .init_array and .fini_array sections