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.
C#
Branch: master
Clone or download
shargon Merge pull request #16 from Red4Sec/github-actions
Change Travis to GitHub Actions
Latest commit b61bfee Dec 10, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows Update dotnetcore.yml Dec 10, 2019
info Swagger Nov 28, 2019
samples
src
submodules Clean code Nov 27, 2019
tests/TuringMachine.Core.Tests Add helper Dec 4, 2019
.editorconfig
.gitignore Initial commit Oct 15, 2019
.gitmodules Initial commit Oct 15, 2019
HallOfFame.md Update HallOfFame.md Nov 12, 2019
LICENSE Initial commit Oct 15, 2019
README.md Swagger Nov 28, 2019
TuringMachine.sln Initial commit Oct 15, 2019

README.md

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

You can’t perform that action at this time.