Badge | |
---|---|
License | |
Travis CI | |
Code Coverage | |
API | |
Chat |
RAIR is a work in progress rewrite of radare2 in rust with these goals:
- Native speed.
- Extremely flexible and modern analysis.
- Simpler building system.
- Worry less about undefined behavior.
- Smooth translation to multithreading.
- Extremely stable and well documented API.
- Focusing on correctiness more than focusing on features.
- Avoid legacy systems compatiability.
It was hard to decide how to start this project and there was mainly two approaches:
A) start rair completely from scratch.
B) replacing parts from radare till it all becomes written in rust.
I prefered the later approach because it will make rair usable right from the begining and it will be testable with radare2-regressions.
Ufortunately that didn't work out as expected for many reasons. Idiomatic rust is slightly different from Idiomatic C, where in rust you need to respect a very strict ownership/lifetime model that is almost non existent in C. Also radare2 is moving target and keeping compatiability with such huge system is very hard task on its own.
$ git clone https://github.com/oddcoder/rair.git
$ cd rair
$ cargo install
Regardless to how skilled/unskilled you are, there will always be something for you to do! I always try to keep the code base clean. This is list of what you can do from easy to the more challenging:
- Improve this readme.
- Add support for code coverage / travis / and other CI systems
- Document already exisiting functions.
- fix one of
cargo clippy
warnings. - Refactor the current codebase, there are many long functions and breaking them down is really usefull.
- Write unit tests/ fuzz rair
- imlement one or more of these:
- rabin2
- radiff2
- ragg2
- rasm2
- radare2
- ragg2-cc
- rarun2
- rax2