All Projects β†’ AYIDouble β†’ x86-Assembly-Reverse-Engineering

AYIDouble / x86-Assembly-Reverse-Engineering

Licence: MIT license
πŸ›  Knowledge about the topic of x86 assembly & disassembly πŸ› 

Programming Languages

assembly
5116 projects
shell
77523 projects

Projects that are alternatives of or similar to x86-Assembly-Reverse-Engineering

The holy book of x86
A simple guide to x86 architecture, assembly, memory management, paging, segmentation, SMM, BIOS....
Stars: ✭ 577 (+2037.04%)
Mutual labels:  x86-64, intel, x86
peekaboo
An standalone execution trace library built on DynamoRIO.
Stars: ✭ 17 (-37.04%)
Mutual labels:  x86-64, x86, x86-32
Asm Cli
Interactive shell of assembly language(X86/X64) based on unicorn and keystone
Stars: ✭ 211 (+681.48%)
Mutual labels:  x86-64, intel, x86
fadec
A fast and lightweight decoder for x86 and x86-64 and encoder for x86-64.
Stars: ✭ 44 (+62.96%)
Mutual labels:  x86-64, x86, x86-32
Reloaded.Assembler
Minimal .NET wrapper around the simple, easy to use Flat Assembler written by Tomasz Grysztar. Supports both x64 and x86 development.
Stars: ✭ 17 (-37.04%)
Mutual labels:  x86-64, x86, x86-x64
Zydis
Fast and lightweight x86/x86-64 disassembler and code generation library
Stars: ✭ 2,168 (+7929.63%)
Mutual labels:  x86-64, intel, x86
bmod
bmod parses binaries for modification/patching and disassembles machine code sections.
Stars: ✭ 12 (-55.56%)
Mutual labels:  x86-64, x86, x86-32
CodeDeobfuscator
Code Deobfuscator
Stars: ✭ 45 (+66.67%)
Mutual labels:  x86-64, x86
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ β€’ mirror of https://gitlab.com/tkchia/biefircate β€’ developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (+74.07%)
Mutual labels:  x86-64, x86-32
knowledge
Everything I know. My knowledge wiki. My notes (mostly for fast.ai). Document everything. Brain dump.
Stars: ✭ 118 (+337.04%)
Mutual labels:  research, knowledge
pinktrace
Pink's Tracing Library
Stars: ✭ 20 (-25.93%)
Mutual labels:  x86-64, x86
Assembly-Syntax-Definition
This is the greatest syntax definition of All Time
Stars: ✭ 23 (-14.81%)
Mutual labels:  x86-64, x86
angular-PubSub
Angular 1.x implementation of the Publish–Subscribe pattern.
Stars: ✭ 32 (+18.52%)
Mutual labels:  register, topic
profiler-api
The portable version of JetBrains profiler API for .NET Framework / .NET Core / .NET / .NET Standard / Mono
Stars: ✭ 21 (-22.22%)
Mutual labels:  x86-64, x86
Inflame
User-mode Windows DLL injector written in Assembly language (FASM syntax) with WinAPI.
Stars: ✭ 63 (+133.33%)
Mutual labels:  x86-64, x86
RenHook
An open-source x86 / x86-64 hooking library for Windows.
Stars: ✭ 80 (+196.3%)
Mutual labels:  x86-64, x86
Capstone.NET
.NET Core and .NET Framework binding for the Capstone Disassembly Framework
Stars: ✭ 108 (+300%)
Mutual labels:  x86-64, x86
alpine-php-fpm
Lightweight and optimised PHP-FPM (PHP 7.4, 8.0, 8.1) Docker images with essential extensions on top of latest Alpine Linux.
Stars: ✭ 53 (+96.3%)
Mutual labels:  x86-64, x86
georgios
Hobby Operating System
Stars: ✭ 19 (-29.63%)
Mutual labels:  x86, x86-32
PBD
πŸ–¨οΈπŸž Printf Based Debugger, a user-friendly C debugger
Stars: ✭ 52 (+92.59%)
Mutual labels:  x86-64, x86

πŸ›  x86 Assembly Reverse Engineering πŸ› 

This is a structured README for x86 assembly, it is written in the easiest language possible with real world examples. πŸ““

βš™οΈ Basics βš™οΈ

Intel Type Bits Name
- 8 Bit BYTE
8086 16 Bit WORD
i386 32 Bit DWORD
x86 64 Bit QWORD

Meanings:

dword = DWORD = (double-word)
qword = QWORD = (quad-word)

NOTE: πŸ“

On 32 Bit ARM CPUs a WORD is 32 Bit.

πŸ”§ x86 Registers πŸ”§

(Older Text from the University of Virginia Computer Science (2006), one of the best Guides for x86 Assembly)

Modern (i.e 386 and beyond) x86 processors have eight 32-bit general purpose registers, as depicted in Figure 1. The register names are mostly historical. For example, EAX used to be called the accumulator since it was used by a number of arithmetic operations, and ECX was known as the counter since it was used to hold a loop index. Whereas most of the registers have lost their special purposes in the modern instruction set, by convention, two are reserved for special purposes β€” the stack pointer (ESP) and the base pointer (EBP).

For the EAX, EBX, ECX, and EDX registers, subsections may be used. For example, the least significant 2 bytes of EAX can be treated as a 16-bit register called AX. The least significant byte of AX can be used as a single 8-bit register called AL, while the most significant byte of AX can be used as a single 8-bit register called AH. These names refer to the same physical register. When a two-byte quantity is placed into DX, the update affects the value of DH, DL, and EDX. These sub-registers are mainly hold-overs from older, 16-bit versions of the instruction set. However, they are sometimes convenient when dealing with data that are smaller than 32-bits (e.g. 1-byte ASCII characters).

When referring to registers in assembly language, the names are not case-sensitive. For example, the names EAX and eax refer to the same register.

x86 assembly Registers

In x86 registers have an 'e' in front of their name.
Example: eax, ebx, ecx, edx, ebp

Additional Info:
In x64 you have a 'r' instead.
Example: rax, rbx, rcx, rdx, rbp
You also have double-precision floating point going from xmm0 to xmm15.

🚩 EFLAGS 🚩

x86 assembly EFLAGS Registers

πŸ“ Cheatsheet x86 Assembly πŸ“

Full Cheatsheet x86 Assembly, 20 Pages.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].