All the things that separate this project from being actual software.
- Design the protocols
- figure out which port I'm going to use
- decide whether the protocols are made on TCP or UDP (speed v reliability)
- make DSCP
protocols/dscp.cprotocols/dscp.h
- make DICP
protocols/dicp.cprotocols/dicp.h
- make a method for unpacking the protocols
protocols/unpack.cprotocols/unpack.h
- much makefile
protocols/makefile
- tally all the things that a process can request from its
kernel and make it possible.
protocols/info.h
- Diatom client
- sandbox environment
diatom-client/env.c
- handle every, single, system call.
- handle UDP
diatom-client/handler.c
- make a very thorough logging system
diatom-client/logging.c
- get some persistent data storage
diatom-client/data.c
- duck-tape it all together
diatom-client/main.c
- write a makefile in which it works
diatom-client/makefile
- write a service file for installation
diatom-client/diatom-client.service
- add
make installto makefilediatom-client/makefile
- sandbox environment
- Diatom central
- make a friendly cli
diatom-central/cli.c
- handle processes over UDP
diatom-central/handler.c
- add persistent data storage
diatom-central/data.c
- Elmer's glue it all together
diatom-central/main.c
- write a makefile
diatom-central/makefile
- add
make installformula to makefilediatom-central/makefile
- make a friendly cli
- Other
- add a build workflow
- test it with Virtualbox and Ubuntu base images
- add a test workflow?
- handle forks and threads
- configure AES options
- handle
ptracecalls. - handle
process_vm_readvandprocess_vm_writevcalls - Maybe add a status GUI to
diatom-central
- fix the many, many, problems that will come along the way.
- learn Radare2.
- thoroughly test this thing for vulnerabilities