Giter Club home page Giter Club logo

ci

WARNING

This version is the original code being refactored into radare2


                  __--~.
               .-'_ ,' |
            .'     \   |
           / | |>   ) /
           \ |     /." _   _   _   _   _
         .-^_| |\  \  |_| | \ |_| |_/ /_
         \/   -| '. ' | | |_/ | | | \ \_

                            pwn them all

SHORT

radare is a commandline hexadecimal editor.

DESCRIPTION

Radare is a toolkit framework for working with binary files having the unix philosphy in mind.

It was born with simplicity in mind. The core of it remains on the command line hexadecimal editor that it aims to provide a helper tool for reverse engineering, exploiting, fuzzing, binary and data analysis.

hasher is a hashing utility that allows to hash pieces of files and generate reports of changes. This is useful for hard disk analysis, reversing, binary diffs, system programs integrity, etc.

radare comes with a set of IO plugins that wraps all open/read/write /seek/close/system calls. This way several plugins has been implemented:

$ radare -L
haret       Read WCE memory ( haret://host:port )
debug       Debugs or attach to a process ( dbg://file or pid://PID )
gdb         Debugs/attach with gdb (gdb://file, gdb://PID, gdb://host:port)
gdbx        GDB shell interface 'gdbx://program.exe args' )
shm         shared memory ( shm://key )
mmap        memory mapped device ( mmap://file )
malloc      memory allocation ( malloc://size )
remote      TCP IO ( listen://:port or connect://host:port and rap:// )
winedbg     Wine Debugger interface ( winedbg://program.exe )
socket      socket stream access ( socket://host:port )
serial      serial port access ( serial:///path/to/dev:speed )
gxemul      GxEmul Debugger interface ( gxemul://program.arm )
ewf         EnCase EWF file support ( ewf:// )
posix       plain posix file access

Currently I'm working on a Vala frontend to provide an object oriented api for directly interfacing with the core of radare and provide a complete graphical frontend.

FEATURES

rasc

  • shellcode helper tool
    • generates paddings with A's, nops, CCs and enumerations (00, 01, 02, ..)
    • most common use shellcodes hardcoded inside
      • x86 32/64, arm, powerpc
      • linux, bsd, solaris, darwin, w32
    • HOST, PORT, CMD shellcode alteration
    • syscall proxy server
  • output in
    • raw
    • hexpairs
    • C unsigned char array
    • execute shellcode (for local testing)

rasm

  • commandline assembler/disassembler
    • supports x86, olly, java, powerpc...
    • can support any other arch supported by GAS using 'rsc asm'
    • assembling from text file to raw object
    • you can specify the offset and endian manually
  • can disassemble from an hexpair string

rabin

- show information about ELF/PE/MZ/CLASS files
  - entrypoint
  - imports
  - exports
  - symbols
  - libraries
  - sections
  - checksums
- integration with radare core

rahash

- generates and checks block checksums of a file
- can hash from stdin
- supports multiple hashing algorithms
  - md4, md5
  - crc16, crc32
  - sha1
  - par, xor, xorpair
  - hamdist
  - entropy

radiff

- integrates bdiff, bindiff, bytediff and rdbdiff into a single program
- generates a raw binary difference between two files
- recommended to use together with bdcolor
  $ bindiff a b | bdcolor 3

rsc

- contains helper scripts for working with binary files
- asm/dasm - asm->hexpairs / hexpairs->asm
- bdcolor  - colorizes and filters the bindiff output
- bytediff - byte per byte binary diff (faster than bindiff, less accurate)
- spcc     - structure parser c compiler
- rfile-foreach - find magic signatures on a raw file
- adict    - assembly dictionary
- bin2txt  - generates a template text file with info and disasembly of a binary
- bin2tab | tab2gml - generate a graphml with the program reference calls
- syms-xrefs - find crossed references to each symbol of a binary
... and much more ...

radare

  • cli and visual modes
  • yank and paste
  • perl/python scripting support
  • virtual base address for on-disk patching
  • vi-like environment and command repetition (3x)
  • debugger for x86-linux/bsd and arm-linux
  • data bookmarking (flags)
  • scripting (no branches or conditionals yet)
  • own magic database (rfile)
  • little/big endian conversions
  • data search
    • multiple keywords at the same time
    • binary masks
    • input format: ascii/binary/widechar
    • ranged searches ( /r 0-2 )
  • show xrefs on arm, x86 and ppc binaries
  • data type views:
    • integer/long/longlong/float/double
    • binary dos/unix timestamps
    • octal
    • hexadecimal (byte, word, dword, qword)
  • data block views:
    • hexadecimal
    • octal
    • binary
    • ascii string
    • widechar strings
    • url encoding
    • shellcode (gas format)
    • c char* array
    • analysis (pA 30 @ esp)
    • disassembly
      • native x86/arm
      • allows to use objdump or any other external command
      • pseudocode syntax
      • colorization
      • inline comments and labels
  • visual mode commands
    • gotoxy command to create your own composed views
    • screen fit
    • colorization of almost everything
    • on the fly disassembly
    • apply magic on current block
    • hjkl-style scrolling
    • print format cycling
    • cursor mode and yank/paste feature

debugger

  • support for x86-linux/bsd and arm-linux

  • next planed ports: x86.64-linux, w32 and x86.solaris

  • tracing with multiple verbose levels

  • dump/restore of the process

  • full filedescriptor control

  • backtrace viewer

  • attach/detach

  • code injection

  • breakpoints (software, hardware)

  • watchpoints (software, hardware)

    • raw drx control
  • full gpregs and fpregs control

  • continue until user code

  • step into, step over

  • continue until syscall (strace like)

  • supports ktrace on openbsd and netbsd

  • raw memory management of the target process

  • common hacks can be automatized with keybindings

  • full signalling control of the target process

  • /proc/pid/maps info support

  • ollydbg-like keybindings (F7 step , F9 continue, ...)

                   -- Dedicated to the girl I have loved, hated and loved.
    

AUTHOR

pancake <@youterm.com>

pancake's Projects

0xffff icon 0xffff

The Free Fiasco Firmware Flasher

accelerometer-web-demo icon accelerometer-web-demo

Real-time accelerometer orientation web demo from a websocket data feed. We believe in an open Internet of Things.

alt icon alt

Abstract Language Tree

bitcointools icon bitcointools

Python-based tools for the Bitcoin cryptocurrency system

bugcoin icon bugcoin

bitcoin based bug tracker in nodejs

capstone icon capstone

Capstone disassembly/disassembler framework: Core (Arm, Arm64, Mips, PPC, Sparc, SystemZ, X86, X86_64, XCore) + bindings (Python, Java, Ocaml)

certbot icon certbot

Certbot, previously the Let's Encrypt Client, is EFF's tool to obtain certs from Let's Encrypt, and (optionally) auto-enable HTTPS on your server. It can also act as a client for any other CA that uses the ACME protocol.

cparse icon cparse

Parser of C-syntax data definitions, C-syntax function definitions

cry icon cry

commandline rsa crypto tool

cydia icon cydia

build system to cross-compile cydia packages for cydia.radare.org

darm icon darm

A light-weight and efficient disassembler written in C for the ARMv7 instruction set.

diaphora icon diaphora

Diaphora, a Free and Open Source program diffing tool

dockcross icon dockcross

Cross compiling toolchains in Docker images

dumpdecrypted icon dumpdecrypted

Dumps decrypted mach-o files from encrypted iPhone applications from memory to disk. This tool is necessary for security researchers to be able to look under the hood of encryption.

frida-core icon frida-core

Frida core library intended for static linking into bindings

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.