Skip to content

Commit 006be2f

Browse files
committed
chore: reworked readme
1 parent db5f345 commit 006be2f

2 files changed

Lines changed: 145 additions & 19 deletions

File tree

README.md

Lines changed: 145 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,158 @@
11
<div align="center">
22

3-
![Logo](https://github.com/user-attachments/assets/0dcf459c-7a9d-4093-9d8c-19d44af6e490)
3+
![REDasm open source disassembler logo](https://github.com/user-attachments/assets/0dcf459c-7a9d-4093-9d8c-19d44af6e490)
44

5-
![License](https://img.shields.io/badge/license-GPL--3.0-critical?style=flat-square)
6-
![Version](https://img.shields.io/badge/version-4.0.0-blue?style=flat-square)
7-
[![Website](https://img.shields.io/badge/website-redasm.dev-informational?style=flat-square)](https://redasm.dev)
8-
[![X](https://img.shields.io/badge/@re__dasm-black?style=flat-square&logo=x)](https://twitter.com/re_dasm)
5+
![License GPL-3.0](https://img.shields.io/badge/license-GPL--3.0-critical?style=flat-square)
6+
![Version 4.0.0](https://img.shields.io/badge/version-4.0.0-blue?style=flat-square)
7+
[![Website redasm.dev](https://img.shields.io/badge/website-redasm.dev-informational?style=flat-square)](https://redasm.dev)
8+
[![X @re_dasm](https://img.shields.io/badge/@re__dasm-black?style=flat-square&logo=x)](https://twitter.com/re_dasm)
99

10-
</div>
11-
12-
<div align="center">
13-
1410
[![CI](https://github.com/redasm-dev/workspace/actions/workflows/ci.yml/badge.svg)](https://github.com/redasm-dev/workspace/actions/workflows/ci.yml)
1511
[![Nightly](https://github.com/redasm-dev/workspace/actions/workflows/nightly.yml/badge.svg)](https://github.com/redasm-dev/workspace/actions/workflows/nightly.yml)
16-
17-
</div>
1812

19-
<hr>
13+
</div>
2014

21-
A free and open source disassembler designed for both hobbyists and professional reverse engineers.
22-
Built on a solid, extensible core with a plugin architecture, REDasm supports multiple CPU architectures and executable formats.
23-
24-
<h5 align="center">
25-
Version 4 is currently in active development and introduces a completely redesigned foundation
26-
</h5>
15+
REDasm is a disassembler and binary analysis tool for Windows and Linux,
16+
built for both hobbyists and professional reverse engineers.
17+
It supports various CPU architectures and executable formats
18+
(see [Supported Formats and Architectures](#supported-formats-and-architectures)).
19+
It also offers an interactive listing, control flow graph view, cross-references, string detection and automatic
20+
function recovery.
2721

2822
<div align="center">
2923

30-
![Preview](https://raw.githubusercontent.com/redasm-dev/redasm/master/artwork/Preview_20201204.png)
24+
![REDasm disassembler user interface showing the disassembly listing and graph view](https://github.com/user-attachments/assets/46eb03e4-1791-4216-85d8-82fef8056fc0)
3125

3226
</div>
27+
28+
---
29+
30+
## Table of Contents
31+
32+
- [Design Principles](#design-principles)
33+
- [Features](#features)
34+
- [Supported Formats and Architectures](#supported-formats-and-architectures)
35+
- [Download](#download)
36+
- [Contributing](#contributing)
37+
- [FAQ](#faq)
38+
- [License](#license)
39+
40+
---
41+
42+
## Design Principles
43+
44+
- **Open by default**: GPL core & plugins, public C API. Everything can be read,
45+
modified and rebuilt.
46+
- **Native, self-contained core**: [libredasm](https://github.com/redasm-dev/core) is written in C17 and
47+
doesn't depends on VM, runtime or interpreter.
48+
- **No platform lock-in**: Windows and Linux are what's actively developed and tested;
49+
support for other platforms is open to anyone willing to contribute the changes they need.
50+
- **Extendable**: plugins are shared libraries loaded at runtime. Adding a CPU architecture or a file format
51+
never requires touching the core.
52+
- **First class native GUI**: written with Qt6 and sits entirely above core API. The interactive listing,
53+
graph view and navigation are designed together with the engine, not layered on afterwards.
54+
- **First class support for retro and legacy formats**: DOS, Win16, OS/2 era and console binaries are part of REDasm experience.
55+
This is what makes software preservation, recovery and porting possible for binaries whose source code is long gone.
56+
57+
## Features
58+
59+
- Interactive **disassembly listing** with renaming, commenting and typed data.
60+
- **Control flow graph** view at function granularity, synchronized with the listing.
61+
- **Cross-references** for code and data, with navigable history.
62+
- **RDIL**, a minimal, architecture-neutral, intermediate language used for analysis and lifting.
63+
- Automatic **string detection** (ASCII, UTF-16 and Latin-1 wide strings).
64+
- **Type system** with structs, unions, enums and typedefs, applied directly to the listing.
65+
- Integrated **hex view**.
66+
- **Segments**, imports/exports, symbols, strings and problems panels.
67+
- **Project save/load** so analysis, renames and comments survive between sessions.
68+
- **Patching** and export of analysis data.
69+
- Light and dark **themes**.
70+
71+
## Supported Formats and Architectures
72+
73+
Maturity levels: **S** production ready · **A** highly stable · **B** functional · **C** basic / stub · **D** wip / experimental
74+
75+
### Loaders (executable formats)
76+
77+
| Format | Description | Status |
78+
|---|---|:---:|
79+
| **PE / PE+** | Windows executables and DLLs, 32-bit and 64-bit | **S** |
80+
| **ELF / ELF64** | Linux, BSD and Unix executables and shared objects | **A** |
81+
| **MZ (DOS)** | MS-DOS executables and COM programs | **A** |
82+
| **NE (Win16)** | 16-bit Windows and OS/2 New Executable | **B** |
83+
| **LE / LX (OS/2)** | Linear Executable, OS/2 and DOS extenders (VxD is supported too) | **B** |
84+
| **PSX EXE (PS1)** | PlayStation 1 executables | **B** |
85+
| **PSX BIOS (PS1)** | PlayStation 1 BIOS | **B** |
86+
| **XBE (Xbox)** | Original Xbox executables | **B** |
87+
88+
### Processors (CPU architectures)
89+
90+
| Architecture | Description | Status |
91+
|---|---|:---:|
92+
| **x86 / x86_64** | 16-bit, 32-bit and 64-bit Intel/AMD | **S** |
93+
| **MIPS** | MIPS32, big and little endian, delay slot aware | **A** |
94+
| **ARM / Thumb** | ARM32 and Thumb instruction sets | **B** |
95+
| **ARM64** | AArch64 | **A** |
96+
97+
### Analyzers
98+
99+
| Analyzer | Description | Status |
100+
|---|---|:---:|
101+
| **Visual Basic** | Recover VB5/VB6 events and project information | **A** |
102+
| **MSVC RTTI** | MSVC run-time type information and vtable recovery | **D** |
103+
104+
## Download
105+
106+
Pre-built binaries are published on the [Releases page](https://github.com/redasm-dev/redasm/releases):
107+
108+
- **Linux**: AppImage, runs on any reasonably recent distribution.
109+
- **Windows**: portable build, no installation required.
110+
111+
Nightly builds are produced automatically from `master` and are GPG signed.
112+
They track development closely and **may be unstable**.
113+
114+
## Building from Source
115+
116+
REDasm is split across several repositories: the [workspace](https://github.com/redasm-dev/workspace) repo fetches and builds all of them together.
117+
Requirements, build steps and version pinning are documented in the
118+
[workspace README](https://github.com/redasm-dev/workspace).
119+
120+
## Contributing
121+
122+
Bug reports, feature requests and pull requests are welcome.
123+
All reports are now centralized at [in a dedicated repo](https://github.com/redasm-dev/bugs), so report there regardless of which component the problem
124+
belongs to, whether it's the GUI, the core or a plugin.
125+
126+
## FAQ
127+
128+
**Is REDasm free?**
129+
Yes. The whole project is GPL-3.0, including every bundled plugin.
130+
You can use it, study it, modify it
131+
and redistribute it under the terms of the license.
132+
133+
**Does REDasm have a decompiler?**
134+
Not yet. The foundations like RDIL, function boundaries, basic blocks, the type system are already in
135+
place, but decompilation is a long-term goal, some important features are still missing.
136+
137+
**Which platforms are supported?**
138+
Windows and Linux.
139+
Those are the platforms that can be actively tested, so they are the ones that get support.
140+
Nothing in the codebase is tied to them, though, if you need REDasm on another platform,
141+
open an issue or send the changes required, and support can be extended from there.
142+
143+
**Can I script REDasm?**
144+
A Python plugin API is on the roadmap.
145+
Today, extensions are written in C.
146+
147+
**Can I run REDasm headless as library?**
148+
Yes, this repo contains only the GUI, it's still the main repo for historical reasons.
149+
REDasm engine lives in [core](https://github.com/redasm-dev/core) repo and contains what's needed
150+
to analyze binaries and load plugins.
151+
152+
**What happened to version 3?**
153+
Retired because of technical debt and engine limitations, version 4 is a complete plain C rewrite
154+
with a more powerful and fast analysis engine.
155+
156+
## License
157+
158+
REDasm is released under the [GNU General Public License v3.0](LICENSE).

artwork/Preview_20201204.png

-670 KB
Binary file not shown.

0 commit comments

Comments
 (0)