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

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

25.04.2013, 16:33. Показов 2910. Ответов 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
8488 / 6155 / 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru