User Tools

Site Tools


modify_syzkaller_s_system_call_descriptions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
modify_syzkaller_s_system_call_descriptions [2019/01/30 09:29] – created msvoelkermodify_syzkaller_s_system_call_descriptions [2019/01/30 10:00] (current) – msvoelker
Line 1: Line 1:
 ====== modify syzkaller's system call descriptions ====== ====== modify syzkaller's system call descriptions ======
  
-To be able to test system calls, syzkaller needs descriptions of the system calls for each target OS. The descriptions are stored in .txt files inside the sys folder of syzkaller. For FreeBSD the folder is <syzkaller>/sys/freebsd/. Modifications of these files require three steps in order to integrate it into syzkaller.+To be able to test system calls, syzkaller needs descriptions of the system calls for each target OS. The descriptions are stored in .txt files inside the sys folder of syzkaller. For FreeBSD the folder is <syzkaller>/sys/freebsd/.  
 + 
 +===== Integrate system call descriptions ===== 
 + 
 +Modifications of these files require three steps in order to integrate it into syzkaller.
  
 **Step 1: Generate .const files from .txt files.**  **Step 1: Generate .const files from .txt files.** 
Line 21: Line 25:
 **Step 3: Build syzkaller on host and syz-executor on FreeBSD VM** **Step 3: Build syzkaller on host and syz-executor on FreeBSD VM**
  
-See +See [[syzkaller_with_ubuntu_host_and_freebsd_guest#build_syzkaller]] 
 + 
 +===== Upload system call modifications ===== 
 + 
 +Since syzkaller uses a github repository, contributions are possible by a pull request. 
 + 
 +  * Create a fork from syzkaller. Go on https://github.com/google/syzkaller and click on //Fork// in order to create a syzkaller repository as a clone in your github account. 
 +  * Clone a local copy of this syzkaller fork on the host. Move the existing syzkaller folder, if necessary. 
 + 
 +  cd ~/gopath/src/github.com 
 +  mv syzkaller syzkaller-old 
 +  git clone https://github.com/msvoelker/syzkaller 
 +  cd syzkaller 
 + 
 +  * Add the google repository as remote 
 + 
 +  git remote add google https://github.com/google/syzkaller.git 
 + 
 +  * Create a branch and switch to it 
 + 
 +  git checkout -b freebsd-sctp 
 + 
 +  * Do the modifications on the system call description files and integrate them (see above) 
 +  * create a commit in the local repository 
 +  * Run presubmit 
 + 
 +  make presubmit 
 + 
 +  * If googles syzkaller repository was updated in the meantime, rebase your repository 
 + 
 +  git checkout master 
 +  git fetch google 
 +  git rebase google/master 
 +  git checkout freebsd-sctp 
 +  git rebase master 
 + 
 +  * If the last step was necessary, run presubmit again. 
 +  * push changes to the syzkaller repository of your github account (if git reset were necessary add <nowiki>--force</nowiki> option) 
 + 
 +  git push --set-upstream origin freebsd-sctp 
 + 
 +  * Create a pull request: On the page of your syzkaller fork, click on //Pull request//. 
modify_syzkaller_s_system_call_descriptions.1548840568.txt.gz · Last modified: by msvoelker