Skip to content

Turing Machine is a Fuzzer developed in Net Standard that allows to fuzz any type of applications or libraries, focused on .Net Framework, Dotnet Core and Net Standard applications.

License

Notifications You must be signed in to change notification settings

Red4Sec/TuringMachine

Repository files navigation

Turing Machine

Current TravisCI build status. Coverage Status. License.
Current version. Current nuget version.

Turing Machine is a Fuzzer developed in Net Standard that allows to fuzz any type of applications or libraries, focused on .Net Framework, Dotnet Core and Net Standard applications.

This tool is designed for software engineers, developers and bug hunters. An open-source tool for software security testing and quality assurance.

Table of Contents

Features

Turing Machine currently supports the following fuzzing techniques:

  • Mutation-based Fuzzing: mutations of existing input values.
  • Random Fuzzing: randomly generated input values.
  • More coming soon. Stay tuned!

TuringMachine also allows to integrate code coverage in .Net applications using coverlet library, which will allow you tracing the coverage of the fuzzed applications in real-time. Once finished, it will generate a full coverage report using ReportGenerator library.

Requirements

If you want to use TuringMachine for .Net software, the only requirement is:

  • Dotnet core 3.0

If you want to use it with native programs, please follow the steps described in:

Installation

Grab the latest binaries from releases.

Build

git clone https://github.com/Red4Sec/TuringMachine
cd src\TuringMachine
dotnet restore
dotnet build

Usage

Watch the demo

Clone & Build

git clone https://github.com/Red4Sec/TuringMachine
cd TuringMachine

dotnet restore src/TuringMachine/
dotnet build src/TuringMachine/

dotnet restore samples/Coverage.Payload/
dotnet build samples/Coverage.Payload/

Instrumentation

Coverage.Payload

dotnet .\src\TuringMachine\bin\Debug\netcoreapp3.0\TuringMachine.dll instrument --help
dotnet .\src\TuringMachine\bin\Debug\netcoreapp3.0\TuringMachine.dll instrument --path .\samples\Coverage.Payload\bin\Debug\netcoreapp3.0\

Start Server

dotnet .\src\TuringMachine\bin\Debug\netcoreapp3.0\TuringMachine.dll listen --help
dotnet .\src\TuringMachine\bin\Debug\netcoreapp3.0\TuringMachine.dll listen --inputs .\samples\random.input

Run Client

dotnet .\samples\Coverage.Payload\bin\Debug\netcoreapp3.0\Coverage.Payload.dll

Show the coverage

CONTROL+C  # in the client shell
Invoke-Item .\coverageReport\index.htm

RPC

dotnet .\src\TuringMachine\bin\Debug\netcoreapp3.0\TuringMachine.dll listen --rpc 127.0.0.1,1234
Start-Process http://127.0.0.1:1234/swagger/index.html

Debug

You can easily debug with Visual Studio 2019 by using TuringMachine.sln.

HallOfFame

You can see the Hall of Fame here

About

Turing Machine is a Fuzzer developed in Net Standard that allows to fuzz any type of applications or libraries, focused on .Net Framework, Dotnet Core and Net Standard applications.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages