Skip to content

Latest commit

 

History

History
40 lines (29 loc) · 2.52 KB

README.md

File metadata and controls

40 lines (29 loc) · 2.52 KB

Assembly Brainducking Encryption

Video Demo: removed

Description:

This project, titled "Assembly Brainducking Encryption," is an educational demonstration of basic encryption techniques using assembly language. It was inspired by a significant security flaw in Ubisoft's game Growtopia, where a vulnerability in the save.dat file went unpatched for nearly a decade. This incident underscores the critical importance of encryption in protecting sensitive data. As part of a final project for a Harvard certification, this work illustrates how to implement file encryption using the XOR method in a straightforward yet effective way.

The encryption process relies on XOR (exclusive OR), a fundamental technique that scrambles data by applying a key. While simple, XOR encryption can offer meaningful security when properly implemented. The assembly program begins with a custom welcome message and then prompts the user to input the name of the file they wish to encrypt. The file is read, and a predefined key is expanded and used to encrypt its contents, resulting in a file that maintains its original name but with encrypted data.

Notably, this project is built entirely in assembly language, without relying on external libraries or tools like OpenSSL, highlighting a low-level approach to cryptography. The program incorporates key expansion techniques to strengthen the XOR encryption, making it more difficult to reverse-engineer. The goal is to educate others on the basics of encryption and demonstrate how even simple methods can be securely implemented.

Ultimately, this project serves as a practical example of fundamental encryption, providing insight into the strengths and limitations of XOR encryption in real-world scenarios.

Installation and Setup

Before you can run the assembly encryption program, you'll need to install a few essential tools on your Linux system. These tools are required for assembling and linking your assembly code.

  1. NASM (Netwide Assembler): NASM is an assembler used to convert your assembly language code into machine code (object files).

    sudo apt-get update
    sudo apt-get install nasm
  2. LD (GNU Linker): The linker is used to link the object files generated by NASM into an executable file.

    sudo apt-get install binutils

Usage

Once you have the required tools installed, you can assemble, link, and run the encryption program as follows: bash cd asm-encrypt make ./encrypt

For decryption bash ./decrypt