merrychap / shellen

:cherry_blossom: Interactive shellcoding environment to easily craft shellcodes
MIT License
888 stars 97 forks source link

Add run/r/go command: executes the last shellcode in a subprocess #8

Closed numinit closed 6 years ago

numinit commented 6 years ago

shellen can now be a repl to program CPUs in assembly.

run

Enough said. Very easy to crash it, but it tells you what went wrong :-)

run-crash

merrychap commented 6 years ago

This is a really pretty nice feature! :) But I'm afraid that this can harm user's system. Maybe we should execute this in some sort of a virtual environment

Also, can you add a command to compile shellen_native module?

numinit commented 6 years ago

Maybe we could pull in Unicorn as a dependency? I'm sort of torn, though - if I'm testing shellcode, I want to be able to see it spawn a shell, and am unfamiliar with whether Unicorn's APIs let you run code with QEMU's binary translation.

numinit commented 6 years ago

Regarding the potential danger - what do you think about restricting run to work only with assembled shellcode? That way someone doesn't just paste a blob of hex from the internet and run it.

merrychap commented 6 years ago

Yeah, it's easy to add. But also we can try to disassemble a blob of hex and if everything is ok, then we can run these bytes (it means that these bytes are really some instructions)