xed

Branch: main Commit: 95ca7183 Generated: 2026-01-10 23:01:15

Summary

▼

xed

Overview

The xed project is a comprehensive Intel X86 Encoder Decoder (XED) toolset designed to decode and encode x86 instructions. Its primary purpose is to provide a robust and accurate framework for disassembling and reassembling x86 machine code, which is essential for reverse engineering, debugging, and developing software that interacts with x86 processors. The project addresses the challenge of accurately interpreting and manipulating x86 machine code, which is critical for applications such as software compatibility, security analysis, and compiler optimization. Key capabilities include the ability to decode and encode x86 instructions, as well as profiling and checking functions. The project leverages a monolithic architecture, with a focus on building automation, documentation, and legal compliance. The main technologies used include Python, C, and C++, with a strong emphasis on static analysis and symbolic disassembly. The project's architecture is designed to be modular, with separate modules for encoding, decoding, and other functionalities. The target users are developers, reverse engineers, and security analysts who require a high-performance, accurate, and reliable tool for working with x86 machine code. The major components work together to provide a comprehensive solution for disassembling and encoding x86 instructions, with each component contributing to the overall system's functionality and performance.

Quick Start

To build the XED project, navigate to the root directory and run python setup.py build_ext --inplace.

Architecture

Pattern: Monolithic

Entry Points

  • tests/RUN.TESTS: Runs tests for the XED project using various test directories and configurations.

Extension Points

  • location: include/private/xed-chip-features-private.h
  • how: Extensions can be made by adding new functions and macros defined in this file.

File Reference

File Purpose
.gitignore Defines files and directories to be ignored by Git.
CONTRIBUTING.md Provides guidelines for contributing to the XED project, including license information and sign-off.
LICENSE Specifies the Apache License 2.0 for the XED project.
README.md Provides instructions for building and using the XED project, including source build and building examples.
docsrc/external-requirements.txt Specifies external dependencies and their usage in the project.
docsrc/xed-build.txt This file contains the main documentation for Intel XED build process, including build guides, installation instructions, and system requirements.
include/private/xed-chip-features-private.h Defines private functions for chip features testing and checking.
include/private/xed-chip-modes-override.h Defines functions for overriding chip modes and features.
include/private/xed-chip-modes.h Defines functions for setting chip modes and features.
include/private/xed-decode-profile.h Defines macros and variables for profiling XED (X86 Decoder) operations, including iteration counts and node frequency.
include/private/xed-decode-supp.h Contains static inline functions for checking register values and setting error flags in decoded instructions.
include/private/xed-decoded-inst-private.h Contains static inline functions for decoded instruction management, including error handling and operand length calculation.
include/private/xed-disas-private.h Contains functions for symbolic disassembly, including a function to retrieve symbolic disassembly information.
include/private/xed-enc2-check.h Contains functions for checking encoding arguments, including functions for invalid register checks.
include/private/xed-encode-isa-functions.h Contains functions for encoding instructions, including functions for nonterminal instructions.
include/private/xed-encode-private.h Defines private functions and constants used in the xed-encode module, including encoding functions and constants.
include/private/xed-encode-tables.h Defines tables and constants used in the xed-encode module, including encoding groups and patterns.
include/private/xed-encode-types.h Defines types and constants used in the xed-encode module, including encoding function pointers and structures.
include/private/xed-flags-private.h Defines flags and complex flags used in the xed-flags module, including complex flag structures and functions.
include/private/xed-ild-extension.h Defines the xed-ild-extension module, which is an extension to the instruction length decoder.
mfile.py A script for managing the build process of the XED project, including compiling and linking.
misc/API.NAMES.txt This file contains a list of all the function and class names exported by the XED (eXtended Disassembly Engine) library.
misc/engineering-notes.txt Contains detailed notes on the project, particularly on the Intel X86 Encoder Decoder.
misc/legal-header.txt Provides legal information and license details for the project.
tests/RUN.TESTS Runs tests for the XED project using various test directories and configurations.

Repository Info

  • URL: https://github.com/intelxed/xed.git
  • Languages: Python: 59.4%, C: 28.1%, C/C++ Header: 11.3%, C++: 1.2%, Assembly: 0.0%
  • Config Files: pyext/setup.py

Interactive Diagram

▼
Use the controls within the diagram to expand/collapse folders and export the visualization.

File Selection (25 selected)

▼

Triage method: heuristic | Total scanned: 1000

Selected Files (25)

  • tests/RUN.TESTS
  • .gitignore
  • CONTRIBUTING.md
  • LICENSE
  • README.md
  • mfile.py
  • docsrc/external-requirements.txt
  • docsrc/xed-build.txt
  • misc/API.NAMES.txt
  • misc/engineering-notes.txt
  • misc/legal-header.txt
  • include/private/xed-chip-features-private.h
  • include/private/xed-chip-modes-override.h
  • include/private/xed-chip-modes.h
  • include/private/xed-decode-profile.h
  • include/private/xed-decode-supp.h
  • include/private/xed-decoded-inst-private.h
  • include/private/xed-disas-private.h
  • include/private/xed-enc2-check.h
  • include/private/xed-encode-isa-functions.h
  • include/private/xed-encode-private.h
  • include/private/xed-encode-tables.h
  • include/private/xed-encode-types.h
  • include/private/xed-flags-private.h
  • include/private/xed-ild-extension.h

Optional Files (14)

  • include/private/xed-ild-private.h
  • include/private/xed-inst-defs.h
  • include/private/xed-inst-private.h
  • include/private/xed-internal-header-2.h
  • include/private/xed-internal-header.h
  • include/private/xed-map-info.h
  • include/private/xed-operand-type-info.h
  • include/private/xed-portability-private.h
  • include/private/xed-tables-decl.h
  • include/private/xed-tables-extern.h
  • include/private/xed-tables.h
  • include/private/xed-util-private.h
  • include/private/xed3-dynamic-decode.h
  • include/private/xed3-static-decode.h

Repository Metadata

▼

File Summaries (25 files)

▼

Each file has an individual summary artifact in the cache's files/ directory for traceability.