From 6b9727763d7212e4002da203aeb61bedbdcdcd93 Mon Sep 17 00:00:00 2001 From: Abhi <85984486+AbhiTheModder@users.noreply.github.com> Date: Tue, 27 Jan 2026 22:34:06 +0530 Subject: [PATCH] minor enhancements --- .gitlab-ci.yml | 32 ------------ README.md | 129 +------------------------------------------------ 2 files changed, 1 insertion(+), 160 deletions(-) delete mode 100644 .gitlab-ci.yml mode change 100644 => 120000 README.md diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index ef42f9a..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,32 +0,0 @@ -# This file is a template, and might need editing before it works on your project. -# To contribute improvements to CI/CD templates, please follow the Development guide at: -# https://docs.gitlab.com/ee/development/cicd/templates.html -# This specific template is located at: -# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Rust.gitlab-ci.yml - -# Official language image. Look for the different tagged releases at: -# https://hub.docker.com/r/library/rust/tags/ -image: "rust:latest" - -# Optional: Pick zero or more services to be used on all builds. -# Only needed when using a docker container to run your tests in. -# Check out: http://docs.gitlab.com/ee/ci/docker/using_docker_images.html#what-is-a-service -# services: -# - mysql:latest -# - redis:latest -# - postgres:latest - -# Optional: Install a C compiler, cmake and git into the container. -# You will often need this when you (or any of your dependencies) depends on C code. -before_script: - - apt-get update -yqq - - apt-get install -yqq --no-install-recommends build-essential git cmake - - git clone https://github.com/radareorg/radare2.git - - radare2/sys/install.sh - - -# Use cargo to test the project -test:cargo: - script: - - rustc --version && cargo --version # Print version info for debugging - - cargo test --workspace --verbose --release diff --git a/README.md b/README.md deleted file mode 100644 index dc2e8da..0000000 --- a/README.md +++ /dev/null @@ -1,128 +0,0 @@ -## radius2 - fast symbolic execution with r2 - -`radius2` is a fast symbolic execution and taint analysis framework using `radare2` that is focused on covering many different architectures and executable formats. It also strives to be easy to use and has a CLI tool that makes some reversing tasks as easy as adding a symbolic value and setting a string to reach or avoid. Reversing challenges can be solved as easily as the example below. -``` -$ radius2 -p ais3 -s flag 184 -X sorry - - flag : "ais3{I_tak3_g00d_n0t3s}" - -``` - -### Building - -Install radare2 with -``` -git clone https://github.com/radareorg/radare2.git -radare2/sys/install.sh -``` - -Install radius2 with `cargo install radius2` or include radius2 as a dependency using `radius2 = "1.0.26"` - -### Supported Architectures - -- **x86** -- **amd64** -- **ARM** -- **AArch64** - -### "Supported" Architectures - -radius2 also "supports" **MIPS**, **PowerPC**, and **Gameboy** but they are almost entirely untested. Additionally radius2 supports execution of **cBPF** and **eBPF** programs. - -radius2 can execute **Dalvik** bytecode only involving static methods and variables. - -Finally there is also a varying amount of support for **6502**, **8051**, **AVR**, **h8300**, **PIC**, **RISCV**, **SH-4**, **V810**, **V850**, **Xtensa**. - -Also PCode can be translated to ESIL with r2ghidra with `pdgp` (currently broken, actually maybe fixed now) so potentially more archs could be supported that way. - -### Example - -```rust -use radius2::{Radius, Value}; - -fn main() { - let mut radius = Radius::new("tests/r100"); - let mut state = radius.call_state(0x004006fd); - let addr: u64 = 0x100000; - let flag_val = state.symbolic_value("flag", 12 * 8); - state.memory_write_value(&Value::Concrete(addr, 0), &flag_val, 12); - state.registers.set("rdi", state.concrete_value(addr, 64)); - - radius.breakpoint(0x004007a1); - radius.avoid(&[0x00400790]); - let mut new_state = radius.run(state, 1).unwrap(); - let flag = new_state.evaluate_string(&flag_val).unwrap(); - println!("FLAG: {}", flag); - assert_eq!(flag, "Code_Talkers"); -} -``` - -### radius2 CLI tool - -radius2 can also be installed from crates.io and easily included in packages. radius2 also has a CLI tool that can be installed with `cargo install radius2` - -``` -radius2 1.0.28 -Austin Emmitt (@alkalinesec) -A symbolic execution tool using r2 and boolector - -USAGE: - radius2 [FLAGS] [OPTIONS] --path - -FLAGS: - -M, --automerge Automatically merge states - -V, --color Use color output - --crash Execution stops on invalid memory access - -h, --help Prints help information - -j, --json Output JSON - -z, --lazy Evaluate symbolic PC values lazily - -K, --merge-all Merge all finished states - --no-sims Do not simulate imports - -N, --no-modify Disallow self-modifying code (faster sometimes) - --no-strict Don't avoid invalid instructions and ESIL - --plugins Load r2 plugins - -P, --profile Get performance and runtime information - -2, --stderr Show stderr output - -0, --stdin Use stdin for target program - -1, --stdout Show stdout output - --version Prints version information - -v, --verbose Show verbose / debugging output - -OPTIONS: - -a, --address
Address to begin execution at - -A, --arg ... Argument for the target program - -x, --avoid ... Avoid addresses - -X, --avoid-strings ... Avoid code xrefs to strings - -B, --break-strings ... Breakpoint code xrefs to strings - -b, --break ... Breakpoint at some target address - -c, --constrain Constrain symbol values with string or pattern - -C, --constrain-after Constrain symbol or file values after execution - --env ... Environment variable for the target program - -e, --eval ... Evaluate ESIL expression - -E, --eval-after ... Evaluate ESIL expression after execution - -f, --file Add a symbolic file - -F, --fuzz Generate testcases and write to supplied dir - -H, --hook Hook the provided address with an ESIL expression - -i, --include Assert symbol contains a string - -L, --libs ... Load libraries from path - --max Maximum number of states to keep at a time - -m, --merge ... Set address as a mergepoint - -I, --not-include Assert symbol does not contain a string - -p, --path Path to the target binary - -r, --r2-cmd ... Run r2 command on launch - -S, --set Set memory or register values - -s, --symbol Create a symbolic value -``` - -This tool can be used to solve the same `r100` crackme as above like - -``` -$ radius2 -p tests/r100 -a 0x4006fd -x 0x400790 -s flag 96 -S A0 0x100000 64 -S 0x100000 flag 96 - flag : "Code_Talkers" -``` -Or even more quickly with strings using - -``` -$ radius2 -p tests/r100 -s stdin 96 -X Incorrect - stdin : "Code_Talkers" -``` \ No newline at end of file diff --git a/README.md b/README.md new file mode 120000 index 0000000..ae5a8b3 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +radius/README.md \ No newline at end of file