Перехватывать выходы из программы в Windows 7 - PullRequest
0 голосов
/ 28 сентября 2010

У меня есть исполняемая программа, которая выводит данные на жесткий диск, например, C: \ documents.

Мне нужны некоторые средства для перехвата данных в Windows 7, прежде чем они попадут на жесткий диск.Затем я зашифрую данные и отправлю их обратно на жесткий диск.К сожалению, файл .exe не поддерживает команду перенаправления, т. Е.> В командной строке.Знаете ли вы, как я могу добиться этого на любом языке программирования (c, c ++, JAVA, php).

Шифрование может быть выполнено только до , а простые данные отправляются на диск не позже.

Любые идеи приветствуются.Спасибо

1 Ответ

0 голосов
/ 28 сентября 2010

Это практически невозможно вообще.Многие программы записывают на диск, используя отображенные в память файлы.В такой схеме диапазон памяти отображается в (часть) файла.В такой схеме записи в файл нельзя отличить от записи в память.Оператор типа p[OFFSET_OF_FIELD_X] = 17; является логически записываемым в файл.Кроме того, ОС будет следить за синхронизацией памяти и диска.Не все логические записи в память напрямую переводятся в физические записи на диск.Время от времени по прихоти ОС грязные страницы памяти копируются обратно на диск.

Даже в более простом случае CreateFile/WriteFile мало места для перехвата данных на лету.Самое близкое, чего вы можете достичь - это использование Microsoft Detours.Я знаю по крайней мере одну программу шифрования snakeoil (WxVault, программное обеспечение, поставляемое на Dells), которая делает это.Он неоднократно ломал мое приложение в поле, поэтому моя программа исправляет любые попытки перехвата данных на лету.Таким образом, даже такие хаки не являются стойкими против программ, которые не любят вмешательства.

...