Как запустить / создать процесс, данные которого из буфера - PullRequest
0 голосов
/ 23 апреля 2019

Я читаю данные программы по

    std::ifstream file("L:\\MyProgram.exe", std::ios::binary | std::ios::ate);
std::streamsize size = file.tellg();
file.seekg(0, std::ios::beg);

std::vector<char> buffer(size);
if (file.read(buffer.data(), size))
{
    printf("Okuma Basarili! size: %8X !!!\n",size);
    BYTE GOYH[] = { 236,176,249,27,13,158,4,0,114};
    for (int i = 0; i < size; i++)
    {
        if (!memcmp(&buffer[i], GOYH, sizeof GOYH))
        {
            printf("Found address: %8X\n", i);
            ZeroMemory(&buffer[i], sizeof GOYH);
            std::ofstream file("myfile.bin", std::ios::binary);
            file.write(&buffer[0], size);
            file.close();
        }
    }
}

Я читаю данные файла по коду вверху здесь. И я меняю шаблон с помощью zeromemory. После этого я сохраняю новый файл. Но без сохранения этого файла я могу запустить процесс из буфера? Отредактированное значение таково.

В CreateProcess есть параметр, который принимает путь к файлу. Но я не хочу сохранять файл.

Например, в Winlicense есть опция xbundler, которая запускает исполняемый файл без его извлечения. Спасибо за вашу заботу. Жду ваших подсказок. Извините за мой английский. Я промежуточный уровень: P

...