summaryrefslogtreecommitdiff
path: root/examples/terminal-emulators/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'examples/terminal-emulators/README.md')
-rw-r--r--examples/terminal-emulators/README.md93
1 files changed, 0 insertions, 93 deletions
diff --git a/examples/terminal-emulators/README.md b/examples/terminal-emulators/README.md
deleted file mode 100644
index f46c973a..00000000
--- a/examples/terminal-emulators/README.md
+++ /dev/null
@@ -1,93 +0,0 @@
-# Fuzzing terminal emulators #
-
-## Step 1: Prepare libclose.so and terminal-test ##
-
-```
-$ cd /home/jagger/src/honggfuzz/examples/terminal-emulators/
-$ make
-../../hfuzz_cc/hfuzz-clang -std=c99 -o terminal-test terminal-test.c
-cc -std=c99 -shared -o libclose.so libclose.c
-```
-
-*libclose.so* serves one purpose only: when preloaded (with _LD_PRELOAD=libclose.so_)
-it will prevent file-descriptors *1022* and *1023* (used by honggfuzz for coverage
-feedback accumulation) will not be closed by the fuzzed binary (terminal emulator)
-before passing to the _terminal-test_ binary.
-
-The *terminal-test* program will feed the terminal emulator with data from the
-fuzzing engine, and will try to read back any data that the terminal can produce.
-See the _Bonus: term.log_ secion on why it might matter.
-
-## Step 2: Instrument your terminal emulator ##
-
-Add compiler-time instrumentation to your fuzzed terminal emulator. Typically it
-would consist of the following sequence of commands (for xterm):
-
-```
-$ cd xterm-327
-$ CC=/home/jagger/src/honggfuzz/hfuzz_cc/hfuzz-clang CXX=$CC ./configure
-...
-...
-$ CC=/home/jagger/src/honggfuzz/hfuzz_cc/hfuzz-clang CXX=$CC make -j4
-```
-
-Alternatively, you might want to compile it with ASAN enabled, for better
-detection of memory corruption problems
-
-```
-$ cd xterm-327
-$ HFUZZ_CC_ASAN=1 CC=/home/jagger/src/honggfuzz/hfuzz_cc/hfuzz-clang CXX=$CC ./configure
-...
-...
-$ HFUZZ_CC_ASAN=1 CC=/home/jagger/src/honggfuzz/hfuzz_cc/hfuzz-clang CXX=$CC make -j4
-```
-
-## Step 3: Create initial input corpus ##
-
-It can consist even of a single file.
-
-```
-$ mkdir IN
-$ echo A >IN/1
-```
-
-## Step 4: Launch it! ##
-
-```
-$ /home/jagger/src/honggfuzz/honggfuzz -z -P -i IN/ -E LD_PRELOAD=/home/jagger/src/honggfuzz/examples/terminal-emulators/libclose.so -- xterm-327/xterm -e /home/jagger/src/honggfuzz/examples/terminal-emulators/terminal-test
-```
-
-Typical output:
-```
-----------------------------[ honggfuzz v1.0alpha ]---------------------------
- Iterations : 4,865,546 [4.87M]
- Phase : Dynamic Main (2/2)
- Run Time : 0 hrs 0 min 15 sec
- Input Dir : [865] 'IN/'
- Fuzzed Cmd : './xterm -e /home/jagger/src/honggfuzz/examples/terminal-em...'
- Threads : 4, CPUs: 8, CPU: 733% (91%/CPU)
- Speed : 320,951/sec (avg: 324,369)
- Crashes : 0 (unique: 0, blacklist: 0, verified: 0)
- Timeouts : 0 [10 sec.]
- Corpus Size : 265, max file size: 1,024
- Coverage : bb: 850 cmp: 35,516
------------------------------------[ LOGS ]-----------------------------------
-NEW, size:912 (i,b,sw,hw,cmp): 0/0/1/0/1, Tot:0/0/772/0/32216
-NEW, size:940 (i,b,sw,hw,cmp): 0/0/1/0/32, Tot:0/0/773/0/32248
-NEW, size:919 (i,b,sw,hw,cmp): 0/0/0/0/9, Tot:0/0/773/0/32257
-NEW, size:1024 (i,b,sw,hw,cmp): 0/0/0/0/2, Tot:0/0/773/0/32259
-NEW, size:1013 (i,b,sw,hw,cmp): 0/0/0/0/1, Tot:0/0/773/0/32260
-...
-...
-```
-
-## Bonus: term.log ##
-
-The *term.log* file will contain interesting data which can be fetched from the
-terminal emulator's input buffer. It will typically contains responses to ESC
-sequences requesting info about terminal size, or about the current color map.
-But, if you notice there arbitrary or binary data, basically something that
-a typical terminal shouldn't responsd with, try to investigate it. You might
-have just found and interesting case of RCE, where arbitrary data can
-be pushed into terminal's input buffer, and then read back (and potentially
-executed) with whatever runs under said emulator (e.g. _/bin/bash_)