A journey in Systems and Information's Security under the HPY414, Electrical and Computer Engineering@Technical University of Crete .
- crypto-lib [Assignment 1, Simple ciphers from scratch in C].
- encryptor [Assignment 2, OpenSSL and AES in C].
- encrypt-lib [Assignment 3, Simple RSA encryption/decryption tool in C].
- logix [Assignment 4-5, Simple Log Monitoring tool in C, Simple ransomware in Bash].
- netmon [Assignment 6, Simple Network Sniffer using Libpcap in C].
- adblock [Assignment 7, Simple Adblocker using iptables in Bash].
- stacksmasher [Assignment 8, Childish yet effective stack overflow exploitation on a pre-compiled C demo [Python exploit also included] ]
- Projects were builted and tested under Unbuntu Linux 19.10(x86_64) - 20.04(x86_64) via gcc compiler.
- Each directory represents an assignment, if not sure about how to run check the Makefile of each project.
- Most of them are not suitable to even run under Windows distros [trying that in strictly discouraged].
- Every source code in this will remain public and under common MIT Licence, but bare in mind that Universities do use plagiarism detectors which check the flow of your code [just change some stuff..].
- The code published is not secure to use under real-life situations since it has been built for University purposes [my MEng in Computer Engineering at TUC] and therefore is unsuitable to protect or breach a real system [unless you deal with dummies or scripties].
- For each and every task, extended theory and its comprehension is mandatory if wishing to alter this.
- If quetions/issues arrise feel free to comment them or mail me..
- Have some sort of understanding about:
- Networking (TCP, UDP, Ethernet headers) and its implementation in C (sockets, structs).
- Monolithic Operating Systems (for instance Linux).
- Algorithms and Basic Cryptography.
- Be capable of implementing "advanced" C concepts [such as system-calls, pointers etc.].
- Be brave enough.
- Fork and let me help if you wish to.
- Extend the functionality of those freely under your own branch.
- Argue about techniques or code provided [in a civilized manner].
- Attempt to implement tasks in languages other than C [I believe Python is a good rival here].
- Code is extensively (or even excessively) commented therefore attempt to resolve any issues concerning theory by checking comments.