Inspired by Parrot, we're building Carrot, an interposition library that captures file and networking system calls and distributes them across machines.
First, install necessary dependencies:
sudo apt-get update
sudo apt install g++ libprotobuf-dev libcurl4-openssl-dev libssl-dev libcrypto++-dev libresolv-devThen, set up the protobufs:
cd protobufs
protoc -I=. --cpp_out=./messages ./message.proto
protoc -I=. --cpp_out=./files ./file.protoFinally, compile all of the files:
makeTo interpose on file system calls, look at the folder fsc. On one machine, run the receiver:
fsc/file_receiverOn another machine, run the interposition library on top of an executable doing file system calls
fsc/file_carrot fsc/file_test1To interpose on networking system calls, look at the folder nsc. On one machine, run the receiver:
nsc/networking_receiverOn another machine, run the interposition library on top of an executable doing file system calls
nsc/networking_carrot nsc/curl http://www.example.com