{"id":9188,"date":"2020-02-19T21:10:15","date_gmt":"2020-02-19T15:40:15","guid":{"rendered":"http:\/\/kalilinuxtutorials.com\/?p=9188"},"modified":"2020-02-19T21:10:15","modified_gmt":"2020-02-19T15:40:15","slug":"manul","status":"publish","type":"post","link":"https:\/\/kalilinuxtutorials.com\/manul\/","title":{"rendered":"Manul : A Coverage-Guided Parallel Fuzzer For Open-Source And Blackbox Binaries On Windows, Linux &#038; Macos"},"content":{"rendered":"\n<p>Manul is a coverage-guided parallel fuzzer for open-source and black-box binaries on Windows, Linux and macOS (beta) written in pure Python. <\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong>Quick Start<\/strong><\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>pip3 install psutil<br> git clone https:\/\/github.com\/mxmssh\/manul<br> cd manul<br> mkdir in<br> mkdir out<br> echo &#8220;AAAAAA&#8221; &gt; in\/test<br> python3 manul.py -i in -o out -n 4 &#8220;linux\/test_afl @@&#8221;<\/strong><\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong>Installing Radamsa<\/strong><\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>sudo apt-get install gcc make git wget<br> git clone https:\/\/gitlab.com\/akihe\/radamsa.git &amp;&amp; cd radamsa &amp;&amp; make &amp;&amp; sudo make install<\/strong><\/p>\n\n\n\n<p>There is no need to install radamsa on Windows, Manul is distributed with radamsa native library on this platform.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#list-of-public-cves\"><\/a>List of Public CVEs<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"\"><thead><tr><th>CVE IDs<\/th><th>Product<\/th><th>Finder<\/th><\/tr><\/thead><tbody><tr><td>CVE-2019-9631 CVE-2019-7310 CVE-2019-9959<\/td><td>Poppler<\/td><td>Maksim Shudrak<\/td><\/tr><tr><td>CVE-2018-17019 CVE-2018-16807 CVE-2019-12175<\/td><td>Bro\/Zeek<\/td><td>Maksim Shudrak<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>If you managed to find a new bug using Manul please contact me and I will add you in the list.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#demo\"><\/a>Demo<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/1.bp.blogspot.com\/-HwlC8q8pCvs\/Xkv9YKKYKTI\/AAAAAAAAE_0\/2vxoXiemxro2BCRTDlLUDkuxeubZf7tLQCLcBGAsYHQ\/s1600\/manul_screen_demo.gif\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong>Dependencies<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Python3 (Python2 is deprecated since Jan 1. 2020 but Manul should still work fine under Python2)<\/li><li><a href=\"https:\/\/pypi.org\/project\/psutil\/\">psutil<\/a><\/li><li>pywin32 (<code>pip install pywin32<\/code>) on Windows platform (required for DBI persistence mode only).<\/li><\/ol>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#coverage-guided-fuzzing\"><\/a><strong>Coverage-guided fuzzing<\/strong><\/p>\n\n\n\n<p>Currently, Manul supports two types of instrumentation: AFL-based (afl-gcc, afl-clang and&nbsp;afl-clang-fast) and DBI.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong>Coverage-guided fuzzing (AFL instrumentation mode)<\/strong><\/p>\n\n\n\n<p>Instrument your target with&nbsp;<code>afl-gcc<\/code>&nbsp;or&nbsp;<code>afl-clang-fast<\/code>&nbsp;and&nbsp;<code>Address Sanitizer<\/code>&nbsp;(recommended for better results). For example:<\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>CC=afl-gcc CXX=afl-g++ CFLAGS=-fsanitize=address CXXFLAGS=-fsanitize=address cmake <br> make -j 8<\/strong><\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>USE_ASAN=1 CC=afl-clang-fast CXX=afl-clang-fast++ cmake <br> make -j 8<\/strong><\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong>Coverage-guided fuzzing in DBI mode<\/strong><\/p>\n\n\n\n<p>You don&#8217;t need to instrument your target in this mode but you need to download the latest version of DynamoRIO framework for Windows or Linux.<\/p>\n\n\n\n<p>Manul is distributed with x86\/x64 precompiled clients for Linux and Windows. You can find them in the following folders:<\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>linux\/dbi_32|dbi_64\/libbinafl.so (DynamoRIO client)<br> win\/dbi_32|dbi_64\/binafl.dll<br> Unfortunately, DynamoRIO is not officially supported on MacOS.<\/strong><\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong>Using DynamoRIO to fuzz black-box binaries<\/strong><\/p>\n\n\n\n<p>You have to uncomment the following lines in  the&nbsp;<code>manul.config<\/code>&nbsp;file&nbsp; and provide correct path to DynamoRIO launcher and client.<\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong># Choose DBI framework to provide coverage back to Manul (&#8220;dynamorio&#8221; or &#8220;pin&#8221;). Example dbi = dynamorio<br> dbi = dynamorio<\/strong><\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong># If dbi parameter is not None the path to dbi engine launcher and dbi client should be specified.<br> dbi_root = \/home\/max\/DynamoRIO\/bin64\/drrun<br> dbi_client_root = \/home\/max\/manul\/linux\/dbi_64\/libbinafl.so<br> dbi_client_libs = None<\/strong><\/p>\n\n\n\n<p>Additionally, you can increase performance of your black-box fuzzing campaign by using persistent in-memory fuzzing.<\/p>\n\n\n\n<p>In this mode, you should instruct Manul to instrument particular function (yes, you need to find it by disassembling your binary) and it will run it in a loop by uncommenting the following lines:<\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>dbi_persistence_mode = 1<br> dbi_target_module = afl_test<br>dbi_target_method = open_file<br>#dbi_target_offset = 0x3198 # optionally you can provide offset of this function instead of name<br>dbi_fuzz_iterations = 1000<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>Also Read &#8211; <a href=\"https:\/\/kalilinuxtutorials.com\/burp-suite-extension\/\">Burp Suite Extension For Generate A Random User Agents<\/a><\/strong><\/p>\n\n\n\n<p>Manul uses a large portion of winAFL instrumetation library&#8217;s code to communicate and instrument a target.<\/p>\n\n\n\n<p><strong>IMPORTANT NOTE:<\/strong> You should use 32-bit launcher and 32-bit client to fuzz 32-bit binaries and 64-bit launcher and 64-bit client for 64-bit binaries!<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>Compiling DynamoRIO client library<\/strong><\/p>\n\n\n\n<p>To compile instrumentation library, you need to use the latest version of DynamoRIO. The source code of instrumentation library can be found in dbi_clients_src located in the Manul main folder.<\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>64-bit Linux<br><br> cd dbi_clients_src<br> wget  &#8211; download the latest DynamoRIO<br> tar xvf DynamoRIO-x86_64-X.XX.XXXX-X.tar.gz<br> mkdir client_64<br> cd client_64<br> cmake ..\/dr_cov\/ -DDynamoRIO_DIR=\/home\/max\/manul\/dbi_clients_src\/DynamoRIO-x86_64-Linux-X.XX.XXXX-X.tar.gz\/cmake<br> make<\/strong><\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>32-bit Linux<br><br> cd dbi_clients_src<br> wget  &#8211; download the latest DynamoRIO<br> tar xvf DynamoRIO-x86_64-X.XX.XXXX-X.tar.gz<br> mkdir client_64<br> cd client_64<br> CFLAGS=-m32 CXXFLAGS=-m32 cmake ..\/dr_cov\/ -DDynamoRIO_DIR=\/home\/max\/manul\/dbi_clients_src\/DynamoRIO-i386-Linux-X.XX.XXXX-X.tar.gz\/cmake<br> make<\/strong><\/p>\n\n\n\n<p> On Windows, the easiest way to compile the library would be to install Visual Studio (tested on 2017 &amp; 2013 versions), launch&nbsp;<code>VS20XX Cross Tools Command Prompt<\/code>&nbsp;and run the following commands: <\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>64-bit Windows<br> cd dbi_clients_src<br> (Download and extract the latest version of DynamoRIO)<br> mkdir client_64<br> cd client_64<br> cmake -G&#8221;Visual Studio 15 Win64&#8243; ..\\dr_cov\\ -DDynamoRIO_DIR=C:\\Users\\max\\manul\\dbi_clients_src\\DynamoRIO-Windows-XXXX.XX.X.X\\cmake<br> cmake &#8211;build . &#8211;config RelWithDebInfo (or just Debug if needed)<\/strong><\/p>\n\n\n\n<p class=\"has-text-color has-background has-text-align-left has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>32-bit Windows<br> cd dbi_clients_src<br> (Download and extract the latest version of DynamoRIO)<br> mkdir client_32<br> cd client_32<br> cmake -G&#8221;Visual Studio 15&#8243; ..\\dr_cov\\ -DDynamoRIO_DIR=C:\\Users\\max\\manul\\dbi_clients_src\\DynamoRIO-Windows-XXXX.XX.X.X\\cmake<br> cmake &#8211;build . &#8211;config RelWithDebInfo (or just Debug if needed)<\/strong><\/p>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><strong>Using Intel PIN to fuzz black-box binaries on Linux<\/strong><\/p>\n\n\n\n<p>Manul initially supported Intel PIN coverage-guided fuzzing but due to low performance and high maintainance overhead, this is not supported anymore.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#command-line-arguments\"><\/a>Command-Line Arguments<\/strong><\/p>\n\n\n\n<p>The most frequently used options can be provided via the command line. The more options are supported using configuration file (<code>manul.config<\/code>).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Example: python3 manul.py -i corpus -o out_dir -n 40 \"target @@\"\n\npositional arguments:\n  target_binary  The target binary and options to be executed (don't forget to include quotes e.g. \"target e @@\").\n\noptional arguments:\n  -h, --help     show this help message and exit\n  -n NFUZZERS    Number of parallel fuzzers\n  -s             Run dumb fuzzing (no code instrumentation)\n  -c CONFIG      Path to config file with additional options (see Configuration File Options section below)\n  -r             Restore previous session\n\nRequired parameters:\n  -i INPUT       Path to directory with initial corpus\n  -o OUTPUT      Path to output directory\n\n<\/code><\/pre>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#configuration-file-options\"><\/a><strong>Configuration File Options<\/strong><\/p>\n\n\n\n<p>Manul is distributed with default&nbsp;<code>manul.config<\/code>&nbsp;file where user can find all supported options and usage examples. Options should be specified in the following format&nbsp;<code>Format: &lt;option_name&gt; = &lt;value&gt;<\/code>. Symbol&nbsp;<code>#<\/code>&nbsp;can be used to ignore a line.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#dictionary\"><\/a>Dictionary<\/strong><\/p>\n\n\n\n<p><code>dict = \/home\/max\/dictionaries\/test.dict<\/code>. AFL mutation strategy allows user to specify a list of custom tokens that can be inserted at random places in the fuzzed file. <\/p>\n\n\n\n<p>Manul supports this functionality via this option (absolute paths preferred).<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#mutator-weights\"><\/a><strong>Mutator weights<\/strong><\/p>\n\n\n\n<p><code>mutator_weights=afl:7,radamsa:2,my_mutator:1<\/code>. Mutator weights allow user to tell Manul how many mutations per 10 executions should be performed by certain fuzzer. <\/p>\n\n\n\n<p>In this example, AFL mutator will be executed in 7\/10 mutations, Radamsa 2\/10 and some custom&nbsp;<code>my_mutator<\/code>&nbsp;will get 1\/10. <\/p>\n\n\n\n<p>If you want to disable certain mutator, the weight should be assigned to 0 (e.g.&nbsp;<code>mutator_weights=afl:0,radamsa:1,my_mutator:9<\/code>).<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#deterministic-seed-radamsa-option\"><\/a>Deterministic Seed (Radamsa Option)<\/strong><\/p>\n\n\n\n<p><code>deterministic_seed = False|True<\/code>. By providing&nbsp;<code>True<\/code>, Radamsa mutations will become deterministic thereby each run of Manul will lead to same outputs.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#print-summary-per-thread\"><\/a>Print Summary per Thread<\/strong><\/p>\n\n\n\n<p><code>print_per_thread = False|True<\/code>. By enabling this option, Manul will print summary for each thread being executed instead of total summary.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#disable-volatile-paths\"><\/a>Disable Volatile Paths<\/strong><\/p>\n\n\n\n<p><code>disable_volatile_bytes = False|True<\/code>&nbsp;By enabling this option, Manul will not blacklist volatile paths.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#afls-forkserver-only-unix\"><\/a><strong>AFL&#8217;s forkserver (only UNIX)<\/strong><\/p>\n\n\n\n<p><code>forkserver_on = False|True<\/code>&nbsp;Enable or disable AFL&#8217;s&nbsp;<a href=\"https:\/\/lcamtuf.blogspot.com\/2014\/10\/fuzzing-binaries-without-execve.html\">forkserver<\/a>.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#dbi-options\"><\/a><strong>DBI Options<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>dbi = dynamorio|pin<\/code>. This option tells Manul which DBI framework will be used to instrument the target.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><code>dbi_root = &lt;path&gt;<\/code>. This options tells Manul where to find DBI framework main launcher.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><code>dbi_client_root = &lt;path&gt;<\/code>. This options tells Manul where to find DBI client to perform instrumentation.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><code>dbi_client_libs = name_#1,name_#2|None<\/code>. This option can be used to specify list of libraries that need to be instrumented along with the main target (e.g. you have executable that loads the target library + several others where you want to search for bugs).<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><code>dbi_persistence_mode = 0|1|2<\/code>. This option is used to choose between DBI persistent modes. 0 &#8211; no persistence, 1 &#8211; standard persistence (function wrapping), 2 &#8211; not yet supported.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>If&nbsp;<code>dbi-persistence_mode = 1|2<\/code>&nbsp;the following options should be specified:<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><code>dbi_target_module = &lt;module name&gt;<\/code>. Manul will try to search for target function in the module specified here.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><code>dbi_target_method = &lt;function name&gt;<\/code>. Function name to be wrapped for persistence.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><code>dbi_target_offset = &lt;offset of function e.g. 0x3198&gt;<\/code>. Function offset to be wrapped for persistence. This option can be used instead of&nbsp;<code>dbi_target_method<\/code>&nbsp;if debug symbols are not available.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><code>dbi_fuzz_iterations = 500<\/code>. The number of fuzz iterations to run in-memory before the whole program restarts. You can play with this argument to find the value that works the best with your target.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><code>dbi_thread_coverage = False<\/code>. Instrument coverage only from a thread that executed the target function (not yet supported).<\/li><\/ul>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#timeout\"><\/a>Timeout<\/strong><\/p>\n\n\n\n<p><code>timeout = 10<\/code>. Time to wait before kill the target and send the next test case.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#init_wait\"><\/a><strong>init_wait<\/strong><\/p>\n\n\n\n<p><code>init_wait = 1<\/code>. This option can be used to setup a timeout required for target to initialize.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#netslave-and-netmaster-options\"><\/a>Netslave and Netmaster Options<\/strong><\/p>\n\n\n\n<p>The options&nbsp;<code>net_config_master<\/code>&nbsp;and&nbsp;<code>net_config_slave<\/code>&nbsp;are used to distribute Manul instances over network. You have to perform the following 3 steps to run distributed fuzzing.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Create a file with a list of hosts in the following format:&nbsp;<code>IP:port<\/code>&nbsp;where your slaves will be executed.<\/li><li>Start all Manul slave instances on remote machines (with all required options and path to target binary) and enable the following option:&nbsp;<code>net_config_slave = 0.0.0.0:1337<\/code>. Manul will launch the instance and will wait for incoming connection from master instance on port 1337.<\/li><li>Start the master instance and provide the file with a list of slave instances created on Step 1 using&nbsp;<code>net_config_master = file_name<\/code>.<\/li><\/ol>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#debug-mode\"><\/a><strong>Debug Mode<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>debug = False|True<\/code>&nbsp;&#8211; print debug info.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><code>logging_enable = False|True<\/code>&nbsp;&#8211; save debug info in the log.<\/li><\/ul>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#logo\"><\/a>Logo<\/strong><\/p>\n\n\n\n<p><code>manul_logo = False|True<\/code>&nbsp;&#8211; print Manul logo at the beginning.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#disable-stats\"><\/a>Disable Stats<\/strong><\/p>\n\n\n\n<p><code>no_stats = False|True<\/code>&nbsp;&#8211; save statistics.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong><a href=\"https:\/\/github.com\/mxmssh\/manul#bitmap-synchronization-frequency-5000-recommended-for-dbi-mode\"><\/a>Bitmap Synchronization Frequency (5000 recommended for DBI mode)<\/strong><\/p>\n\n\n\n<p><code>sync_freq = 10000<\/code>. Allows user to change coverage bitmap synchronization frequency. This options tells Manul how often it should synchronize coverage between parallel fuzzing instances. Lower value decreases performance but increases coordination between instances.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#custom-path-to-save-output\"><\/a><strong>Custom Path to Save Output<\/strong><\/p>\n\n\n\n<p><code>#custom_path = test_path<\/code>&nbsp;&#8211; this option allows to save the test case in the custom folder (if target wants to load it from some predefined place).<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#command-line-fuzzing-experimental\"><\/a><strong>Command Line Fuzzing (experimental)<\/strong><\/p>\n\n\n\n<p><code>cmd_fuzzing = True|False<\/code>. If this option is enabled, Manul will provide the input in the target via command line instead of saving in the file.<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#ignore-signals\"><\/a><strong>Ignore Signals<\/strong><\/p>\n\n\n\n<p><code>user_signals = 6,2,1|None<\/code>. User can tell Manul which signals from the target should be ignored (not considered as crash).<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/mxmssh\/manul#network-fuzzing-experimental\"><\/a><strong>Network Fuzzing (experimental)<\/strong><\/p>\n\n\n\n<p><code>target_ip_port = 127.0.0.1:7715|None<\/code>&nbsp;&#8211; used to specify target IP and PORT.&nbsp;<code>target_protocol = tcp|tcp<\/code>&nbsp;&#8211; used to specify the protocol to send input in the target over network.&nbsp;<code>net_sleep_between_cases = 0.0<\/code>. This option can be used to define a delay between test cases being send in the target.<\/p>\n\n\n\n<p>Currently, network fuzzing is an experimental feature<\/p>\n\n\n\n<p class=\"has-background has-text-align-center has-light-green-cyan-background-color\"><strong>Adding Custom Mutator<\/strong><\/p>\n\n\n\n<p>Custom mutator can be added in the following three steps: Step 1. Create a python (.py) file and give it some name (e.g. example_mutator.py)<\/p>\n\n\n\n<p>Step 2. Create two functions&nbsp;<code>def init(fuzzer_id)<\/code>&nbsp;and&nbsp;<code>def mutate(data)<\/code>. Manul will call&nbsp;<code>init<\/code>&nbsp;function during fuzzing initialization and&nbsp;<code>mutate<\/code>&nbsp;for each file being provided into the target.<\/p>\n\n\n\n<p>Step 3. Enable mutator by specifying its name using&nbsp;<code>mutator_weights<\/code>&nbsp;in&nbsp;<code>manul.config<\/code>. E.g.&nbsp;<code>mutator_weights=afl:2,radamsa:0,example_mutator:8<\/code>.<\/p>\n\n\n\n<p><strong>NOTE<\/strong>: AFL and Radamsa mutators should always be specified. If you want to disable AFL and\/or Radamsa just assign 0 weights to them.<\/p>\n\n\n\n<p>Status Screen<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/1.bp.blogspot.com\/-XzDCK0Hb44g\/Xkv9I1IKx8I\/AAAAAAAAE_w\/_QVcMgSzcNMymfdDE1kuTWBN32D5qtq2ACLcBGAsYHQ\/s1600\/status_screen.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<div class=\"wp-block-button aligncenter is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link has-background has-vivid-cyan-blue-background-color\" href=\"https:\/\/github.com\/mxmssh\/manul\"><strong>Download<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Manul is a coverage-guided parallel fuzzer for open-source and black-box binaries on Windows, Linux and macOS (beta) written in pure Python. Quick Start pip3 install psutil git clone https:\/\/github.com\/mxmssh\/manul cd manul mkdir in mkdir out echo &#8220;AAAAAA&#8221; &gt; in\/test python3 manul.py -i in -o out -n 4 &#8220;linux\/test_afl @@&#8221; Installing Radamsa sudo apt-get install gcc [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":16115,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png","fifu_image_alt":"Manul : A Coverage-Guided Parallel Fuzzer For Open-Source And Blackbox Binaries On Windows, Linux & Macos","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[28],"tags":[390,1896,1966,2397,3714],"class_list":["post-9188","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kali","tag-blackbox","tag-linux","tag-macos","tag-parallel-fuzzer","tag-windows"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Manul :Coverage-Guided Parallel Fuzzer For Open-Source&amp;Blackbox Binaries<\/title>\n<meta name=\"description\" content=\"Manul is a coverage-guided parallel fuzzer for open-source and black-box binaries on Windows, Linux and macOS (beta) written in pure Python.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kalilinuxtutorials.com\/manul\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Manul :Coverage-Guided Parallel Fuzzer For Open-Source&amp;Blackbox Binaries\" \/>\n<meta property=\"og:description\" content=\"Manul is a coverage-guided parallel fuzzer for open-source and black-box binaries on Windows, Linux and macOS (beta) written in pure Python.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kalilinuxtutorials.com\/manul\/\" \/>\n<meta property=\"og:site_name\" content=\"Kali Linux Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-19T15:40:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png\" \/>\n<meta name=\"author\" content=\"R K\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png\" \/>\n<meta name=\"twitter:creator\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:site\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"R K\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/manul\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/manul\/\"},\"author\":{\"name\":\"R K\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\"},\"headline\":\"Manul : A Coverage-Guided Parallel Fuzzer For Open-Source And Blackbox Binaries On Windows, Linux &#038; Macos\",\"datePublished\":\"2020-02-19T15:40:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/manul\/\"},\"wordCount\":1662,\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/manul\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png\",\"keywords\":[\"Blackbox\",\"linux\",\"MacOS\",\"Parallel Fuzzer\",\"windows\"],\"articleSection\":[\"Kali Linux\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/manul\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/manul\/\",\"name\":\"Manul :Coverage-Guided Parallel Fuzzer For Open-Source&Blackbox Binaries\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/manul\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/manul\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png\",\"datePublished\":\"2020-02-19T15:40:15+00:00\",\"description\":\"Manul is a coverage-guided parallel fuzzer for open-source and black-box binaries on Windows, Linux and macOS (beta) written in pure Python.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kalilinuxtutorials.com\/manul\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/manul\/#primaryimage\",\"url\":\"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png\",\"contentUrl\":\"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"name\":\"Kali Linux Tutorials\",\"description\":\"Kali Linux Tutorials\",\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\",\"name\":\"Kali Linux Tutorials\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"contentUrl\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"width\":272,\"height\":90,\"caption\":\"Kali Linux Tutorials\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/CyberEdition\",\"https:\/\/www.threads.com\/@cybersecurityedition\",\"https:\/\/www.linkedin.com\/company\/cyberedition\",\"https:\/\/www.instagram.com\/cybersecurityedition\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\",\"name\":\"R K\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g\",\"caption\":\"R K\"},\"url\":\"https:\/\/kalilinuxtutorials.com\/author\/ranjith\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Manul :Coverage-Guided Parallel Fuzzer For Open-Source&Blackbox Binaries","description":"Manul is a coverage-guided parallel fuzzer for open-source and black-box binaries on Windows, Linux and macOS (beta) written in pure Python.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kalilinuxtutorials.com\/manul\/","og_locale":"en_US","og_type":"article","og_title":"Manul :Coverage-Guided Parallel Fuzzer For Open-Source&Blackbox Binaries","og_description":"Manul is a coverage-guided parallel fuzzer for open-source and black-box binaries on Windows, Linux and macOS (beta) written in pure Python.","og_url":"https:\/\/kalilinuxtutorials.com\/manul\/","og_site_name":"Kali Linux Tutorials","article_published_time":"2020-02-19T15:40:15+00:00","og_image":[{"url":"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png","type":"","width":"","height":""}],"author":"R K","twitter_card":"summary_large_image","twitter_image":"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png","twitter_creator":"@CyberEdition","twitter_site":"@CyberEdition","twitter_misc":{"Written by":"R K","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kalilinuxtutorials.com\/manul\/#article","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/manul\/"},"author":{"name":"R K","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad"},"headline":"Manul : A Coverage-Guided Parallel Fuzzer For Open-Source And Blackbox Binaries On Windows, Linux &#038; Macos","datePublished":"2020-02-19T15:40:15+00:00","mainEntityOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/manul\/"},"wordCount":1662,"publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/manul\/#primaryimage"},"thumbnailUrl":"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png","keywords":["Blackbox","linux","MacOS","Parallel Fuzzer","windows"],"articleSection":["Kali Linux"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/kalilinuxtutorials.com\/manul\/","url":"https:\/\/kalilinuxtutorials.com\/manul\/","name":"Manul :Coverage-Guided Parallel Fuzzer For Open-Source&Blackbox Binaries","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/manul\/#primaryimage"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/manul\/#primaryimage"},"thumbnailUrl":"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png","datePublished":"2020-02-19T15:40:15+00:00","description":"Manul is a coverage-guided parallel fuzzer for open-source and black-box binaries on Windows, Linux and macOS (beta) written in pure Python.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kalilinuxtutorials.com\/manul\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/manul\/#primaryimage","url":"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png","contentUrl":"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png"},{"@type":"WebSite","@id":"https:\/\/kalilinuxtutorials.com\/#website","url":"https:\/\/kalilinuxtutorials.com\/","name":"Kali Linux Tutorials","description":"Kali Linux Tutorials","publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kalilinuxtutorials.com\/#organization","name":"Kali Linux Tutorials","url":"https:\/\/kalilinuxtutorials.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/","url":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","contentUrl":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","width":272,"height":90,"caption":"Kali Linux Tutorials"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/CyberEdition","https:\/\/www.threads.com\/@cybersecurityedition","https:\/\/www.linkedin.com\/company\/cyberedition","https:\/\/www.instagram.com\/cybersecurityedition\/"]},{"@type":"Person","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad","name":"R K","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g","caption":"R K"},"url":"https:\/\/kalilinuxtutorials.com\/author\/ranjith\/"}]}},"jetpack_featured_media_url":"https:\/\/1.bp.blogspot.com\/-5ZzsJ9jIIFQ\/XkxuL1OSUvI\/AAAAAAAAFAc\/zZ6ZtMq76gs45Yh74OgzFFNR5F6DeQm4gCLcBGAsYHQ\/s1600\/status_screen.png","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":17866,"url":"https:\/\/kalilinuxtutorials.com\/fpicker\/","url_meta":{"origin":9188,"position":0},"title":"Fpicker : A Frida-based Fuzzing Suite Supporting Various Modes","author":"R K","date":"September 19, 2021","format":false,"excerpt":"Fpicker is a Frida-based fuzzing suite that offers a variety of fuzzing modes for in-process fuzzing, such as an AFL++ mode or a passive tracing mode. It should run on all platforms that are supported by Frida. Installation InstructionsBuilding and RunningCreating a Fuzzing HarnessModes and Configuration Some background information and\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/1.bp.blogspot.com\/-eHrVdLN1ijo\/YTGk80k1oNI\/AAAAAAAAKp4\/Lk1WHN5gfAwXq-ZBZD9uVXyhCyNEM-0NgCLcBGAsYHQ\/s728\/fpicker_logo%2B%25281%2529.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/1.bp.blogspot.com\/-eHrVdLN1ijo\/YTGk80k1oNI\/AAAAAAAAKp4\/Lk1WHN5gfAwXq-ZBZD9uVXyhCyNEM-0NgCLcBGAsYHQ\/s728\/fpicker_logo%2B%25281%2529.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/1.bp.blogspot.com\/-eHrVdLN1ijo\/YTGk80k1oNI\/AAAAAAAAKp4\/Lk1WHN5gfAwXq-ZBZD9uVXyhCyNEM-0NgCLcBGAsYHQ\/s728\/fpicker_logo%2B%25281%2529.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/1.bp.blogspot.com\/-eHrVdLN1ijo\/YTGk80k1oNI\/AAAAAAAAKp4\/Lk1WHN5gfAwXq-ZBZD9uVXyhCyNEM-0NgCLcBGAsYHQ\/s728\/fpicker_logo%2B%25281%2529.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":4792,"url":"https:\/\/kalilinuxtutorials.com\/drafl-fuzzing-binaries-linux\/","url_meta":{"origin":9188,"position":1},"title":"DrAFL : Fuzzing Binaries With No Source Code On Linux","author":"R K","date":"May 1, 2019","format":false,"excerpt":"Original AFL supports black-box coverage-guided fuzzing using QEMU mode. I highly recommend to try it first and if it doesn't work you can try drAFL tool. Usage You need to specify DRRUN_PATH to point to drrun launcher and LIBCOV_PATH to point to libbinafl.so coverage library. You also need to switch\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12883,"url":"https:\/\/kalilinuxtutorials.com\/libafl\/","url_meta":{"origin":9188,"position":2},"title":"LibAFL : Advanced Fuzzing Library &#8211; Slot Your Fuzzer Together In Rust","author":"R K","date":"May 21, 2021","format":false,"excerpt":"Advanced Fuzzing Library is a slot your own fuzzers together and extend their features using Rust. LibAFL is written and maintained by Andrea Fioraldi\u00a0andreafioraldi@gmail.com\u00a0and Dominik Maier\u00a0mail@dmnk.co. Why LibAFL? LibAFL gives you many of the benefits of an off-the-shelf fuzzer, while being completely customizable. Some highlight features currently include: fast: We\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2910,"url":"https:\/\/kalilinuxtutorials.com\/kemon-macos-kernel-monitoring\/","url_meta":{"origin":9188,"position":3},"title":"Kemon &#8211; An Open-Source Pre &#038; Post Callback-Based Framework For macOS Kernel Monitoring","author":"R K","date":"October 5, 2018","format":false,"excerpt":"Kemon is an open-source Pre and Post callback-based framework for macOS kernel monitoring. With the power of it, we can easily implement LPC communication monitoring, MAC policy filtering, kernel driver firewall, etc. In general, from an attacker's perspective, this framework can help achieve more powerful Rootkit. From the perspective of\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":6050,"url":"https:\/\/kalilinuxtutorials.com\/slurp-evaluate-the-security-s3-buckets\/","url_meta":{"origin":9188,"position":4},"title":"Slurp : Evaluate The Security Of S3 Buckets","author":"R K","date":"August 4, 2019","format":false,"excerpt":"Slurp is a Blackbox\/whitebox S3 bucket enumerator. Overview Credit to all the vendor packages that made this tool possible.This is a security tool; it's meant for pen-testers and security professionals to perform audits of s3 buckets. Features Scan via domain(s); you can target a single domain or a list of\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":5881,"url":"https:\/\/kalilinuxtutorials.com\/die-windows-linux-macos\/","url_meta":{"origin":9188,"position":5},"title":"DIE : Program For Determining Types Of Files For Windows, Linux &#038; MacOS","author":"R K","date":"July 21, 2019","format":false,"excerpt":"Detect It Easy, or abbreviated DIE is a program for determining types of files. It is a cross-platform application, apart from Windows version there are also available versions for Linux and Mac OS. Many programs of the kind (PEID, PE tools) allow to use third-party signatures. Unfortunately, those signatures scan\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/9188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/comments?post=9188"}],"version-history":[{"count":0,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/9188\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media\/16115"}],"wp:attachment":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media?parent=9188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/categories?post=9188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/tags?post=9188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}