Rephrase the README
This commit is contained in:
parent
418c1d95c6
commit
75b4462ee5
152
README.md
152
README.md
|
@ -9,8 +9,6 @@
|
|||
--pancake
|
||||
```
|
||||
|
||||
|
||||
|
||||
| | |
|
||||
|----------|---------------------------------------------------------------------|
|
||||
| **Jenkins** | [![Build Status](http://ci.rada.re/buildStatus/icon?job=radare2)](http://ci.rada.re/job/radare2)|
|
||||
|
@ -36,6 +34,13 @@ code, debugging programs, attaching to remote gdb servers...
|
|||
|
||||
radare2 is portable.
|
||||
|
||||
To learn more on radare2 you may want to read the [official radare2 book](https://radare.gitbooks.io/radare2book/content/).
|
||||
|
||||
## Operating Systems
|
||||
|
||||
Windows (since XP), GNU/Linux, OS X, [Net|Free|Open]BSD,
|
||||
Android, iOS, OSX, QNX, Solaris, Haiku, FirefoxOS.
|
||||
|
||||
## Architectures
|
||||
|
||||
i386, x86-64, ARM, MIPS, PowerPC, SPARC, RISC-V, SH, m68k, m680x, AVR,
|
||||
|
@ -54,67 +59,35 @@ ZIMG, MBN/SBL bootloader, ELF coredump, MDMP (Windows minidump),
|
|||
WASM (WebAssembly binary), Commodore VICE emulator, QNX,
|
||||
Game Boy (Advance), Nintendo DS ROMs and Nintendo 3DS FIRMs, various filesystems.
|
||||
|
||||
## Operating Systems
|
||||
## Scripting
|
||||
|
||||
Windows (since XP), GNU/Linux, OS X, [Net|Free|Open]BSD,
|
||||
Android, iOS, OSX, QNX, Solaris, Haiku, FirefoxOS.
|
||||
Native bindings are supported but the recommended way to interact with r2
|
||||
from other languages is by using [r2pipe](https://github.com/radare/radare2-r2pipe)
|
||||
|
||||
## Bindings
|
||||
D, Clojure Vala/Genie, Python, Erlang, Shell, Haskell, Prolog, Swift, Lisp, Nim,
|
||||
Javascript, Lua, Rust, Go, Perl, Guile, PHP, Newlisp, c#, Java, Ruby, Java, OCaml...
|
||||
|
||||
Vala/Genie, Python (2, 3), NodeJS, Lua, Go, Perl,
|
||||
Guile, PHP, Newlisp, Ruby, Java, OCaml...
|
||||
# Install / Update
|
||||
|
||||
# Dependencies
|
||||
|
||||
radare2 can be built without any special dependency, just
|
||||
get a working toolchain (gcc, clang, tcc...) and use make.
|
||||
|
||||
Optionally you can use libewf for loading EnCase disk images.
|
||||
|
||||
To build the bindings you need latest valabind, g++ and swig2.
|
||||
|
||||
# Install
|
||||
|
||||
The easiest way to install radare2 from git is by running
|
||||
the following command:
|
||||
The recommended way to install or update radare2 from git for single-user systems:
|
||||
|
||||
$ sys/install.sh
|
||||
|
||||
If you want to install radare2 in the home directory without
|
||||
using root privileges and sudo, simply run:
|
||||
If you don't have root, or just want to install it in your home use:
|
||||
|
||||
$ sys/user.sh
|
||||
|
||||
# Building with meson + ninja
|
||||
Note that those scripts will install using configure+make using symlinks, so you
|
||||
don't need to reinstall everytime you change something in the builddir.
|
||||
|
||||
If you don't already have meson and ninja, you can install them
|
||||
with your distribution package manager or with r2pm:
|
||||
* If you don't like symlinks use `sys/install.sh --install`
|
||||
* To use capstone5 use the `--with-capstone5` flag.
|
||||
|
||||
$ r2pm -i meson
|
||||
Alternatively you can also build with meson + ninja:
|
||||
|
||||
If you already have them installed, you can run this line to
|
||||
compile radare2:
|
||||
$ ./sys/meson.py --prefix=/usr --shared --install
|
||||
|
||||
$ python ./sys/meson.py --prefix=/usr --shared --install
|
||||
|
||||
This method is mostly useful on Windows because the initial building
|
||||
with Makefile is not suitable. If you are lost in any way, just type:
|
||||
|
||||
$ python ./sys/meson.py --help
|
||||
|
||||
# Update
|
||||
|
||||
To update Radare2 system-wide, you don't need to uninstall or pull.
|
||||
Just re-run:
|
||||
|
||||
$ sys/install.sh
|
||||
|
||||
If you installed Radare2 in the home directory,
|
||||
just re-run:
|
||||
|
||||
$ sys/user.sh
|
||||
|
||||
# Uninstall
|
||||
## Uninstall
|
||||
|
||||
In case of a polluted filesystem, you can uninstall the current
|
||||
version or remove all previous installations:
|
||||
|
@ -126,7 +99,7 @@ To remove all stuff including libraries, use
|
|||
|
||||
$ make system-purge
|
||||
|
||||
# Package manager
|
||||
## Package Manager
|
||||
|
||||
Radare2 has its own package manager - r2pm. Its packages
|
||||
repository is on [GitHub too](https://github.com/radare/radare2-pm).
|
||||
|
@ -142,84 +115,29 @@ To install a package, use the following command:
|
|||
|
||||
$ r2pm install [package name]
|
||||
|
||||
# Bindings
|
||||
# Development
|
||||
|
||||
All language bindings are under the r2-bindings directory.
|
||||
You will need to install swig and valabind in order to
|
||||
build the bindings for Python, Lua, etc..
|
||||
|
||||
APIs are defined in vapi files which are then translated
|
||||
to swig interfaces, nodejs-ffi or other and then compiled.
|
||||
|
||||
The easiest way to install the python bindings is to run:
|
||||
|
||||
$ r2pm install lang-python2 #lang-python3 for python3 bindings
|
||||
$ r2pm install r2api-python
|
||||
$ r2pm install r2pipe-py
|
||||
|
||||
In addition there are `r2pipe` bindings, which is an API
|
||||
interface to interact with the prompt, passing commands
|
||||
and receivent the output as a string, many commands support
|
||||
JSON output, so its integrated easily with many languages
|
||||
in order to deserialize it into native objects.
|
||||
|
||||
$ npm install r2pipe # NodeJS
|
||||
$ gem install r2pipe # Ruby
|
||||
$ pip install r2pipe # Python
|
||||
$ opam install radare2 # OCaml
|
||||
|
||||
And also for Go, Rust, Swift, D, .NET, Java, NewLisp, Perl, Haskell,
|
||||
Vala, OCaml, and many more to come!
|
||||
|
||||
# Regression Testsuite
|
||||
|
||||
Running `make tests` will fetch the radare2-regressions
|
||||
repository and run all the tests in order to verify that no
|
||||
changes break any functionality.
|
||||
|
||||
We run those tests on every commit, and they are also
|
||||
executed with ASAN and valgrind on different platforms
|
||||
to catch other unwanted 'features'.
|
||||
|
||||
# Documentation
|
||||
|
||||
There is no formal documentation of r2 yet. Not all commands
|
||||
are compatible with radare1, so the best way to learn how to
|
||||
do stuff in r2 is by reading the examples from the web and
|
||||
appending '?' to every command you are interested in.
|
||||
|
||||
Commands are small mnemonics of few characters and there is
|
||||
some extra syntax sugar that makes the shell much more pleasant
|
||||
for scripting and interacting with the APIs.
|
||||
|
||||
You could also checkout the [radare2 book](https://radare.gitbooks.io/radare2book/content/).
|
||||
|
||||
# Coding Style
|
||||
## Coding Style
|
||||
|
||||
Look at [CONTRIBUTING.md](https://github.com/radare/radare2/blob/master/CONTRIBUTING.md).
|
||||
|
||||
# Webserver
|
||||
## Tests
|
||||
|
||||
radare2 comes with an embedded webserver which serves a pure
|
||||
html/js interface that sends ajax queries to the core and
|
||||
aims to implement an usable UI for phones, tablets and desktops.
|
||||
Running `make tests` will fetch the [radare2-regressions](https://github.com/radare/radare2-regressions)
|
||||
repository and run all the tests in order to verify that no changes break any functionality.
|
||||
|
||||
$ r2 -c=H /bin/ls
|
||||
We run those tests on every commit, and they are also executed with ASAN
|
||||
and valgrind on different platforms to catch other unwanted 'features'.
|
||||
|
||||
To use the webserver on Windows, you require a cmd instance
|
||||
with administrator rights. To start the webserver, use the following command
|
||||
in the project root.
|
||||
|
||||
> radare2.exe -c=H rax2.exe
|
||||
# Community
|
||||
|
||||
# Pointers
|
||||
Website: [https://www.radare.org/](https://www.radare.org/)
|
||||
|
||||
Website: https://www.radare.org/
|
||||
Telegram: [https://t.me/radare](https://t.me/radare)
|
||||
|
||||
Twitter: [@radareorg](https://twitter.com/radareorg)
|
||||
|
||||
IRC: irc.freenode.net #radare
|
||||
|
||||
Telegram: https://t.me/radare
|
||||
|
||||
Matrix: @radare2:matrix.org
|
||||
|
||||
Twitter: [@radareorg](https://twitter.com/radareorg)
|
||||
|
|
Loading…
Reference in New Issue