To set up a virtual ARM environment using Qemu, introduce ARM assembly, reverse ARM binaries, and demonstrate how to write basic exploits for ARM using the trafman challenge of rwthCTF as an example. Virtual ARM Environment To start we need an environment capable of running ARM binaries. Since I didn't have an ARM machine I created a virtual ARM environment using Qemu. Qemu is similar to VirtualBox or VMWare, except that it can support multiple architectures. This allows you the emulate ARM on your default x86 or x64 machine. First we need to know which ARM architecture to pick. Most Linux distributions support two architectures: armel and armhf. Armel supports the ARMv4 instruction set and emulates floating point operations in software, while armhf supports the ARMv7 instruction set and uses hardware floating point operations. At least that's the case for Debian, Ubuntu uses the term "armel" differently [Ubuntu FAQ, ARM FAQ].
FEATURES
EXPLORE BY TAGS
SIMILAR TOOLS
An open-source dynamic analysis framework that intercepts and monitors API calls in Android applications using the Android Substrate framework.
Falcon Sandbox is a malware analysis framework that provides in-depth static and dynamic analysis of files, offering hybrid analysis, behavior indicators, and integrations with various security tools.
CAPA is a static analysis tool that detects and reports capabilities in executable files across multiple formats, mapping findings to MITRE ATT&CK tactics and techniques.
A .NET assembly debugger and editor that enables reverse engineering and dynamic analysis of compiled .NET applications without source code access.
A sandbox for quickly sandboxing known or unknown families of Android Malware
A program to manage yara ruleset in a database with support for different databases and configuration options.
Valkyrie is a sophisticated file verdict system that enhances malware detection through behavioral analysis and extensive file feature examination.
An open source machine code decompiler that converts binary executables into readable C source code across multiple architectures and file formats.