GithubHelp home page GithubHelp logo

reactos / syzkaller-ros Goto Github PK

View Code? Open in Web Editor NEW
11.0 26.0 10.0 21.5 MB

"Porting Syzkaller to ReactOS" GSoC 2020 Project by @freakston

License: Apache License 2.0

Makefile 0.07% Go 94.58% HTML 0.03% CSS 0.01% C 2.25% C++ 0.46% Assembly 0.07% Objective-C 2.29% Shell 0.06% Python 0.19%

syzkaller-ros's Introduction

syzkaller - unsupervised coverage-guided kernel fuzzer

Instructions to set up syzkaller for ReactOS.

Getting ReactOS

  1. Download the MSVC(i386) build of ReactOS that supports Syzkaller binaries from Github actions page :

    https://github.com/reactos/reactos/pull/2930/checks
    
  2. Optionally you can build it yourself by cloning the my fork for ReactOS checking out the Syzkaller branch.

    https://github.com/Freakston/reactos/tree/syzkaller
    
    https://reactos.org/wiki/Building_ReactOS
    

Setting up ReactOS on qemu

  1. Create the qemu image using the following command

    qemu-img create -f qcow2 ReactOS.img 8192M

    Here 8192M is the size of image.

  2. Boot and install

    qemu -L . -m 1024 -cdrom ReactOS.iso -hda ReactOS.img -boot d -localtime -serial file:ReactOS.log
    

    Here we are creating a machine with 1Gb of RAM.


NOTE: Detailed instructions can be found here : ReactOS-wiki


Building Syzkaller

  1. Clone the fork of Syzkaller that has support for ReactOS.
    git clone https://github.com/reactos/syzkaller
  2. Instal Go version 1.10
    https://golang.org/dl/
    
  3. Make a copy of above cloned sources in the go path as follows.
    $GOPATH/src/github.com/google/syzkaller
    

NOTE: The above step is required since we are using an older commit of current master.


  1. Building Syz-Stress.
    cd tools/syz-stress/
    GOOS=windows GOARCH=386 go build -o syz-stress.exe stress.go
  2. Syz-executor (assumes cl cross-compiler is in PATH, preferably MSVC)
    cl executor\executor_windows.cc -o syz-executor.exe \
    kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib \
    shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
    winmm.lib rpcrt4.lib Crypt32.lib imm32.lib Urlmon.lib Oleaut32.lib \
    Winscard.lib Opengl32.lib Mpr.lib Ws2_32.lib Bcrypt.lib Ncrypt.lib \
    Synchronization.lib Shell32.lib Rpcns4.lib Mswsock.lib  Mincore.lib \
    Msimg32.lib RpcRT4.lib Rpcrt4.lib lz32.lib
    

NOTE: Alternatively you an download the latest build of syz-executor form here: https://github.com/reactos/syzkaller/actions


Running Syzkaller

Copy over Syz-stress and executor to the VM and place them in the same folder. Open a command prompt, change to the directory and use the following command to start fuzzing.

syz-stress.exe -threaded=0

Disclaimer

This is not the official Repo Official

syzkaller-ros's People

Contributors

a13xp0p0v avatar baishuai avatar billy-lau avatar bridgeburner avatar daviddrysdale avatar dvyukov avatar freakston avatar hyz0906 avatar jbcayrou avatar jessfraz avatar leberus avatar lorenzo-stoakes avatar lwhsu avatar mortonfox avatar nixprime avatar odeke-em avatar prattmic avatar pwaller avatar raminfp avatar ramosian-glider avatar sploving avatar ste avatar thgarnie avatar tjjh89017 avatar xairy avatar zachriggle avatar zsm-oss avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.