From b3a95cc7c03aa703ea450d4e3fcfa754c89771ce Mon Sep 17 00:00:00 2001 From: tilpner Date: Thu, 6 Sep 2018 19:07:05 +0200 Subject: Add todo to readme --- README.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/README.md b/README.md index a1ba0c7..63ee462 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,46 @@ +# qeval + +qeval is a toy to safely-ish (beware bugs and hardware limitations) execute malicious/untrusted code. +It's inspired by [shbot](https://github.com/geirha/shbot), but none of the code was taken from there. + +There are currently evaluators for + +* Perl 5 +* Rust nightly +* Go +* C (gcc) +* C (tcc) +* C++ (gcc) +* Java (openjdk) +* Python 3 +* Python 2 +* Ruby +* Bash +* Ash (from busybox) +* NodeJS +* Lua +* PHP +* Racket +* Guile +* Haskell +* Qalculate (which doesn't really need the sandboxing) + +Perl is currently the fastest evaluator, taking 0.16s on my laptop for a simple `print 42`. + + ### Example usage ```sh +# This may build Linux, QEMU, and Perl. Use evaluators.sh if you're impatient $ cd $(nix-build --no-out-link . -A evaluators.all) $ bin/sh id uid=0(root) gid=0 groups=0 ``` + +### Todo + +* Disk hotplug to reduce amount of disk suspensions (and be able to mlock the remaining one) +* More sophisticated control processes + * Quicker abort when output has reached size limit + * Report exit status, memory usage (and OOM), other statistics (count syscalls?) + * Multi-line input -- cgit v1.2.3