Есть такая задача:
Некая lib1.dll загружается Internet Explorer'ом. Эта lib1.dll берет переменную среды окружения APPDATA и по этому пути создает директорию Dir1 и в этой директории создет файл file1. Под XP — всё работает нормально — Dir1 и file1 видны тому пользователю, от имени которого запущен Internet Explorer.
А вот под Visa и Windows7 эти директория и файл пользователю не видны.
Вопрос — как программно в этой lib1.dll создавать директории и файлы, чтобы они были видны всем пользователям под Vista и Windows7
P.S. Это не вирус — если вдруг кто-то так подумал. Я честно говоря, не знаю как современные вирусы работают, но мне кажется такой подход для вируса — плох.
07.02.10 15:57: Перенесено модератором из 'C/C++' — Кодт
Здравствуйте, Istvan, Вы писали:
I>Есть такая задача: I>Некая lib1.dll загружается Internet Explorer'ом. Эта lib1.dll берет переменную среды окружения APPDATA и по этому пути создает директорию Dir1 и в этой директории создет файл file1. Под XP — всё работает нормально — Dir1 и file1 видны тому пользователю, от имени которого запущен Internet Explorer. I>А вот под Visa и Windows7 эти директория и файл пользователю не видны. I>Вопрос — как программно в этой lib1.dll создавать директории и файлы, чтобы они были видны всем пользователям под Vista и Windows7
I>P.S. Это не вирус — если вдруг кто-то так подумал. Я честно говоря, не знаю как современные вирусы работают, но мне кажется такой подход для вируса — плох.
Здравствуйте, De-Bugger, Вы писали:
DB>Много курить на тему Low Integrity Level
В связи с тем, что вы указали, нашел следующее:
In Windows Vista, Internet Explorer 7 runs in Protected Mode, which helps protect users from attack by running the Internet Explorer process with greatly restricted privileges. Protected Mode significantly reduces the ability of an attack to write, alter or destroy data on the user's machine or to install malicious code.
В соответствии с этим есть еще один вопрос — это вообще реально писать файлы из под процесса Интернет Эксплорера в Vista, так чтобы эти файлы были видны пользователю?
Здравствуйте, Istvan, Вы писали:
I>Здравствуйте, De-Bugger, Вы писали:
I>В соответствии с этим есть еще один вопрос — это вообще реально писать файлы из под процесса Интернет Эксплорера в Vista, так чтобы эти файлы были видны пользователю?
Думаю да, если пользователь явно разрешит это действие. Как то же IE сохраняет страницы на диск, если пользователь попросит сохранить документ.
Saving Files to the User Profile
Some extensions need to save files to a particular location so that users or applications can later find the file. The following steps show how to save a file outside of a low integrity location.
Create a temporary version of the file in %userprofile%\AppData\LocalLow. Don't forget to delete the temporary file after the file is sucessfully saved.
Call IEShowSaveFileDialog with the location of the user's profile folder to prompt the user to save the file in a different location. If the user accepts the Save As dialog, IEShowSaveFileDialog returns the destination folder they have chosen.
Call IESaveFile with the location of the temporary file saved in Step 1.
When you do this, Protected Mode's user broker copies the file from the temporary location to the location selected by the user.
To obtain write access to other medium integrity objects, use a custom broker process and then elevate your broker to a medium level process. When run as medium level processes, broker objects can access medium integrity objects. For more information, see Starting Processes from Protected Mode.