{"id":18345,"date":"2021-09-24T10:09:00","date_gmt":"2021-09-24T10:09:00","guid":{"rendered":"https:\/\/kalilinuxtutorials.com\/?p=18345"},"modified":"2021-09-19T03:36:00","modified_gmt":"2021-09-19T03:36:00","slug":"autoharness","status":"publish","type":"post","link":"https:\/\/kalilinuxtutorials.com\/autoharness\/","title":{"rendered":"Autoharness : A Tool That Automatically Creates Fuzzing Harnesses Based On A Library"},"content":{"rendered":"\n<p><strong>AutoHarness<\/strong> is a tool that automatically generates fuzzing harnesses for you. This idea stems from a concurrent problem in fuzzing codebases today: large codebases have thousands of functions and pieces of code that can be embedded fairly deep into the library. It is very hard or sometimes even impossible for smart fuzzers to reach that codepath. Even for large fuzzing projects such as oss-fuzz, there are still parts of the codebase that are not covered in fuzzing. Hence, this program tries to alleviate this problem in some capacity as well as provide a tool that security researchers can use to initially test a code base. This program only supports code bases which are coded in C and C++.<\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/parikhakshat\/autoharness#setupdemonstration\"><\/a><strong>Setup\/Demonstration<\/strong><\/p>\n\n\n\n<p>This program utilizes llvm and clang for libfuzzer, Codeql for finding functions, and python for the general program. This program was tested on Ubuntu 20.04 with llvm 12 and python 3. Here is the initial setup.<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>sudo apt-get update;<br>sudo apt-get install python3 python3-pip llvm-12* clang-12 git;<br>pip3 install pandas lief subprocess os argparse ast;<\/strong><\/p>\n\n\n\n<p>Follow the installation procedure for Codeql on&nbsp;https:\/\/github.com\/github\/codeql. Make sure to install the CLI tools and the libraries. For my testing, I have stored both the tools and libraries under one folder. Finally, clone this repository or download a release. Here is the program&#8217;s output after running on nginx with the multiple argument mode set. This is the command I used.<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>python3 harness.py -L \/home\/akshat\/nginx-1.21.0\/objs\/ -C \/home\/akshat\/codeql-h\/ -M 1 -O \/home\/akshat\/autoharness\/ -D nginx -G 1 -Y 1 -F &#8220;-I \/home\/akshat\/nginx-1.21.0\/objs -I \/home\/akshat\/nginx-1.21.0\/src\/core -I \/home\/akshat\/nginx-1.21.0\/src\/event -I \/home\/akshat\/nginx-1.21.0\/src\/http -I \/home\/akshat\/nginx-1.21.0\/src\/mail -I \/home\/akshat\/nginx-1.21.0\/src\/misc -I \/home\/akshat\/nginx-1.21.0\/src\/os -I \/home\/akshat\/nginx-1.21.0\/src\/stream -I \/home\/akshat\/nginx-1.21.0\/src\/os\/unix&#8221; -X ngx_config.h,ngx_core.h<\/strong><\/p>\n\n\n\n<p><strong>Results<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/1.bp.blogspot.com\/-x_tXFNctEXc\/YT8SsdDkfmI\/AAAAAAAAK0I\/4kROTZIWgh4UkFywCWXDh4rI3pDXk58fQCLcBGAsYHQ\/s1405\/1.png\" alt=\"\" \/><\/figure>\n\n\n\n<p>It is definitely possible to raise the success by further debugging the compilation and adding more header files and more. Note the nginx project does not have any shared objects after compiling. However, this program does have a feature that can convert PIE executables into shared libraries.<\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/parikhakshat\/autoharness#planned-features-in-order-of-progress\"><\/a><strong>Planned Features (in order of progress)<\/strong><\/p>\n\n\n\n<ul class=\"has-light-green-cyan-background-color has-background wp-block-list\"><li><a href=\"https:\/\/github.com\/parikhakshat\/autoharness#struct-fuzzing\"><\/a><strong>Struct Fuzzing<\/strong><\/li><\/ul>\n\n\n\n<p>The current way implemented in the program to fuzz functions with multiple arguments is by using fuzzing data provider. There are some improvements to make in this integration; however, I believe I can incorporate this feature with data structures. A problem which I come across when coding this is with codeql and nested structs. It becomes especially hard without writing multiple queries which vary for every function. In short, this feature needs more work. I was also thinking about a simple solution using protobufs.<\/p>\n\n\n\n<ul class=\"has-light-green-cyan-background-color has-background wp-block-list\"><li><a href=\"https:\/\/github.com\/parikhakshat\/autoharness#implementation-based-harness-creation\"><\/a><strong>Implementation Based Harness Creation<\/strong><\/li><\/ul>\n\n\n\n<p>Using codeql, it is possible to use to generate a control flow graph that maps how the parameters in a function are initialized. Using that information, we can create a better harness. Another way is to look for implementations for the function that exist in the library and use that information to make an educated guess on an implementation of the function as a harness. The problems I currently have with this are generating the control flow graphs with codeql.<\/p>\n\n\n\n<ul class=\"has-light-green-cyan-background-color has-background wp-block-list\"><li><a href=\"https:\/\/github.com\/parikhakshat\/autoharness#parallelized-fuzzingfalse-positive-detection\"><\/a><strong>Parallelized fuzzing\/False Positive Detection<\/strong><\/li><\/ul>\n\n\n\n<p>I can create a simple program that runs all the harnesses and picks up on any of the common false positives using ASAN. Also, I can create a new interface that runs all the harnesses at once and displays their statistics.<\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/parikhakshat\/autoharness#contributionbugs\"><\/a><strong>Contribution\/Bugs<\/strong><\/p>\n\n\n\n<p>If you find any bugs with this program, please create an issue. I will try to come up with a fix. Also, if you have any ideas on any new features or how to implement performance upgrades or the current planned features, please create a pull request or an issue with the tag (contribution).<\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/parikhakshat\/autoharness#psa\"><\/a><strong>PSA<\/strong><\/p>\n\n\n\n<p>This tool generates some false positives. Please first analyze the crashes and see if it is valid bug or if it is just an implementation bug. Also, you can enable the debug mode if some functions are not compiling. This will help you understand if there are some header files that you are missing or any linkage issues. If the project you are working on does not have shared libraries but an executable, make sure to compile the executable in PIE form so that this program can convert it into a shared library.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link has-vivid-cyan-blue-background-color has-background\" href=\"https:\/\/github.com\/parikhakshat\/autoharness\"><strong>Download<\/strong><\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>AutoHarness is a tool that automatically generates fuzzing harnesses for you. This idea stems from a concurrent problem in fuzzing codebases today: large codebases have thousands of functions and pieces of code that can be embedded fairly deep into the library. It is very hard or sometimes even impossible for smart fuzzers to reach that [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":18358,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[28],"tags":[4171,4172,4173,1883],"class_list":["post-18345","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kali","tag-autoharness","tag-automatically-creates","tag-fuzzing-harnesses","tag-library"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Autoharness : A Tool That Automatically Creates Fuzzing Harnesses<\/title>\n<meta name=\"description\" content=\"AutoHarness is a tool that automatically generates fuzzing harnesses for you. This idea stems from a concurrent problem in fuzzing codebase.\" \/>\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\/autoharness\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Autoharness : A Tool That Automatically Creates Fuzzing Harnesses\" \/>\n<meta property=\"og:description\" content=\"AutoHarness is a tool that automatically generates fuzzing harnesses for you. This idea stems from a concurrent problem in fuzzing codebase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kalilinuxtutorials.com\/autoharness\/\" \/>\n<meta property=\"og:site_name\" content=\"Kali Linux Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-24T10:09:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.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\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/autoharness\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/autoharness\/\"},\"author\":{\"name\":\"R K\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\"},\"headline\":\"Autoharness : A Tool That Automatically Creates Fuzzing Harnesses Based On A Library\",\"datePublished\":\"2021-09-24T10:09:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/autoharness\/\"},\"wordCount\":756,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/autoharness\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png\",\"keywords\":[\"Autoharness\",\"Automatically Creates\",\"Fuzzing Harnesses\",\"Library\"],\"articleSection\":[\"Kali Linux\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kalilinuxtutorials.com\/autoharness\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/autoharness\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/autoharness\/\",\"name\":\"Autoharness : A Tool That Automatically Creates Fuzzing Harnesses\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/autoharness\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/autoharness\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png\",\"datePublished\":\"2021-09-24T10:09:00+00:00\",\"description\":\"AutoHarness is a tool that automatically generates fuzzing harnesses for you. This idea stems from a concurrent problem in fuzzing codebase.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kalilinuxtutorials.com\/autoharness\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/autoharness\/#primaryimage\",\"url\":\"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png\",\"contentUrl\":\"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png\",\"width\":\"728\",\"height\":\"380\"},{\"@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":"Autoharness : A Tool That Automatically Creates Fuzzing Harnesses","description":"AutoHarness is a tool that automatically generates fuzzing harnesses for you. This idea stems from a concurrent problem in fuzzing codebase.","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\/autoharness\/","og_locale":"en_US","og_type":"article","og_title":"Autoharness : A Tool That Automatically Creates Fuzzing Harnesses","og_description":"AutoHarness is a tool that automatically generates fuzzing harnesses for you. This idea stems from a concurrent problem in fuzzing codebase.","og_url":"https:\/\/kalilinuxtutorials.com\/autoharness\/","og_site_name":"Kali Linux Tutorials","article_published_time":"2021-09-24T10:09:00+00:00","og_image":[{"url":"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png","type":"","width":"","height":""}],"author":"R K","twitter_card":"summary_large_image","twitter_image":"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png","twitter_creator":"@CyberEdition","twitter_site":"@CyberEdition","twitter_misc":{"Written by":"R K","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kalilinuxtutorials.com\/autoharness\/#article","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/autoharness\/"},"author":{"name":"R K","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad"},"headline":"Autoharness : A Tool That Automatically Creates Fuzzing Harnesses Based On A Library","datePublished":"2021-09-24T10:09:00+00:00","mainEntityOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/autoharness\/"},"wordCount":756,"commentCount":0,"publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/autoharness\/#primaryimage"},"thumbnailUrl":"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png","keywords":["Autoharness","Automatically Creates","Fuzzing Harnesses","Library"],"articleSection":["Kali Linux"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kalilinuxtutorials.com\/autoharness\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kalilinuxtutorials.com\/autoharness\/","url":"https:\/\/kalilinuxtutorials.com\/autoharness\/","name":"Autoharness : A Tool That Automatically Creates Fuzzing Harnesses","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/autoharness\/#primaryimage"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/autoharness\/#primaryimage"},"thumbnailUrl":"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png","datePublished":"2021-09-24T10:09:00+00:00","description":"AutoHarness is a tool that automatically generates fuzzing harnesses for you. This idea stems from a concurrent problem in fuzzing codebase.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kalilinuxtutorials.com\/autoharness\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/autoharness\/#primaryimage","url":"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png","contentUrl":"https:\/\/1.bp.blogspot.com\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png","width":"728","height":"380"},{"@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\/-i2wAhxD2dR8\/YT8U1UxIYiI\/AAAAAAAAK0Q\/Ov5yU3uFXhI5ZAunatWfYZKns949nKDXgCLcBGAsYHQ\/s728\/graphw00f_1_graphw00f-759654%2B%25281%2529.png","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":35584,"url":"https:\/\/kalilinuxtutorials.com\/fuzzing-lab\/","url_meta":{"origin":18345,"position":0},"title":"Fuzzing Lab : Mastering Software Testing Techniques With UCLA ACM Cyber","author":"Varshini","date":"January 2, 2025","format":false,"excerpt":"This is the repository for the Introduction to Fuzzing Lab run by ACM Cyber at UCLA. Click on one of the links below to get started! WeekTopicSlidesLabWeek 2Intro to FuzzingSlidesUsing HonggfuzzWeek 3Fuzzing LibrariesSlidesFuzzing LibrariesWeek 4Writing HarnessesSlidesWriting HarnessesWeek 5Coverage AnalysisSlidesWriting HarnessesWeek 6Structure-Aware FuzzingSlidesWork on ProjectWeek 7Project WorkSlidesWork on ProjectWeek 8Wrapping UpSlidesWork\u2026","rel":"","context":"In &quot;Cyber security&quot;","block_context":{"text":"Cyber security","link":"https:\/\/kalilinuxtutorials.com\/category\/cyber-security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhCNnTTaT20-RtdffgWXlVRzEMhoU65pGx54n04s0sEl1LKi3J92blGyui5Ahd65dYORcZUBUWTHud_Vf9ywbFKnatdXyAUNqK8WNv5vKL9M8mB_TNPSqamE9piiNpOlTMNYATTFH1Q7mGWy89A5iY85UUHjTcTpzPtGD95EcnfnIEFVJJpQENRMVfiSQdz\/s1600\/Fuzzing%20Lab.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhCNnTTaT20-RtdffgWXlVRzEMhoU65pGx54n04s0sEl1LKi3J92blGyui5Ahd65dYORcZUBUWTHud_Vf9ywbFKnatdXyAUNqK8WNv5vKL9M8mB_TNPSqamE9piiNpOlTMNYATTFH1Q7mGWy89A5iY85UUHjTcTpzPtGD95EcnfnIEFVJJpQENRMVfiSQdz\/s1600\/Fuzzing%20Lab.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhCNnTTaT20-RtdffgWXlVRzEMhoU65pGx54n04s0sEl1LKi3J92blGyui5Ahd65dYORcZUBUWTHud_Vf9ywbFKnatdXyAUNqK8WNv5vKL9M8mB_TNPSqamE9piiNpOlTMNYATTFH1Q7mGWy89A5iY85UUHjTcTpzPtGD95EcnfnIEFVJJpQENRMVfiSQdz\/s1600\/Fuzzing%20Lab.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhCNnTTaT20-RtdffgWXlVRzEMhoU65pGx54n04s0sEl1LKi3J92blGyui5Ahd65dYORcZUBUWTHud_Vf9ywbFKnatdXyAUNqK8WNv5vKL9M8mB_TNPSqamE9piiNpOlTMNYATTFH1Q7mGWy89A5iY85UUHjTcTpzPtGD95EcnfnIEFVJJpQENRMVfiSQdz\/s1600\/Fuzzing%20Lab.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhCNnTTaT20-RtdffgWXlVRzEMhoU65pGx54n04s0sEl1LKi3J92blGyui5Ahd65dYORcZUBUWTHud_Vf9ywbFKnatdXyAUNqK8WNv5vKL9M8mB_TNPSqamE9piiNpOlTMNYATTFH1Q7mGWy89A5iY85UUHjTcTpzPtGD95EcnfnIEFVJJpQENRMVfiSQdz\/s1600\/Fuzzing%20Lab.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhCNnTTaT20-RtdffgWXlVRzEMhoU65pGx54n04s0sEl1LKi3J92blGyui5Ahd65dYORcZUBUWTHud_Vf9ywbFKnatdXyAUNqK8WNv5vKL9M8mB_TNPSqamE9piiNpOlTMNYATTFH1Q7mGWy89A5iY85UUHjTcTpzPtGD95EcnfnIEFVJJpQENRMVfiSQdz\/s1600\/Fuzzing%20Lab.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":28340,"url":"https:\/\/kalilinuxtutorials.com\/fuzzable\/","url_meta":{"origin":18345,"position":1},"title":"Fuzzable : Framework for Automating Fuzzable Target Discovery with Static Analysis","author":"R K","date":"February 14, 2023","format":false,"excerpt":"Fuzzable is a Framework for Automating Fuzzable Target Discovery with Static Analysis. Vulnerability researchers conducting security assessments on software will often harness the capabilities of coverage-guided fuzzing through powerful tools like AFL++ and libFuzzer. This is important as it automates the bughunting process and reveals exploitable conditions in targets quickly.\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\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEivwVcs4DTN4g2bNhYNANwqO_an5RHaRBH0_8N914V5YZJgSCtHlcJd9-3oFmGLPRSaO53X0yH1IvTUQLTc_QbcGogUVlqmfy8r6W1IEdlYZ--kLwlXxz1KJoJuZo7FHVK8HNwrDe_1800GjJc4vnjKBuvfDBwJi-A_JHn8RJqDBsjd1hS-KEcA9JWQ\/s16000\/cli.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEivwVcs4DTN4g2bNhYNANwqO_an5RHaRBH0_8N914V5YZJgSCtHlcJd9-3oFmGLPRSaO53X0yH1IvTUQLTc_QbcGogUVlqmfy8r6W1IEdlYZ--kLwlXxz1KJoJuZo7FHVK8HNwrDe_1800GjJc4vnjKBuvfDBwJi-A_JHn8RJqDBsjd1hS-KEcA9JWQ\/s16000\/cli.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEivwVcs4DTN4g2bNhYNANwqO_an5RHaRBH0_8N914V5YZJgSCtHlcJd9-3oFmGLPRSaO53X0yH1IvTUQLTc_QbcGogUVlqmfy8r6W1IEdlYZ--kLwlXxz1KJoJuZo7FHVK8HNwrDe_1800GjJc4vnjKBuvfDBwJi-A_JHn8RJqDBsjd1hS-KEcA9JWQ\/s16000\/cli.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEivwVcs4DTN4g2bNhYNANwqO_an5RHaRBH0_8N914V5YZJgSCtHlcJd9-3oFmGLPRSaO53X0yH1IvTUQLTc_QbcGogUVlqmfy8r6W1IEdlYZ--kLwlXxz1KJoJuZo7FHVK8HNwrDe_1800GjJc4vnjKBuvfDBwJi-A_JHn8RJqDBsjd1hS-KEcA9JWQ\/s16000\/cli.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":6928,"url":"https:\/\/kalilinuxtutorials.com\/unifuzzer\/","url_meta":{"origin":18345,"position":2},"title":"UniFuzzer : A Fuzzing Tool For Closed-Source Binaries Based On Unicorn &#038; LibFuzzer","author":"R K","date":"October 19, 2019","format":false,"excerpt":"UniFuzzer is a fuzzing tool for closed-source binaries based on\u00a0Unicorn\u00a0and\u00a0LibFuzzer. Currently it supports fuzzing 32-bits LSB ELF files on ARM\/MIPS, which are usually seen in IoT devices. Features very little\u00a0hack\u00a0and easy to buildcan target any specified function or code snippetcoverage-guided fuzzing with considerable speeddependence resolved and loaded automaticallylibrary function override\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":37410,"url":"https:\/\/kalilinuxtutorials.com\/my-awesome-list\/","url_meta":{"origin":18345,"position":3},"title":"My Awesome List : Tools And Their Functions","author":"Varshini","date":"March 31, 2025","format":false,"excerpt":"\"My Awesome List\" is a curated collection of tools, libraries, and resources spanning various domains such as cybersecurity, programming, reverse engineering, and more. Below is an overview of some notable tools and their functions: Networking Tools Wireshark: A powerful network protocol analyzer used for troubleshooting, analysis, and development of communication\u2026","rel":"","context":"In &quot;Cyber security&quot;","block_context":{"text":"Cyber security","link":"https:\/\/kalilinuxtutorials.com\/category\/cyber-security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/03\/My-Awesome-List.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/03\/My-Awesome-List.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/03\/My-Awesome-List.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/03\/My-Awesome-List.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/03\/My-Awesome-List.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/03\/My-Awesome-List.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":32423,"url":"https:\/\/kalilinuxtutorials.com\/awesome-fuzzing\/","url_meta":{"origin":18345,"position":4},"title":"Awesome Fuzzing &#8211; The Ultimate Resource For Enhancing Software Security","author":"Varshini","date":"March 21, 2024","format":false,"excerpt":"Fuzzing\u00a0or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program. The program is then monitored for exceptions such as crashes, failing built-in code assertions, or potential memory leaks. Typically, fuzzers are used to test programs that take\u2026","rel":"","context":"In &quot;Cyber security&quot;","block_context":{"text":"Cyber security","link":"https:\/\/kalilinuxtutorials.com\/category\/cyber-security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjXIZWjGJFj9mbIQDh6DBdZHcX2CHE_-eb-ZpCBOOSrgUPHY-gkI5zisO2xtJ5Rafk5RLqMHKfScVDmrozgbkocC94lJxAcYfYkTNPz12W7J7Gvb9nNEvFGU84nUKnCYZ5ui_BX4tBsnUmuvg6P3BVsI29HJIlSslv68jqV4SQrThYbXDXBRNQSE4b6jIeJ\/s16000\/Awesome%20Fuzzing.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjXIZWjGJFj9mbIQDh6DBdZHcX2CHE_-eb-ZpCBOOSrgUPHY-gkI5zisO2xtJ5Rafk5RLqMHKfScVDmrozgbkocC94lJxAcYfYkTNPz12W7J7Gvb9nNEvFGU84nUKnCYZ5ui_BX4tBsnUmuvg6P3BVsI29HJIlSslv68jqV4SQrThYbXDXBRNQSE4b6jIeJ\/s16000\/Awesome%20Fuzzing.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjXIZWjGJFj9mbIQDh6DBdZHcX2CHE_-eb-ZpCBOOSrgUPHY-gkI5zisO2xtJ5Rafk5RLqMHKfScVDmrozgbkocC94lJxAcYfYkTNPz12W7J7Gvb9nNEvFGU84nUKnCYZ5ui_BX4tBsnUmuvg6P3BVsI29HJIlSslv68jqV4SQrThYbXDXBRNQSE4b6jIeJ\/s16000\/Awesome%20Fuzzing.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjXIZWjGJFj9mbIQDh6DBdZHcX2CHE_-eb-ZpCBOOSrgUPHY-gkI5zisO2xtJ5Rafk5RLqMHKfScVDmrozgbkocC94lJxAcYfYkTNPz12W7J7Gvb9nNEvFGU84nUKnCYZ5ui_BX4tBsnUmuvg6P3BVsI29HJIlSslv68jqV4SQrThYbXDXBRNQSE4b6jIeJ\/s16000\/Awesome%20Fuzzing.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjXIZWjGJFj9mbIQDh6DBdZHcX2CHE_-eb-ZpCBOOSrgUPHY-gkI5zisO2xtJ5Rafk5RLqMHKfScVDmrozgbkocC94lJxAcYfYkTNPz12W7J7Gvb9nNEvFGU84nUKnCYZ5ui_BX4tBsnUmuvg6P3BVsI29HJIlSslv68jqV4SQrThYbXDXBRNQSE4b6jIeJ\/s16000\/Awesome%20Fuzzing.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjXIZWjGJFj9mbIQDh6DBdZHcX2CHE_-eb-ZpCBOOSrgUPHY-gkI5zisO2xtJ5Rafk5RLqMHKfScVDmrozgbkocC94lJxAcYfYkTNPz12W7J7Gvb9nNEvFGU84nUKnCYZ5ui_BX4tBsnUmuvg6P3BVsI29HJIlSslv68jqV4SQrThYbXDXBRNQSE4b6jIeJ\/s16000\/Awesome%20Fuzzing.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":21420,"url":"https:\/\/kalilinuxtutorials.com\/clusterfuzzlite-simple-continuous-fuzzing-that-runs-in-ci\/","url_meta":{"origin":18345,"position":5},"title":"ClusterFuzzLite : Simple Continuous Fuzzing That Runs In CI","author":"R K","date":"January 29, 2022","format":false,"excerpt":"ClusterFuzzLite is a continuous\u00a0fuzzing\u00a0solution that runs as part of\u00a0Continuous Integration (CI)\u00a0workflows to find vulnerabilities faster than ever before. With just a few lines of code, GitHub users can integrate ClusterFuzzLite into their workflow and fuzz pull requests to catch bugs before they are committed. ClusterFuzzLite is based on\u00a0ClusterFuzz. Features Quick\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/18345","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=18345"}],"version-history":[{"count":13,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/18345\/revisions"}],"predecessor-version":[{"id":18572,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/18345\/revisions\/18572"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media\/18358"}],"wp:attachment":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media?parent=18345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/categories?post=18345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/tags?post=18345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}