Computer Architecture Engineering
This repository contains work from the Computer Architecture course, centered on Digital Electronics, Assembly, and C programming. Key projects include the design of a circuit for 8-bit Hamming code encoding and decoding, the iterative implementation of a 4-bit ALU, and a control system for a three-floor elevator with an additional VIP floor. Other significant contributions involve reverse engineering tasks bridging Assembly and C, the implementation of the RC4 encryption algorithm in both languages, a detailed analysis of the reverse engineering phases of "Dr. Male", and the custom development of malloc and free functions purely in Assembly.
More information
S.P.Q.R.
The S.P.Q.R. (Selective Protocol for Quality and Reliability) software allows file exchange via the UDP protocol, ensuring reliable data transfer thanks to the implementation of the Selective Repeat protocol. During development, I performed extensive tests to analyze network traffic on localhost using Wireshark, verifying the correct transmission of packets and the behavior of the protocol in different scenarios. I also performed performance tests, collecting data on system performance and plotting the results through Python scripts, to evaluate the efficiency and optimize the software.
More information
Runtime Optimization and Memory Analysis
This Rust-based tool simplifies the compilation and memory analysis process for C, Assembly, and C++ projects. It replaces separate Makefile configurations, offering a unified solution for compiling code and performing tasks like memory leak checks with Valgrind. Users can specify project directories, languages, and actions (build, Valgrind test, or clean) via a simple command-line interface. With built-in compiler options and Valgrind logging, it streamlines project management and boosts productivity.
More information
Spectrum Analyzer
This project uses the ESP32 microcontroller to create a real-time spectrum analyzer. It employs the Radix-2 Fast Fourier Transform (FFT) algorithm to convert time-domain signals into their frequency-domain representation. The ESP32 samples audio signals from a KY-037 microphone through its ADC, processing them in real time. The frequency spectrum is then visualized on an OLED display. The system supports configurable sampling rates, making it adaptable for various signal analysis applications, particularly in audio analysis and signal processing.
More information
pwnable.kr
A collection of solutions for the pwnable.kr Capture The Flag (CTF) challenges. This repository includes detailed write-ups and code for solving various exploitation and reverse engineering tasks, demonstrating skills in binary exploitation, vulnerability analysis, and debugging. The challenges cover a wide range of topics such as buffer overflows, format string vulnerabilities, and shellcode execution. The repository showcases my ability to tackle complex security problems and provides a hands-on understanding of common cybersecurity techniques.
More information
Neural Network Raspberry Pi Logic Gates
This project, implemented on a Raspberry Pi, involves the creation of a custom neural network in Python, built from scratch without using external libraries, to recognize logical gates from Boolean algebra. By manually implementing the neural network architecture, training algorithm, and activation functions, this project offers a deep dive into machine learning fundamentals and provides a hands-on approach to neural network development, specifically in the context of digital logic design.
More information
Automated Parking
For my final project in 2020/2021, I developed a mini automated parking system combining an Arduino Mega with a Raspberry Pi. The Arduino Mega manages sensors that detect the presence of vehicles, while the Raspberry Pi handles communication with the Telegram bot, sending updates about the number of free spots. This project highlights my skills in integrating hardware and software, utilizing IoT technology, and implementing a user-friendly interface for real-time monitoring.
More information