Суббота, 21.12.2024, 15:31 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Волк-1024, Anton93, xXxSh@dowxXx  
Запрет удаления файла.
NeoДата: Вторник, 06.03.2012, 17:15 | Сообщение # 1
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Всем привет , wink хотел спросить,какие API функции нужно перехватывать,чтобы отловить событие удаления
файла в проводнике?Я пробовал перехватывать DeleteFile и NtDeleteFile.Всё это работает,если удалять файл именно используя эти функции.Но на работу проводника это не влияет.Может он использует другие функции? wink


Сообщение отредактировал Neo - Вторник, 06.03.2012, 17:16
 
xXxSh@dowxXxДата: Вторник, 06.03.2012, 17:32 | Сообщение # 2
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Интересный вопрос, то же хотелось бы узнать...
 
dolphinДата: Вторник, 06.03.2012, 18:01 | Сообщение # 3
Администратор
Сообщений: 906
Статус: Offline
Проводник удаляет в корзину и через шелл вроде, попробуй SHFileOperationA из shell32.dll

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
AndroidДата: Вторник, 06.03.2012, 19:44 | Сообщение # 4
Постоянный
Зарегистрирован: 13.12.2011
Группа: Пользователи
Сообщений: 100
Статус: Offline
Товарищи, существуют же всякие мониторы испоьльзования АПИшных функций. Доступно только для пользователей вот тут оно как раз вроде и есть

ну плюсаните меня кто-нить))))


Сообщение отредактировал Android - Вторник, 06.03.2012, 19:44
 
dolphinДата: Среда, 07.03.2012, 13:49 | Сообщение # 5
Администратор
Сообщений: 906
Статус: Offline
Android, Всё-таки это не ответ на поставленный вопрос, а средство. Сам давно использую эту программу, но чтобы найти в том что она выдаёт нужное можно долго просидеть в поисках. Мог бы тогда сразу написать какие апи функции используются и что нашёл при помощи этого софта был бы + однозначно bb

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
NeoДата: Среда, 07.03.2012, 17:58 | Сообщение # 6
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Я тут перехватил SHFileOperationA,но на explorer это тоже не влияет.Если вызывать напрямую,то перехват работает(всё как и раньще).Вот мой код:
А вот вызов:

Может надо внедрить её в explorer напрямую,а не через хук?


Сообщение отредактировал Neo - Среда, 07.03.2012, 18:06
 
NeoДата: Четверг, 08.03.2012, 06:20 | Сообщение # 7
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Короче,прочитал тут,понял,что бесполезно
перехватывать SHFileOperationA.Прочитал тут и понял,что надо перехватывать
ZwCreateFile и ZwOpenFile.Может у кого будут ещё какие-либо варианты?Кто знает как правильно вызвать эти функции?


Сообщение отредактировал Neo - Четверг, 08.03.2012, 06:24
 
xXxSh@dowxXxДата: Четверг, 08.03.2012, 11:01 | Сообщение # 8
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
по поводу ZwCreateFile и ZwOpenFile где то тут на форуме уже обсуждалось, точно не помню уже где...

а вобще если я не ошибаюсь то для удаления каких либо объектов нужно что бы у этих функций был установлен флаг что то типа DesiredAccess & DELETE - операция удаления файла, а вот на счет вызывает ли ее проводник, это уже другой вопрос...


Сообщение отредактировал xXxSh@dowxXx - Четверг, 08.03.2012, 11:02
 
NeoДата: Четверг, 08.03.2012, 14:07 | Сообщение # 9
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
ВСЁ,я разобрался!!!))) cry cool biggrin wink ;) wink Вообщем,с начала я перехватил ZwCreateFile,получилась такая картина:
при копировании запретного файла(в проводнике) мой перехват срабатывает!Но при удалении нет.Потом я перехватил ZwOpenFile,
получилось,что это мне не только помогло отлавливать копирование,но и переименование,вырезание,удаление (shift+del) и
удаление в корзину!
Вот с удовольствием привожу пример моего когда,для запрета действий над файлом(папкой),имеющих в своём имени слово Project1.
Кстати,ещё есть одна фишка:если заблочить таким образом папку,то при попытке её открытия,тоже сработает перехват))).

Neo©


Сообщение отредактировал Neo - Четверг, 08.03.2012, 14:07
 
xXxSh@dowxXxДата: Четверг, 08.03.2012, 14:38 | Сообщение # 10
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
то есть получается что ZwCreateFile тебе не понадобилась вовсе?

получается что мы подгружаем длл к какому либо процессу, и она будет перехватывать открытие, редактирование, либо удаление данной папки или файла, так?, или нужно обязательно к explorer.exe подгружать?

а ты разными методами тестировал? я имею ввиду не только через проводник но и какие либо другие программы работающие с проводником, или они в принципе одни и те же функции используют?

странно я пробовал инектить длл в explorer.exe ничего не дало... sad


Сообщение отредактировал xXxSh@dowxXx - Четверг, 08.03.2012, 15:04
 
NeoДата: Четверг, 08.03.2012, 15:04 | Сообщение # 11
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Я внедрял dll во все оконные процессы,а не конкретно инжектил в explorer.Работает это только на explorere,а на cmd не распростроняется(.Там,видимо,ещё что-то используется!А вот тотал-как проводник.
P.S только что поставил запретную строку- рабочий стол))).Так можно и попугать кого-нибудь))).
 
xXxSh@dowxXxДата: Четверг, 08.03.2012, 20:37 | Сообщение # 12
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
да точно через cmd удаляется, а может быть попробовать перехватить все функции сразу в том числе и DeleteFile вместе с NtDeleteFile + те что ты использовал в последнем исходнике..,может так хоть удастся перехватывать и cmd?

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


Сообщение отредактировал xXxSh@dowxXx - Четверг, 08.03.2012, 20:51
 
VolfДата: Четверг, 11.04.2013, 17:06 | Сообщение # 13
Частый гость
Зарегистрирован: 11.04.2013
Группа: Пользователи
Сообщений: 41
Статус: Offline
я делал запрет на удаление.
Необходимо перехватить
MoveFileW //вызывается для удаления файлов через эксплорер(перемещение в корзину)
DeleteFileW //Вызывается при удалении через сочетание клавиш Shift+del
 
vasysidorДата: Вторник, 17.06.2014, 22:39 | Сообщение # 14
Новичок
Зарегистрирован: 17.06.2014
Группа: Пользователи
Сообщений: 1
Статус: Offline
Цитата Neo ()
Я внедрял dll во все оконные процессы

Если не сложно, напишите, пожалуйста, как это сделать, очень прошу, кодом, на любом удобном для Вас языке (лучше, конечно Delphi).
Перелопатил Google, не смог разобраться, увы, новичок. Заранее спасибо.
 
NeoДата: Воскресенье, 21.09.2014, 15:03 | Сообщение # 15
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Перехватить-то её,конечно,получилось,но толку от этого особого не было.Только для тех,кто напрямую её вызывает,то да.Для запрета удаления файла надо хучить другие функции/
 
VBДата: Среда, 24.09.2014, 13:06 | Сообщение # 16
Был не раз
Зарегистрирован: 29.04.2014
Группа: Пользователи
Сообщений: 19
Статус: Offline
Цитата Neo ()
Перехватить-то её,конечно,получилось,но толку от этого особого не было.Только для тех,кто напрямую её вызывает,то да.Для запрета удаления файла надо хучить другие функции/

вопрос какие же именно функции?
 
Волк-1024Дата: Среда, 24.09.2014, 13:34 | Сообщение # 17
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Полагаю что NtDeleteFile и NtQueryInformationFile

Pascal, C\C++, Assembler, Python
 
stas971Дата: Пятница, 26.09.2014, 21:36 | Сообщение # 18
Новичок
Зарегистрирован: 26.09.2014
Группа: Пользователи
Сообщений: 1
Статус: Offline
Neo, надо посмотреть как устроенна система win 7 и на нее сделать, ибо этот код не пашет
 
mercerДата: Пятница, 11.11.2016, 11:06 | Сообщение # 19
Новичок
Зарегистрирован: 11.11.2016
Группа: Пользователи
Сообщений: 1
Статус: Offline
На Вин7 не пашет к сожалению
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz