Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для DrSMERTb
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841

Куда спрятать файл от пользователя, или как запретить удалить файл

25.04.2013, 16:33. Показов 2982. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Кто может подсказать куда можно заныкать файл чтобы его не мог найти стандартный пользователь, или сделать так что бы его нельзя было удалить?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.04.2013, 16:33
Ответы с готовыми решениями:

Спрятать файл от пользователя, или как запретить удалить файл
Кто может подсказать куда можно спрятать файл чтобы его не мог найти стандартный пользователь, или сделать так что бы его нельзя было...

Как спрятать или чем заменить файл p12
Здравствуйте. Имеется скрипт, основанный на библиотеке Google API Client Library for PHP, который получает токен сервисного аккаунта Гугла....

Как спрятать файл от ОС?
Как спрятать файл от ОС? Меня интересует вообще такой вопрос, как организованы файлы на hdd, откуда то вычитал что их даже можно спрятать...

6
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.04.2013, 16:38
1.
Цитата Сообщение от DrSMERTb Посмотреть сообщение
куда можно заныкать
как правило, стандартный пользователь (хотя, кто знает, что вы под этим понимаете) не суется в системные директории
2.
Цитата Сообщение от DrSMERTb Посмотреть сообщение
сделать так что бы его нельзя было удалить
задать файлу аттрибут "системный" и "только для чтения"
3. какое это имеет отношение к билдеру и с++ вообще?
1
 Аватар для DrSMERTb
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
25.04.2013, 16:40  [ТС]
В системные директории не хочу закидывать, т.к. возможно прога будет робить под 7-кой, и потребуются права админа. Почему в этом разделе, думал что подкинете код, ща уже нашёл темы про то как сделать системным. Большое спасибо
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.04.2013, 17:31
Цитата Сообщение от DrSMERTb Посмотреть сообщение
Всем доброго времени суток. Кто может подсказать куда можно заныкать файл чтобы его не мог найти стандартный пользователь, или сделать так что бы его нельзя было удалить?
Плохой тон, фЕ ))) разве что это вирус
Пользователь должен иметь возможность удалить вашу прогу и все её файлы когда она станет ему не нужна...
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
25.04.2013, 19:07
Как вариант - в поток данных NTFS
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.04.2013, 19:45
Цитата Сообщение от Avazart Посмотреть сообщение
Пользователь должен иметь возможность удалить вашу прогу и все её файлы когда она станет ему не нужна...
если это не зловред, который не одобряет вмешательства пользователя в свои шуры-муры .
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
27.04.2013, 14:07
Цитата Сообщение от kzru_hunter Посмотреть сообщение
Как вариант - в поток данных NTFS
Вариант весьма неплох, так как при удалении объекта фс, к которому привязан поток, будет удален и он.
Вот малость примеров работы с потоками:

Листинг 1. Пример создания потока:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <windows.h>
 
int main()
{
DWORD dwRet;
HANDLE hStream =
CreateFile( "testfile:stream", GENERIC_WRITE, FILE_SHARE_WRITE,
NULL, OPEN_ALWAYS, NULL, NULL );
WriteFile( hFile, "This is a stream", 17, &dwRet, NULL );
CloseHandle(hStream);
return 0;
}
Листинг 2. X-Stream: Программа, показывающая список потоков:
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
#include <winnt.h>
#include <stdlib.h>
#include <stdio.h>
#include <tchar.h>
 
int _tmain( int argc, _TCHAR *argv[] )
{        WIN32_STREAM_ID sid;
        ZeroMemory(&sid, sizeof(WIN32_STREAM_ID));
        DWORD dw1,dw2,dwRead;
        INT numofstreams = 0;
        //Буфер для имени потока в формате Unicode
        WCHAR wszStreamName[MAX_PATH];
        LPVOID lpContext = NULL;
        /*
         *        Открываем файл для чтения с параметром
         *        FILE_FLAG_BACKUP_SEMANTICS, что позволяет нам
         *        открывать не только файлы, но и каталоги с дисками.
         */
        HANDLE hFile = CreateFile(argv[1],GENERIC_READ,FILE_SHARE_READ,
                NULL,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,NULL);
        if (hFile == INVALID_HANDLE_VALUE)
        {printf("\nError: Could't open file, directory or disk %s\n",argv[1]);
                exit(0);
        }
        DWORD dwStreamHeaderSize = (LPBYTE)&sid.cStreamName -
                (LPBYTE)&sid + sid.dwStreamNameSize;
        printf("\nStreams information for %s:\n",argv[1]);
        while ( BackupRead(hFile, (LPBYTE) &sid,
                dwStreamHeaderSize, &dwRead, FALSE, TRUE,
                &lpContext) )
        {   //Если тип потока неверный, значит прерываем цикл
                if (sid.dwStreamId == BACKUP_INVALID) break;
                ZeroMemory(&wszStreamName,sizeof(wszStreamName));
                //Получаем имя потока
                if (!BackupRead(hFile, (LPBYTE) wszStreamName, sid.dwStreamNameSize,
                        &dwRead, FALSE, TRUE, &lpContext)) break;
                if (sid.dwStreamId == BACKUP_DATA ||
                        sid.dwStreamId == BACKUP_ALTERNATE_DATA)
                        {        numofstreams++;
                                printf("\n\nStream\t\t#%u",numofstreams);
                                switch (sid.dwStreamId)
                                {        case BACKUP_DATA:
                                        printf("\nName:\t\t::$DATA"); break;
                                        case BACKUP_ALTERNATE_DATA:
                                        printf("\nName:\t\t%S",wszStreamName); break;
                                }
                                printf("\nSize:\t\t%u\n",sid.Size);
                        }
                        //Перемещаемся к следующему потоку
                        BackupSeek(hFile, sid.Size.LowPart, sid.Size.HighPart,
                                                &dw1, &dw2, &lpContext);
                        //Очищаем структуру перед следующим проходом цикла
                        ZeroMemory(&sid,sizeof(sid));
        }
        //Очищаем lpContext, содержащий служебную информацию
        //для работы функции BackupRead
        BackupRead(hFile, NULL, NULL,
                &dwRead, TRUE, FALSE, &lpContext);
        //Закрываем файл
        CloseHandle(hFile);
        return 0;
}
Взято из статьи - Использование альтернативных файловых потоков NTFS
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.04.2013, 14:07
Помогаю со студенческими работами здесь

Где хранить указатель или куда его спрятать?
В общем, с ООП еще слабо знаком, но нужна помощь. Есть динамический список и listview, изначально заполняется список, затем он выводиться в...

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

Как скопировать, удалить, вырезать или вставить файл?
Как скопировать, удалить, вырезать или вставить файл в VB.net

Как удалить программу или файл бесследно с компьютера?
На работе усстнавливала пару прог типо фотошопа, как удалить их файлы с компа бесследно. Стоит XP . Ато скоро проверка может быть, а у нас...

Как удалить файл или изменить его тип
Всем привет! Подскажите мне пожалуйста как удалить в с++; То есть допустим пользователь указал путь и расширение файла а программа...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Контроль корректности заполнения дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru