2010-09-28 4 views
0

У меня есть исполняемая программа, которая выводит данные на жесткий диск, например. C: \ документов.Перехват выходов из программы в Windows 7

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

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

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

ответ

0

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

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

Смежные вопросы