Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сделать файл невидимым, ...для любопытного пользователя :) 
:(
    Опции темы
<<Багира>>
Дата 21.6.2005, 09:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет, дорогие Дельфисты!!!

Фрагмент алгоритма моей программы:

1. Сбор данных с датчиков установок.
2. На диске находится файл…
2.1. …невидимый для пользователя
3. Обращаемся к файлу по имени, проверяем существование.
4. Если файл существует:
4.1. Каким-то образом сделать его видимым
4.2. Добавить нужную запись
5. Если файл не существует:
5.1. Создать новый файл
5.2. Добавить нужную запись
6. Когда все записи добавлены:
6.1. .. как-то снова сделать файл невидимым
6.2. Закрыть файл.

Подскажите, пожалуйста, как организовать пункты 2.1, 4.1, 6.1 – свойство невидимости для пользователя (что это вообще такое?), снятие невидимости и доступ к файлу, а затем – снова невидимость?
Все остальные пункты давно работают, но возникла необходимость оградить файлы от любопытных глазок и шаловливых ручек пользователей. Речь идет о контроле продукции, выпускаемой чужим предприятием для нашего – отсюда и требование защиты файла.

Заранее благодарна, Багира (зашедшая с чужого компа)
smile
  Вверх
Snowy
Дата 21.6.2005, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Сделать полностью невидимым невозможно.
Разве что на период работы виндов (до перезагрузки).
Варианты:
1. Шифровать файл.
2. Во время работы постоянно держать его открытым с флагами DenyRead и DenyWrite.
3. Установить ограничение по правам.
4. Спрятать его в такое место, где глупый пользователь его не найдет.
5. Расположить данные в уже существующем файле, который не вызывает у пользователя подозрения.
PM MAIL   Вверх
bagira
Дата 21.6.2005, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2858
Регистрация: 25.10.2003
Где: в тайге Уральских гор

Репутация: нет
Всего: 123



Цитата(Snowy @ 21.6.2005, 09:35)
4. Спрятать его в такое место, где глупый пользователь его не найдет.

Пожалуй, так пока попробую. Просто со временем проблема. А потом уже разберусь по-настоящему

(это я задавала вопрос smile )


--------------------
Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил...
Ф.Х. Дагларджа (Турция)
http://zveriolginovour.ru/
https://vmeste.yandex.ru/zveriolginovour 
PM MAIL WWW ICQ   Вверх
Snowy
Дата 22.6.2005, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(bagira @ 21.6.2005, 21:39)
Пожалуй, так пока попробую.

Можно комбинировать два или все варианты сразу.
Цитата(bagira @ 21.6.2005, 21:39)
это я задавала вопрос

Мы догадались smile
PM MAIL   Вверх
mvdr
Дата 22.6.2005, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 42



или делать резервную копию при сохранении. При загрузке проверять дату, и при различных датах загружать более позднюю


--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
bagira
Дата 22.6.2005, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2858
Регистрация: 25.10.2003
Где: в тайге Уральских гор

Репутация: нет
Всего: 123



Ну а вообще, ведь есть в Windows такое свойство файла, как невидимость. Если оно в принципе есть, неужели нельзя как-то программмно получить к нему доступ и менять его? Снять, добавить запись, затем снова защитить невидимостью? Что-то ведь должно быть подобное? Жаль, не смогла найти...


--------------------
Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил...
Ф.Х. Дагларджа (Турция)
http://zveriolginovour.ru/
https://vmeste.yandex.ru/zveriolginovour 
PM MAIL WWW ICQ   Вверх
markowww
Дата 22.6.2005, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.2.2003
Где: В Вологде-где

Репутация: нет
Всего: нет



Если под невидимым понимается скрытый, то можно так:
Код

function FileSetAttr(const FileName: string; Attr: Integer): Integer;

возвращает 0 если все ок.

пример исопльзования:

FileSetAttr('MyFile.sys', faReadOnly or faSysFile);

список констант

faReadOnly    1    только чтение
faHidden        2    скрытый
faSysFile        4    системный
faVolumeID    8    идентификатор тома
faDirectory   16    директория
faArchive       32    архивный
faSymLink         64    символьная ссылка
faAnyFile       71    любой файл


Только я не уверен, что аттрибут "скрытый" как то будет влиять на права доступа к файлу.

P.S. Взято из хелпа к D7.

Это сообщение отредактировал(а) markowww - 22.6.2005, 22:11
PM MAIL   Вверх
Snowy
Дата 23.6.2005, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(bagira @ 22.6.2005, 21:58)
Ну а вообще, ведь есть в Windows такое свойство файла, как невидимость.

Да. Просто устанавливаем файлу аттрибут hidden.
Чтобы после этого к нему обращаться, не нужно атрибут снимать.
Работаем как и обычно.
Просто пользователь этого файла не увидит, если в его шелле не будет выставлен параметр "Показывать скрытые файлы".
Но абсолютно скрыть не удастся.
Любой пользователь при желании сможет их увидеть.
По умолчанию конечно нет. Но это не абсолютная защита.
PM MAIL   Вверх
bagira
Дата 24.6.2005, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2858
Регистрация: 25.10.2003
Где: в тайге Уральских гор

Репутация: нет
Всего: 123



Цитата(markowww @ 22.6.2005, 22:09)
Если под невидимым понимается скрытый, то можно так:


markowww
Да, именно скрытый, это я не так выразилась! smile Спасибо!!!


Цитата(Snowy @ 23.6.2005, 08:56)
Да. Просто устанавливаем файлу аттрибут hidden.
Чтобы после этого к нему обращаться, не нужно атрибут снимать.
Работаем как и обычно.


Snowy
Спасибо! Надо попробовать так и сделать пока.
Правда устанавливать атрибут буду программно - ведь каждый день файлы разные.

Цитата(Snowy @ 23.6.2005, 08:56)
Но абсолютно скрыть не удастся.
Любой пользователь при желании сможет их увидеть.

Пользователи совсем не продвинутые, можно сказать, не очень квалифицированные.
Добавлено @ 21:10
Если уж чего-то нет, то специально искать не будут smile


--------------------
Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил...
Ф.Х. Дагларджа (Турция)
http://zveriolginovour.ru/
https://vmeste.yandex.ru/zveriolginovour 
PM MAIL WWW ICQ   Вверх
Albinos_x
Дата 25.6.2005, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



hidden файлы легко становятся видимыми, лучше совместно с ним еще устанавливать аттрибут faSysFile.
Этот тоже можно увидить если настроить свойство папки, но если его разместить в системной папке, типа system или system32, то пользователь вряд-ли его удалит, или ещё чего-нибудь с ним сделает. не пренебрегай совета
Snowy - шифровать файл, с проставлением контрольной суммы в нем, на тот случай если в нем чего-то изменят, то это будет легко обнаруживаться...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
RA
Дата 26.6.2005, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Цитата
2.1. …невидимый для пользователя


Цитата
4.1. Каким-то образом сделать его видимым


Цитата
6.1. .. как-то снова сделать файл невидимым



Файлы, ключи реестра, порты, и тд. скрываются с помощью перехвата апи функций возвращающих информацию об их налиичии.

в данном случаи достаточно поставить ловушку на FindFirsFile и FindNextFile.

Ну далее всё просто.
PM   Вверх
Vit
Дата 26.6.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Скрыть файл не удасться... Лучший выход обозвать его каким-нибудь именем типа system.dll и заткнуть в каталог windows\System (вы лично названия всех dll там помните?), либо обозвать его типа IR_keyboard.inf и засунуть в windows\inf или обозвать sockets.chm и засунуть в windwos\help и т.п. Принцип простой - в Windows - сотни и тысячи файлов на которые никто никогда не обращает внимания. Чайник там не найдёт, а от профи никакие способы не помогут...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
mvdr
Дата 26.6.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 42



Vit, а это гениальная идея smile Возьму себе на вооружение. Только один минус: сли винда полетит, то и наш файлик полетит вместе с ними, при переустановки


--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
Alex
Дата 27.6.2005, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата(Femida @ 26.6.2005, 20:04)
Только один минус: сли винда полетит, то и наш файлик полетит вместе с ними, при переустановки

А кто тебя заставляет именно в папку windows засовывать? Есть много других мест, та же папка Program Files.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
mvdr
Дата 29.6.2005, 05:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 42



все равно при переустановке Windows и Program Files переставляются тоже.
Выход - всяко есть игра типа "Booble Shooter" вот туда и можно. В случае чего игру никто не сотрет ( если место понадобиться, то от тех 10 кБ толку мало) и никто не полезет


--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0674 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.