Browse Source

added README

Marius Schwarz 4 years ago
parent
commit
35624d3acf
5 changed files with 47 additions and 0 deletions
  1. 47 0
      README.md
  2. BIN
      img/decoder.png
  3. BIN
      img/encoder.png
  4. BIN
      img/more_rounds.png
  5. BIN
      img/structure.png

+ 47 - 0
README.md

@@ -0,0 +1,47 @@
+# Shellc0der
+
+## Installation
+
+```
+$ git clone https://git.swrzm.de/msc/shellc0der
+$ cd shellc0der
+$ cargo run
+```
+
+## Usage
+
+```
+shellc0der -i <input.bin> -o <output.bin>
+```
+
+* The input/output files are raw (non-encoded) shellcode
+
+
+## Function
+
+The basic structure of the encoded shellcode looks like this:
+
+![](img/structure.png)
+
+
+1) The initial shellcode gets encoded via XOR, in the following way:
+
+![](img/encoder.png)
+
+_Note:_ Every Block is a single byte
+
+2) A random decoder-stub is generated, that is setup in front of the encoded payload
+3) The registers used in the stub are randomly generated on each run
+4) Additionally, dead code snippets (random snippets & random # of snippets) are inserted into the stub
+5) Steps 1-4 can be repeated for arbitrary rounds, as seen below:
+
+![](img/more_rounds.png)
+
+
+## Credits
+
+The inspiration came from:
+
+* ShikataGaNai by Metasploit-Framework
+* [https://github.com/EgeBalci/sgn](https://github.com/EgeBalci/sgn)
+

BIN
img/decoder.png


BIN
img/encoder.png


BIN
img/more_rounds.png


BIN
img/structure.png