Я читаю данные программы по
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