Features:
- convert shellcode between different formats (currently supported: asm, bin, hex, obj, exe, C, python, ruby, pretty)
- interactive opcode-to-binary conversion (and viceversa) mode. This is useful when you cannot use specific bytes in the shellcode.
- resolve syscall numbers and constants (not exactly implemented yet)
- portable and easily deployable (it only relies on gcc/as/objdump and python). And it just one python file!
- in-place development: you run ShellNoob directly on the target architecture!
- other options: prepend breakpoint, 32bit/64bit switch.
- read from stdin / write to stdout support (use “-” as filename)
$ ./shellnoob.py -h
./shellnoob.py [--from-INPUT] (input_file_path | - ) [--to-OUTPUT] [output_file_path | - ]
./shellnoob.py -i (for interactive mode)
./shellnoob.py -c (insert a breakpoint at the beginning of the shellcode)
./shellnoob.py --64 (64bits mode)
./shellnoob.py --get-const <const>
./shellnoob.py --get-sysnum <sysnum>
supported INPUT format: asm, obj, bin, hex
supported OUTPUT format: asm, obj, exe, bin, hex, C, python, bash, ruby, pretty