{"id":24757628,"url":"https://github.com/greycloudss/x86disassembler","last_synced_at":"2025-03-23T09:11:07.448Z","repository":{"id":273932661,"uuid":"921352791","full_name":"greycloudss/x86Disassembler","owner":"greycloudss","description":"An x86 disassembler written in C#","archived":false,"fork":false,"pushed_at":"2025-01-23T19:59:20.000Z","size":0,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T20:31:44.592Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/greycloudss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-23T19:47:14.000Z","updated_at":"2025-01-23T20:05:17.000Z","dependencies_parsed_at":"2025-01-23T20:42:20.888Z","dependency_job_id":null,"html_url":"https://github.com/greycloudss/x86Disassembler","commit_stats":null,"previous_names":["greycloudss/x86disassembler"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2Fx86Disassembler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2Fx86Disassembler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2Fx86Disassembler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2Fx86Disassembler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/greycloudss","download_url":"https://codeload.github.com/greycloudss/x86Disassembler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245078182,"owners_count":20557281,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-28T15:34:03.648Z","updated_at":"2025-03-23T09:11:07.423Z","avatar_url":"https://github.com/greycloudss.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Disassembler\n\n## Overview\n\nThe disassembler is a lightweight, C#-based disassembly application designed to facilitate the analysis and decoding of binary executable files. Built with modularity and extensibility in mind, this project demonstrates key concepts in x86 disassembly with a focus on clarity and performance.\n\n## Features\n\n- **Binary Parsing**: Analyze and parse binary executable files to extract meaningful instructions.\n- **Instruction Decoding**: Supports decoding x86 16-bit instructions, including MOD-REG-R/M bytes.\n- **Dynamic Operand Resolution**: Accurately identifies registers, memory addresses, and immediate values.\n- **Error Handling**: Robust error handling for incomplete or malformed binary files.\n- **User-Friendly Output**: Presents decoded instructions in an easily readable format.\n- **Flexible Architecture**: Modular design for easy integration and future extension.\n- **Debugging Information**: Outputs detailed information for each instruction, including MOD, REG, and R/M values.\n\n## Getting Started\n\n### Prerequisites\n\n- **.NET 6.0 or newer**: Ensure your environment supports the latest C# features.\n- **Visual Studio or VS Code**: Recommended for building and debugging the project.\n- **Binary File**: A `.com` or `.exe` file to analyze.\n\n## Usage\n\n1. Compile and launch the application using your preferred IDE or command line.\n2. Provide the path to the binary file as an argument when running the program.\n3. The application will:\n   - Parse the binary file.\n   - Decode each instruction.\n   - Output the disassembled instructions along with additional details like MOD, REG, and R/M values.\n\n## Architecture\n\nThe disassembler employs a modular architecture to streamline the process of binary analysis and disassembly:\n\n- **Binary Reader**:\n  - Reads the binary file and stores its content for processing.\n  - Ensures the integrity of the binary data before decoding.\n\n- **Instruction Decoder**:\n  - Parses x86 16-bit instructions, including MOD-REG-R/M bytes.\n  - Decodes operands, including registers, memory addresses, and immediate values.\n  - Handles errors gracefully for incomplete instructions or unsupported formats.\n\n- **Control Unit**:\n  - Manages the flow between binary reading, instruction decoding, and output generation.\n  - Implements logic for addressing modes, operand resolution, and instruction categorization.\n\n- **Output Formatter**:\n  - Formats and outputs disassembled instructions in a clear, readable format.\n  - Includes optional debugging details such as MOD, REG, and R/M values.\n\n## Contribution\n\nContributions are welcome! If you’d like to report a bug or request a feature, feel free to open an issue or submit a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreycloudss%2Fx86disassembler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreycloudss%2Fx86disassembler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreycloudss%2Fx86disassembler/lists"}