25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,259
1
.NET 3.x

Изменение безопасности файла

03.03.2016, 23:15. Показов 1465. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, понадобилось сделать ограничение запуска файлов на компьютере, и решил попробовать сделать на c# такое!
Собственно о чем речь?

На пример при запуске файла из интернета выскакивает такое сообщение - Скрин 1!

Более подробно тут: http://www.manhunter.ru/softwa... rneta.html

: при запуске notepad C:\ваш файл.exe:Zone.Identifier
открывается блокнот и в нём информация о безопасности какой уровень стоит!

ну на примере
[ZoneTransfer]
ZoneId=4


То файл не запускается вовсе!

В принципе вот видео - это то что нужно! : https://youtu.be/go37yvzxoPM


P.S: Сорян что не понятно всё объяснил

Идея заключается в том, что я хочу уметь изменять права безопасности файла,
1 - Доверенный источник
2 - Скачан с инета - нет доверия!
3 - Заблокировать файл!
Миниатюры
Изменение безопасности файла  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2016, 23:15
Ответы с готовыми решениями:

Уровни безопасности в Word и их изменение
Уровни безопасности в Word и их изменение.

Изменение безопасности ячеек по флажку!
Люди! Помогите Защитил ЛИСТ. Потом у меня есть на этом же листе CHECKBOX-флажок: если он...

Программное изменение уровня безопасности в Excel XP
Кто бы посоветовал, как сделать, чтобы макрос при открытии книги Excel сам устанавливал уровень...

Изменение параметров безопасности Internet Explorer
Здравствуйте ! Возникла следующая задача: написать скрипт, который поменяет настройки безопасности...

5
Эксперт .NETАвтор FAQ
10417 / 5147 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
03.03.2016, 23:53 2
Лучший ответ Сообщение было отмечено chaleureux как решение

Решение

Цитата Сообщение от chaleureux Посмотреть сообщение
сделать ограничение запуска файлов на компьютере
Запись в альтернативный поток NTFS:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
 
namespace WindowsFormsApplication333
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            var file = @"C:\test.exe:Zone.Identifier";
            WriteAlternateStream(file, @"[ZoneTransfer]\r\nZoneId=4");
        }
 
        public static void WriteAlternateStream(string path, string text)
        {
            const int GENERIC_WRITE = 1073741824;
            const int FILE_SHARE_DELETE = 4;
            const int FILE_SHARE_WRITE = 2;
            const int FILE_SHARE_READ = 1;
            const int OPEN_ALWAYS = 4;
 
            var stream = CreateFileW(path, GENERIC_WRITE, FILE_SHARE_WRITE, IntPtr.Zero, OPEN_ALWAYS, 0, IntPtr.Zero);
            using (var fs = new FileStream(stream, FileAccess.Write))
            using (var sw = new StreamWriter(fs))
                sw.Write(text);
        }
 
        [DllImport("kernel32.dll", EntryPoint = "CreateFileW")]
        public static extern System.IntPtr CreateFileW(
            [InAttribute()] [MarshalAsAttribute(UnmanagedType.LPWStr)] string lpFileName,
            uint dwDesiredAccess,
            uint dwShareMode,
            [InAttribute()] IntPtr lpSecurityAttributes,
            uint dwCreationDisposition,
            uint dwFlagsAndAttributes,
            [InAttribute()] IntPtr hTemplateFile
        );
    }
}
Изменение безопасности файла
1
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,259
04.03.2016, 00:06  [ТС] 3
Может я что-то делаю не правильно но не получается заблокировать файл
У вас работает?
0
Эксперт .NETАвтор FAQ
10417 / 5147 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
04.03.2016, 00:16 4
Цитата Сообщение от chaleureux Посмотреть сообщение
не получается заблокировать файл
Уберите @ из строки:
C#
1
WriteAlternateStream(file, @"[ZoneTransfer]\r\nZoneId=4");
=>
C#
1
WriteAlternateStream(file, "[ZoneTransfer]\r\nZoneId=4");
1
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,259
04.03.2016, 00:18  [ТС] 5
Можно сам проект? Если не сложно! :*

Добавлено через 1 минуту
Получилось, а я чет не подумал) СПС за помощь.
0
Эксперт .NETАвтор FAQ
10417 / 5147 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
04.03.2016, 00:25 6
chaleureux, Обратите также внимание на то, что при копировании файла на диск с файловой системой, отличной от NTFS (например FAT32) - альтернативные потоки исчезают, и защита файла не работает.
0
04.03.2016, 00:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2016, 00:25
Помогаю со студенческими работами здесь

Изменение параметров безопасности папки для конкретного пользователя
Доброго времени суток уважаемые форумчане! Задача следующая. У пользователя с ограниченными...

Изменение локальной политики безопасности - Сетевой доступ: модель совместного доступа
Привет всем. Нужна помощь с изменением параметра локальной политики безопасности: (Локальная...

Настройки безопасности ини файла
Доброго всем дня и хорошего настроения! :) Я сохраняю настроки приложения в ini файл, все...

Ошибка при получении сведений о безопасности файла getlasterror 5, винда не даёт повысить права на папку
Понятное дело, что на папку Program Files нет прав соответствующих группе "администраторы" и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru