Skip to content

Commit efe9e78

Browse files
committed
chore: reworked readme
1 parent db5f345 commit efe9e78

2 files changed

Lines changed: 148 additions & 18 deletions

File tree

README.md

Lines changed: 148 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,162 @@
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-
12+
1713
</div>
1814

19-
<hr>
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.
2021

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>
22+
REDasm is released under GPL-3.0 license, and every plugin ships as open source.
2723

2824
<div align="center">
2925

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

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