Source: trinity Section: utils Priority: optional Maintainer: gustavo panizzo Build-Depends: debhelper (>= 11), dpkg-dev (>= 1.16.1~), linux-libc-dev Standards-Version: 4.3.0 Homepage: http://codemonkey.org.uk/projects/trinity/ Vcs-Git: https://salsa.debian.org/debian/trinity.git Vcs-Browser: https://salsa.debian.org/debian/trinity Package: trinity Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: system call fuzz tester As 'fuzz testing' suggests, trinity calls syscalls at random, with random arguments. Where Trinity differs is that the arguments it passes are not purely random. . If a syscall took, for example, a file descriptor as an argument, one of the first things kernels does is validate that fd, if is not valid the kernel would just reject it as -EINVAL. . So on startup, Trinity creates a list of file descriptors, by opening pipes, scanning sysfs, procfs, /dev, and creates a bunch of sockets using random network protocols. Then when a syscall needs an fd, it gets passed one of these at random. . Trinity also shares those file descriptors between multiple threads, which causes havoc sometimes. . Warning: This program may seriously corrupt your files, including any of those that may be writable on mounted network file shares. It may create network packets that may cause disruption on your local network. Run at your own risk.