Форум программистов, компьютерный форум, киберфорум
Наши страницы

Носители информации

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 61, средняя оценка - 4.61
maxteam
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 66
#1

Как сделать так что бы невозможно было удалить определьнный файл? - Носители информации

18.07.2010, 21:40. Просмотров 9201. Ответов 10
Метки нет (Все метки)

Здраствуйте...


у меня есть USB флешка...

меня интересуэт вопрос как сделать так что бы невозможно было удалить определьнный файл(только 1) с флешки...

тоесть на флешке есть много других файлов, а мне нада запретить удаления конкретного.

возможно ли ето и как ето сделать??

спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2010, 21:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как сделать так что бы невозможно было удалить определьнный файл? (Носители информации):

Как сделать так чтобы файл на жестком диске и на дискете 1.44 мб весил одинаково - Жесткие диски
Как сделать так чтобы файл на жестком диске и на дискете 1.44 мб весил одинаково.(мы работаем через dos,через diskedit).Помогите...

Возможно ли сделать так чтобы можно было копировать с компа на флешку а обратно нет. - Flash-память
Возможно ли сделать так чтобы можно было копировать с компа на флешку а обратно нет. Не совсем отключить через BIOS или реестр а сделать...

не могу сдлеать так что бы можно было удалить файл - PHP
Здравствуйте все загруженные файлы а точнее их адреса-в БД В админке не могу сдлеать так что бы можно было удалить файл из БД!!! ...

как сделать так, что бы в 1 и 2 заказе не было скидки, а в последующих была? - MS Access
Вы работаете в химчистке. Ваша химчистка осуществляет прием у населения вещей для выведения пятен. Для наведения порядка Вы, по мере...

Как сделать так чтобы было видно что подставляться в уравнения - MathCAD
Я хочу чтобы через равно програма подставляла числа, а через следующие результат, тоесть как бы в ручну считалось. Как это делать, можете...

Как сделать так, что бы в поле можно было вставлять много ссылок? - PHP
У меня есть такой php код: <?php if(isset($_POST)) { $url = substr($_POST,0,-4); } if(!empty($url)) {print('Код: <textarea...

10
Евгений М.
1047 / 986 / 58
Регистрация: 28.02.2010
Сообщений: 2,858
Завершенные тесты: 2
19.07.2010, 07:46 #2
Здравствуйте.
Да. Возможно.

Исходник на C/C++ (на примере autorun.inf):

Anti AutoRUN для флешек в FAT32
Понравился метод связанный с установкой атрибута файлу 0x40 в FAT32 и вот было по быстренькому реализовано ПО.
Возможности:
1) получение буквы диска из командной строки или ввод вручную
2) Поддержка только FAT32 (а больше и не надо)
3) определение файловой системы (чтобы случайно не попортить другую ФС)
4) автоматически создает файл autorun.inf
5) Лочит и унлочит файл autorun.inf

Алгоритм работы:
1) Если буква диска не передана через командную строку, то попросит её ввести
2) Получит тип файловой системы на этом диске
3) Если файловая система не FAT32 то завершит работу
4) создаст файл autorun.inf
5) откроет диск на чтение/запись
6) будит читать по 2 килобайта пока ненайдет текст AUTORUN INF или не будет достигнут конец флешки.
По хорошему нужно было бы брать из бутсектора номер кластера где находится корневой каталог, затем искать где этот кластер физически находится на флешке и далее начинать парсить записи FAT( но увы было очень влом это делать ))).
7) Если нашел файл AUTORUN INF то:
Если он залочен, то разлочит
Если разлочен, то залочит

А вот и непосредственно исходник. Ко/v\пилится в VC++ 6.0 без проблем (писался в нем)

Код:

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include "windows.h" 
#include "stdio.h" 
#include "conio.h" // поиск участка памяти в буфере 
char * memmem(char *buf, char *pattern, size_t buflen, size_t len) { 
size_t i, j; 
char * bf=buf; 
char * pt = pattern; 
if (len>buflen) return NULL; 
for (i = 0; i <= (buflen - len); ++i) { 
for (j = 0; j < len; ++j) { 
if (pt[j] != bf[i + j]) break; 
} 
if (j == len) return (bf + i); 
} 
return NULL; 
} 
int main(int argc, char* argv[]) { 
HANDLE h; 
char c; 
DWORD rb; 
char* p; 
int x; 
char buf[2048]; 
char VolumeName[256]; 
char tmp[256]; 
char FSName[256]; 
ULONG MaximumFNameLength,FileSystemFlags,SerialNum; 
printf("Anti AutoRun (C) SLESH\n"); 
if (argc==1) // если буква диск на введена 
{
printf("Enter Driver Latter: "); 
c=getch(); // спросим букву диска 
printf("%c\n",c); 
sprintf(buf,"\\\\.\\%c:",c); 
sprintf(tmp,"%c:\\",c); 
} else // если буква диска введена в командной строке 
{ 
sprintf(buf,"\\\\.\\%s:",argv[1]);
sprintf(tmp,"%s:\\",argv[1]); 
c=0x00; 
} 
// получим тип ФС 
if (GetVolumeInformation(tmp,VolumeName, 256,&SerialNum,&MaximumFNameLength,&FileSystemFlags, FSName, 256)) { 
printf("FileSystem Type: %s\n",FSName); 
} else { 
printf("Get FileSystem Type Error\n"); 
return 0; 
} 
// проверим ФС 
if (strcmp(FSName,"FAT32")) { 
printf("UNSUPPORT FileSystem\n"); 
return 0; 
} 
strcat(tmp,"autorun.inf"); // создадим пустой файл 
autorun.inf h=CreateFile(tmp,GENERIC_WRITE,0, 0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0); 
if (h!=INVALID_HANDLE_VALUE) { 
CloseHandle(h); 
} 
// откроем диск 
h=CreateFile(buf,GENERIC_WRITE|GENERIC_READ,FILE_S HARE_READ|FILE_SHARE_WRITE, 0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); 
if (h==INVALID_HANDLE_VALUE) { 
printf("Open Drive Error\n"); 
} else { 
x=0; 
printf("Search File\n"); 
// читаем пока есть что читать 
while (ReadFile(h,buf,2048,&rb,NULL)&&rb==2048) { 
printf("%i\r",x); 
// ишем нужную нам запись 
if (p=memmem(buf,"AUTORUN INF",rb,11)) { 
if (p[11]==0x40) // если файл залочен 
{ 
printf("Autorun.inf UNLOCKED\n"); 
p[11]=0x20; // разлочем его 
} else // сли незалочен 
{ 
printf("Autorun.inf LOCKED\n"); 
p[11]=0x40; // залочим 
} 
SetFilePointer(h,x,NULL,FILE_BEGIN); // передвинем указатель на начало считанного блока 
WriteFile(h,buf,2048,&rb,NULL); // запишем измененные данные break; //прервем выполнение дальнейшего чтения 
} else x+=rb; // счетчик считанных байт 
} 
CloseHandle(h); // закроем дескриптор открытого диска 
} 
if (c) getch(); // если имя диска получили не в виде командной строки. Сделано это чтобы неисчезло сразу с экрана окошко 
return 0; 
}


ВАЖНО!!!!!
1) Вы используете прожку на свой страх и риск и я не отвечаю за то, что хз по какой причине у вас могут быть повреждены данные на флешке.
2) Как видно запись в FAT ищется банальным перебором, так что могут быть ошибки, когда случайно будет найден нужный текст но в другом месте

P.S. Тестил на двух флешках - вроде норм работает.

(C) SLESH 2009

Программа от Panda Labs:
http://research.pandasecurity.com/Panda-USB-and-AutoRun-Vaccine/

Как-нибудь напишу прогу для таких дел... Если нужна сегодня скажите полное имя файла (типа G:\MyFile.doc) я вам пришлю аналогичную прогу для этого файла.

ЗЫ: За последствия не несу.
1
ElecТроник
Эксперт Hardware
4659 / 1889 / 73
Регистрация: 16.05.2008
Сообщений: 8,633
Записей в блоге: 1
19.07.2010, 16:09 #3
Любую прогу для защиты файлов и папок, например Folder Lock.
1
Serge3344
1 / 1 / 0
Регистрация: 20.07.2010
Сообщений: 125
23.07.2010, 16:27 #4
Цитата Сообщение от ElecТроник Посмотреть сообщение
Любую прогу для защиты файлов и папок, например Folder Lock.
Он говорит,что нужно не скрыть,а чтобы не удалить.А файл запиханый в Lock можно вместе с Lock-ом

и удалить.
0
ElecТроник
Эксперт Hardware
4659 / 1889 / 73
Регистрация: 16.05.2008
Сообщений: 8,633
Записей в блоге: 1
23.07.2010, 16:42 #5
Цитата Сообщение от Serge3344 Посмотреть сообщение
нужно не скрыть
Та прога, она может скрывать и защищать. Если файл защищен, к нему нет доступа, выскакивает окно - доступ запрещен админом. Прога ставится на комп, но позволяет защищать и файлы на флешках. Прогу нельзя удалить без пароля, даже из под Safe Mode. Если ОС переустановить и не снять блокировку с файла, он повиснет навсегда на флешке.

Добавлено через 5 минут
А не, я что-то попутал. Прога не Folder Lock, а вроде Folder Guard.
0
Serge3344
1 / 1 / 0
Регистрация: 20.07.2010
Сообщений: 125
23.07.2010, 17:43 #6
Цитата Сообщение от ElecТроник Посмотреть сообщение
Та прога, она может скрывать и защищать. Если файл защищен, к нему нет доступа, выскакивает окно - доступ запрещен админом. Прога ставится на комп, но позволяет защищать и файлы на флешках. Прогу нельзя удалить без пароля, даже из под Safe Mode. Если ОС переустановить и не снять блокировку с файла, он повиснет навсегда на флешке.

Добавлено через 5 минут
А не, я что-то попутал. Прога не Folder Lock, а вроде Folder Guard.
После форматирования все равно пропадет
0
ElecТроник
Эксперт Hardware
4659 / 1889 / 73
Регистрация: 16.05.2008
Сообщений: 8,633
Записей в блоге: 1
24.07.2010, 08:34 #7
Цитата Сообщение от Serge3344 Посмотреть сообщение
После форматирования все равно пропадет
Ну знаешь, если там такая инфа, что надо защищать как сервер ФСБ. То пусть в на груди флешку носит.
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27746 / 15653 / 945
Регистрация: 15.09.2009
Сообщений: 67,839
Записей в блоге: 78
24.07.2010, 09:18 #8
Цитата Сообщение от ElecТроник Посмотреть сообщение
если там такая инфа, что надо защищать
используйте криптоконтейнеры.
правда против терморектального криптоанализа никто не устоит.
а если это банальная защита от авторана.... способов масса.
0
ElecТроник
Эксперт Hardware
4659 / 1889 / 73
Регистрация: 16.05.2008
Сообщений: 8,633
Записей в блоге: 1
24.07.2010, 09:24 #9
Ты написал, я ничего не вкурил . Что же там за файлы, что требуется такая защита. Мне и Folder Guard хватало, чтобы уберечь от ручек племянницы.
0
qvad
Эксперт HardwareЭксперт Windows
20573 / 11973 / 641
Регистрация: 11.04.2010
Сообщений: 53,469
24.07.2010, 11:19 #10
кароче, топикстартер, купи флеш с аппаратной залочкой записи (переключателелм) и не парь себе кальцевые отростки, в простонародье именуемые рогами
0
Serge3344
1 / 1 / 0
Регистрация: 20.07.2010
Сообщений: 125
24.07.2010, 11:43 #11
Чего-сам автор ничего не говорит по теме
0
24.07.2010, 11:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2010, 11:43
Привет! Вот еще темы с ответами:

Объясните как сделать так что бы в Form2 можно было изменять свойства кнопок из Form1 - C#
Как сделать вот такую задачу: В Form1 есть Кнопка(btn1), и в Form2 есть кнопка(btn2). Нажимаем на кнопку btn1, открывается Form2. В...

Как сделать так, что бы после начала игры, активным было OpenGL-окно, а не консольное? - C++
Всем привет, у Меня тут такая проблемка, даже не знаю как искать ее решение в гугле, вот и решил написать сюда. Я написал игру на с++...

Как сделать так, чтобы маткад не учитывал всё, что было написано раньше в документе? - MathCAD
У меня есть маткадовский документ. Я хочу продолжить в нём писать дальше, но программа у меня будет работать не корректно из-за того что...

Как сделать так чтобы по нажатию на кнопку можно было сохранить данные из базы в файл? - JavaScript
как сделать так чтобы по нажатию на кнопку можно было сохранить данные из базы в файл, причем юзер должен выбирать куда ему сохранять...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru