Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Как на Delphi удалить файл, блокируемый другой прогой

Автор: mastervigo
Дата сообщения: 17.03.2005 08:38
На данный момент задача: удалить файлы, которые находятся у Антивируса Касперского в папке "Infected"
Автор: Pentium133
Дата сообщения: 17.03.2005 09:09
Если файл заблокирован - его нельзя удалить.
Автор: mastervigo
Дата сообщения: 17.03.2005 09:18
Pentium133

Цитата:
Если файл заблокирован - его нельзя удалить.

за время моей трудовой деятельности меня приучили к правилу: не нельзя, а трудно (сложно) реализуемо. Так что я надеюсь на успех.
Автор: Pupsik
Дата сообщения: 17.03.2005 09:46
Убить другую прогу....
Автор: mutano
Дата сообщения: 17.03.2005 12:18
mastervigo
Вирушшш пишешь?
Автор: xcm
Дата сообщения: 17.03.2005 12:21
остановить службы каспера,а потом удалить.
Автор: mastervigo
Дата сообщения: 17.03.2005 12:51
mutano

Цитата:
Вирушшш пишешь?

нет, наоборот. Подробнее об этом проекте я спрашивал здесь
а в каталоге Каспера мне их надо удалить, т.к. он этот вирус у себя хранит, а моя прога его там находит, а удалить не может.
Автор: OdesitVadim
Дата сообщения: 17.03.2005 13:10
Если получить права системы (а лучше ядра в ринг 0) то можно хоть винт форматировать - никто ничего не скажет, но это уже драйвера, но реализуемо. Если прибегнуть к хитрому способу входа в ринг 0, то даже на делфе пишеться(ну и на С тоже ). Но вход в ринг 0 - это геморой, который лучше без надобности не вызывать
Автор: mutano
Дата сообщения: 17.03.2005 15:06
mastervigo

Цитата:
удалить файлы, которые находятся у Антивируса Касперского в папке "Infected"

Там помойму сигнатуры вирусо лежат, если начнешь там удалять вирусы переудаляешь все сигнатуры и касперских станет хуже работать
Автор: OdesitVadim
Дата сообщения: 17.03.2005 15:20
mutano
в Infected лежат заражённые файлы, а не базы

Цитата:
остановить службы каспера

только нестандарными способами. Остановить службу 5 каспера говорят нельзя.
Автор: mutano
Дата сообщения: 17.03.2005 18:10

Цитата:
в Infected лежат заражённые файлы, а не базы

Касперский их коллекционирует штоли? Зачем вобщем туда кладет?
Автор: OdesitVadim
Дата сообщения: 17.03.2005 18:19
есть файлы на карантине - они там
Автор: dneprcomp
Дата сообщения: 17.03.2005 22:30
mastervigo
А существует ли SDK Касперского? Можно было бы попробовать вызвать его собственную процедуру очистки карантина.

Добавлено:
Или может можно вызвать с параметром.
Автор: ShIvADeSt
Дата сообщения: 18.03.2005 01:51

Цитата:
а в каталоге Каспера мне их надо удалить, т.к. он этот вирус у себя хранит, а моя прога его там находит, а удалить не может.

Первое, что приходит на ум, это проверить просто, если в пути к файлу есть волшебное слово Касперский, то с файлом уже разобрались и его можно не трогать.
Второе, (знаю что реализуемо, но не знаю как, вроде этот вопрос на форуме обсуждался) это сделать программу запускаемой в тот момент когда и скандиск, это сделать можно, ведь PQMagic двигает разделы в этот момент, то есть он как то может запускаться в это время и именно тогда грохнуть файлы.
Третий, вообще запретить касперычу хранить файлы в карантине, нафига вирусы коллекционировать? Пусть сразу либо грохает, либо лечит по возможности.
Автор: mastervigo
Дата сообщения: 18.03.2005 11:07
dneprcomp

Цитата:
А существует ли SDK Касперского?

а как это проверить? Нужно знать название какой-нибудь библиотеки?
ShIvADeSt

Цитата:
Первое, что приходит на ум, это проверить просто, если в пути к файлу есть волшебное слово Касперский, то с файлом уже разобрались и его можно не трогать.

Я тоже об этом думал, но хочется же сделать круто
Автор: Tartrout
Дата сообщения: 18.03.2005 11:12

Цитата:
А существует ли SDK Касперского?


Конечно, НЕТ! Ведь иначе вирус воспользуется этим СДК и возьмет на себя управление антивирусом.

Сервис Каспера даже программным образом не прибить, не говоря уже о контрольной панели.
Автор: OdesitVadim
Дата сообщения: 18.03.2005 14:32
есть один обходной манёвр - можно касперу послать сообщение хитрое - он виснет/выгружается - но это уже не по этой теме.

Если делать как ScanDisc то нужно быть готовым к тому, что многие функции Windows будут недоступны.
Автор: Pentium133
Дата сообщения: 21.03.2005 10:09
Да, можно батником удалить до загрузки винды.
Автор: OdesitVadim
Дата сообщения: 21.03.2005 11:53
Pentium133
до загрузки XP
в 98 типа можно, в МЕ - уже очень проблематично
Автор: mastervigo
Дата сообщения: 21.03.2005 17:19
Каспера я не хочу выкидывать, тем более из автозагрузки. У меня же всё-таки прога-помощник антивирусу, а не сам вирус
Автор: OdesitVadim
Дата сообщения: 21.03.2005 17:49
mastervigo
а мож просто закрыть глаза на эту директорию - ну пропустить её просто. А вот чтобы оттуда гадость не расползалась - этим каспер займётся - это же его работа, а если не может, то зачем он нам?
Автор: SXP
Дата сообщения: 21.03.2005 21:01
мдя... какая ОС? XP? >> MoveFileEx("file", NULL, DELETE_ON_REBOOT)
Автор: mastervigo
Дата сообщения: 23.03.2005 08:40
OdesitVadim

Цитата:
а мож просто закрыть глаза на эту директорию - ну пропустить её просто

я пока так и сделал.
SXP

Цитата:
какая ОС?

ОСи самые разные - предприятие у нас большое
Автор: SXP
Дата сообщения: 23.03.2005 11:03
mastervigo
под нТ как я сказал под 9х через wininit.ini

google.com > Delayed file delete..
Автор: ShIvADeSt
Дата сообщения: 24.03.2005 00:46
SXP

Цитата:
под нТ как я сказал под 9х через wininit.ini

Насчет вин.ини не совсем согласен, лучше в autoexec.bat прописать, гораздо удобнее. И удаляться будет из под ДОСа, то есть касперыч точно ничего не залочит. Итак, действия программы в случае, если не может удалить файл, определяет ОСь если на базе НТ, то юзаем метод SXP если 9х, то добавляем в автоехес запись на удаление файлов которые нужны, при следующем запуске винды 9х проверяем (желательно создать список файлов для удаления) если все файлы удалены, то чистим автоехес от команд удаления .
Автор: OdesitVadim
Дата сообщения: 24.03.2005 11:27
ShIvADeSt
Я бы написал маленькую прогу на турбопаскале (или турбоСи - но под ДОС - поэтому делфа не пойдёт (правда 1 и 2 версия может справиться)), которую забросил в автоехес. А гдето для неё лежит списочек который чистить надо. Можно даже красивый интерфес замутить с фразой типа "Осторожно, идёт зачистка вирусняка!!!"
Автор: SXP
Дата сообщения: 24.03.2005 11:46
ShIvADeSt
win.ini != wininit.ini
Автор: Pinocchio
Дата сообщения: 12.04.2005 15:31
mastervigo
Элементарно, пиши свой сервис. При гашении всегда настраивай касперыча. Думаю что поставить его в депенденд не составит труда. Не сделает API, делай сам - через реестр. Или ещё проще - запрещай его самостоятельно и запускай самостоятельно. Сервисом он сделан чтобы юзверя не знающие мультизагрузки не смогли увеличить шансы вирусям.
Автор: IgorTs2003
Дата сообщения: 22.04.2005 15:01
Удалить можно, конечно, если написать драйвер работающий в нулевом кольце и из своей программы вызывать его. Тут есть еще один подводный камень: как к этому отнесется Каспер, что вот он файл был, а вот его вдруг не стало. А handle на него все еще открыт. Думаю, что кончится это может плачевно.
Вариант, с остановкой сервиса, удалением файла, а потом снова запуском сервиса тоже будет работать. Вот только останов и запуск сервиса может оказаться делом не быстрым. Тут уже надо смотреть по задаче, можем ли мы себе позволить подобные тормоза.

Вообще, конечно, защита файлов вещь полезная. Вот только как у всякой хорошей вещи у нее есть свои минусы. Особенно, если программа открывает файл с уровнем доступа, который выше чем нужно. Сразу же приходит на ум проблема Word'а, когда открытый файл не то что удалить, даже скопировать не удается.
Автор: OdesitVadim
Дата сообщения: 22.04.2005 15:29
IgorTs2003

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

Каспера сервис остановить? Не смеши. Не останавливаеися он так просто. Защита от юзера.

Страницы: 12

Предыдущая тема: PostgreSQL в сравнении


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.