REDasm (@re_dasm) header
REDasm (@re_dasm) profile picture

The Open Source Disassembler Discord: https://teapaw.org/t.co/JL9cdJpw5L Fediverse: https://teapaw.org/t.co/L7WdLkwnzq

Earth
Joined November 2020
Photo by REDasm (@re_dasm)Photo by REDasm (@re_dasm)Photo by REDasm (@re_dasm)Photo by REDasm (@re_dasm)Photo by REDasm (@re_dasm)Photo by REDasm (@re_dasm)Photo by REDasm (@re_dasm)Photo by REDasm (@re_dasm)Photo by REDasm (@re_dasm)Photo by REDasm (@re_dasm)
Pinned Tweet
🧵1/4 4.0 BETA3 is out! 🎉 This release is quite big and brings massive rendering speed improvements, expanded OS support, along with new processor and loader plugins. Highlights and Download below. 🔽
1
3
10
2,798
GameBoy loader and Sharp SM83 processor plugins! SM83 decoding is simple, but because of gameboy addressing, the hard part was to check address vs literal for immediates. It required tracing instructions and following registers, same for checking which interrupts are enabled.
1
2
35
Listing shows a "hello world" homebrew ROM which provides source code too, so I can check instruction per instruction if REDasm gives coherent results. Loader is able to parse .sym files, if this file is found, it gives a richer listing (like in screenshot).
1
13
Now that the baseline works, the next step is to handle memory banking and fixup everything with regression tests. #redasm #gameboy
6
Nightly version now runs on macOS (x86_64, arm64 and universal) 🍏 The CI pipeline is now configured to compile, run, test and package it like Windows and Linux targets.
3
160
Implemented a dedicated API set for callgraphs. Nodes, edges and the radial layout are computed entirely from the C core and then rendered in a custom made widget which reads RDGraph's layout. Graphs are fully interactive.
1
3
23
1,068
🧵1/3 I spent two days stress testing the engine and the API interface with Dex & Dalvik. Even though there are already specialized tools out there for Android reversing, these two guys have some unique properties compared to the canonical architectures. 👇(Continues)
1
1
41
2,029
🧵2/3 Dalvik is a bytecode based VM and it's designed to run Dex files. Testing them exposed limitations in REDasm's API design where "Processor" and "Loader" plugins are isolated and cannot share data directly (there are ways to notify data though, eg. interrupts in x86).
1
1
132
🧵3/3 The Dex loader is now expressive enough to map symbols, names, functions, etc. where Dalvik expects them. This capability ultimately led to a much better type system. #reverseengineering #binaryanalysis #redasm
3
104
If you are a Windows and Scoop user, the official REDasm bucket is now available.
79
🧵3/4 Highlights: GUI - Added Hex View alongside Listing & Graph views - Improved Graph and Listing rendering speed CORE - Initial support for calling conventions - Callback/arg resolution via KB - Optimized SQLite schema OS SUPPORT - Builds on macOS, FreeBSD and HaikuOS
1
102
🧵4/4 PROCESSORS - Zilog Z80 - MOS6502 LOADERS - ZX Spectrum (SNA, Z80, TAP) - NES (NROM only) ANALYZERS - MSVC exception handling types (EXPERIMENTAL) #redasm
93
Running on Haiku OS! The porting process was easy: just some preprocessor additions to detect it.
1
153
Zilog 80 processor plugin written from scratch. Listing shows the first part of a compiled binary with every possible instruction. DDCB and FDCB opcodes are still missing but I'm working on it Also, this reference is quite nice: z80.info/decoding.htm #z80
1
3
182
REDasm 4.0 BETA2 is out Highlights: - Full editing: patch instructions, make code/data, undefine, reanalyze - x86 encoder + assembler - Rendering updates instantly, no internal rebuilds - MSVC RTTI analyzer (WIP) github.com/redasm-dev/redasm… #reverseengineering #binaryanalysis
1
3
31
2,330
AUR packages are now updated for Arch based distros: - beta1: aur.archlinux.org/packages/r… - git version: aur.archlinux.org/packages/r…
1
153
🧵1/3 Instruction encoding implementation proceeds smoothly, x86 processor plugin is selected as testbed for designing APIs. These are the preliminary results from the encoder/decoder tester dialog:
2
1
10
634
🧵2/3 The core library now implements a lexer which resolves the string parsing and tokenization problem in a standard way. Zydis already provides an encoder, but it expects a structured data instead of a string, good for testing already opinionated backends against REDasm.
1
2
155
🧵3/3 Looking at API side, a new (optional) callback named "encode" is added to RDProcessorPlugin. Currently I'm testing if this design is generic enough and gives a good plugin developer's experience. The next step is to allow patching directly from GUI!
2
85