Low Level Programming

Machine Code

Machine code is the only language a computer can process directly. True machine code is a stream of raw data, usually binary. This can be converted into decimal, octal, or hexadecimal.

This is a function to calculate the nth Fibonacci number for 32-bit x86, represented in hexadecimal:

8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD989
C14AEBF1 5BC3

Assembly

Assembly is an abstraction of machine code. It is machine code interpreted and represented in a form that is a bit more human-readable than machine code.

Learning

Low Level Learning (YouTube channel)

Useful tools

CyberChef - a swiss army knife for converting data formats, encryption, and other digital data. Developed by UK's intelligence agency, GCHQ.
IDA Freeware -
https://ghidra-sre.org/ - a software reverse engineering suite of tools developed by the NSA and made public
radare2 - a software reverse engineering suite