Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Блокирование файла [D7, Win2k]


Страницы:   1 2

Kniaz ©   (2004-09-23 15:38:00) 

Хочу работать с файлом обычными функциями типа AssignFile, RewRite, ReadLn, WriteLn,  но при это мне надо заблокировать этот файл от доступа из других приложений. Как это сделать????
С другими функциями работы с файлами общатся не умею.


Defunct   (2004-09-23 21:52:00) [1]

>Хотя об этом и написано в лицензионном соглашении, но есть люди (и их довольно много), которые считают, что эта_самая_ось - настоящий подарок для вирусмейкеров.

В сравнении с другими - да, а так в ней тоже хватает всяких примочек и узких мест.


Defunct   (2004-09-23 21:41:00) [2]

мдя.. под вечер грамматика хромает ;)
поправлюсь в только в термине, а то смысл теряется.

"полимофного" читать - полиморфного.


Fay   (2004-09-23 21:36:00) [3]


> да и ОС - не подарок

Хотя об этом и написано в лицензионном соглашении, но есть люди (и их довольно много), которые считают, что эта_самая_ось - настоящий подарок для вирусмейкеров. Но эта тема (вирусы-вредилусы и т.д.) мне абсолютно не близка.

2 Kniaz ©   (23.09.04 15:38) [Ответить]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1095950229&n=5

За время, сопоставимое с тем, которое мы (я и Defunct) потратили на переписку в этой ветке, вполне можно освоить "CreateFile & K"
Удачи.


Defunct   (2004-09-23 21:25:00) [4]

Fay ©   (23.09.04 20:55) [28]

Вот вы на шутку перевели, а зря. Для того чтобы написать диллетантский файловый вирус потребуется хотя бы год подготовки. Чтобы написать нормальный файловый вирус - 2 года подготовки + год на написание.

Только главное упор не на деструкцию делать, а на "выживание" в сложнейших условиях (антивирусные мониторы - церберы, сканеры-убийцы! да и ОС - не подарок и т.п.).

Сложность такого рода программ, гораздо выше чем, любой прикладной программы, да и вчаствости антивирус (говорю по собственному опыту) гораздо проще написать. Полноценный AV монитор с эвристикой можно сделать за пол-года, когда полноценный вирус требует год(ы).

PS: под полноценным вирусом подразумаваю, программу-генератор динамического полимофного кода с полным сохранением функциональности первоначальной копии.


Fay   (2004-09-23 20:55:00) [5]

2  [27] Defunct ©   (23.09.04 20:50)

> Очень даже повысит кругозор

Для этого даже есть даже специальные учреждения. Полный пансион! 8)


Defunct   (2004-09-23 20:50:00) [6]

Fay ©   (23.09.04 20:38) [26]
Дык, и занят другим.

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


Fay   (2004-09-23 20:38:00) [7]

2  [25] Defunct ©   (23.09.04 20:32)
> Теперь пойдут безграмотрые трояны, вирусня и т.п. ;)

Займитесь лучше чем-нибудь другим 8)


Defunct   (2004-09-23 20:32:00) [8]

Fay ©   (23.09.04 20:19) [24]

Вы убиваете веру! ;)
Теперь пойдут безграмотрые трояны, вирусня и т.п. ;)


Fay   (2004-09-23 20:19:00) [9]

Признаться, я не горел желанием. 8)
И я не спорю. Я на самом деле думал, что что-то упустил, и мне чичяз на халяву всё расскажут. 8)


Defunct   (2004-09-23 20:15:00) [10]

Fay, давайте не будем спорить о возвышенном. Ясное дело сделать при большом желанииможно практически все.


Fay   (2004-09-23 20:14:00) [11]

2  [21] Defunct ©   (23.09.04 20:13)
Я ещё и Del нажал! Неслыхано! 8)
А это разве запрещено?


Defunct   (2004-09-23 20:13:00) [12]

Fay ©   (23.09.04 20:07) [19]

Cжульничал! ;)

FILE_SHARE_DELETE


Fay   (2004-09-23 20:11:00) [13]

2 [17] GanibalLector ©   (23.09.04 20:02)
var
 h1 : DWORD;
begin
 h1 := CreateFile('c:\111.txt', GENERIC_WRITE, FILE_SHARE_WRITE or FILE_SHARE_DELETE, nil, OPEN_EXISTING, 0, 0);
 try
   if h1 = INVALID_HANDLE_VALUE then RaiseLastOSError;
   Sleep(10100);
 finally
   if h1 <> INVALID_HANDLE_VALUE then CloseHandle(h1);
 end;
end;


Fay   (2004-09-23 20:07:00) [14]

2 [17] GanibalLector ©   (23.09.04 20:02)
В догонку. Удалил без вопросов.


Fay   (2004-09-23 20:05:00) [15]

2  [17] GanibalLector ©   (23.09.04 20:02)

> А ты попробуй открыть файл...затем sleep(10000); и за это
> время мощи его из другого приложения.Сразу говорю,НЕ УДАЛИШЬ!!!

Проверять лениво. Легче поверить. Но что нам демонстрирует данный опыт?


GanibalLector   (2004-09-23 20:02:00) [16]

>Система сама заблокирует доступ на запись для других приложений.
>>Это где-то написано, или опыт подсказывает?
Поверьте,недавно сам проверял!!!
А ты попробуй открыть файл...затем sleep(10000); и за это время мощи его из другого приложения.Сразу говорю,НЕ УДАЛИШЬ!!!

Кстати,насчет БЛОКНОТА,винда открывает файло,закидывает текс в редактор и закрываетфайло.


Fay   (2004-09-23 19:43:00) [17]

На самом деле, таке впечатление ("автоматически") запросто может сложиться. Благо в Борланде работают крупные мастера по "заворачиванию" API. 8)


Defunct   (2004-09-23 19:28:00) [18]

> "делфи или пользователь" - это как?
отож, что никак.

> Только немножко преувеличена до некорректности. Не делает она этого "автоматически". Ну эта, которая система.

Ну дык, пост [6] довел меня до некорректного преувеличения.
Сорри.


Fay   (2004-09-23 19:24:00) [19]

2  [13] Defunct ©   (23.09.04 19:20)
> IMHO фраза [1] вполне корректна даже после замечания [10].

Корректна, конечно. Только немножко преувеличена до некорректности. Не делает она этого "автоматически". Ну эта, которая система.

P.S.
"делфи или пользователь" - это как?


Defunct   (2004-09-23 19:20:00) [20]

Fay ©   (23.09.04 18:22) [10]

>> В системе не разрешается совместный доступ по записи в файл.
Ок, это преувеличение.

> Да что Вы говорите! Какая нехорошая система! Убил бы.
> FILE_SHARE_WRITE
Ок, можно получить совместный доступ при большом желании.

по-умолчанию Delphi открывает (fmOpenWrite, fmReadWrite), так что все чики-пики, файл будет заблокированным:

CreateFile(PCHar(FileName), GENERIC_WRITE <or GENERIC_READ> , 0, nil, OPEN_EXISTING, 0, 0);

Кто по-умолчанию блокирует доступ? Система или делфи или ползователь. IMHO фраза [1] вполне корректна даже после замечания [10].


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо