У меня есть исполняемый файл. Я хочу запустить его как процесс и прочитать в реальном времени исходный текст. Однако вывод буферизуется, и я могу получить его только при завершении процесса.Добавление вызова функции в 64-разрядный исполняемый файл Visual C++
Я хочу вставить вызов setbuf(stdout, NULL)
в метод main().
Я использую IDA, и я вижу, что функции C STL импортируются из MSVCR120.DLL. Функция setbuf()
/setvbuf()
не импортируется, а также flush()
/fflush()
есть. LoadLibrary()
/GetProcAddress()
не импортируются.
Мне интересно, как исправить двоичный файл, чтобы он не буферировал stdout
, что я могу сделать? Или, может быть, я могу сделать что-то около MSVCR120.DLL
и сделать все отпечатки флеша?
Простым способом является запись замены для msvcr120.dll, которая перенаправляет каждый вызов исходной dll, но добавляет setvbuf при первом вызове ввода-вывода. –