HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Песочница
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 17.12.2016, 00:27
Alanez
Новичок
Регистрация: 16.12.2016
Сообщений: 10
С нами: 4951766

Репутация: 0
По умолчанию

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

  #2  
Старый 17.12.2016, 02:34
Veil
Флудер
Регистрация: 21.05.2015
Сообщений: 2,031
С нами: 5779766

Репутация: 72


По умолчанию

Пожалуйста конкретней!
 
Ответить с цитированием

  #3  
Старый 17.12.2016, 09:50
Alanez
Новичок
Регистрация: 16.12.2016
Сообщений: 10
С нами: 4951766

Репутация: 0
По умолчанию

Цитата:
Сообщение от Veil  

Пожалуйста конкретней!
Приложение создает на диске файл и работает с ним - что-то пишет/читает. При этом доступ к файлу блокирующий - другие приложения не могут открыть файл на чтение/запись.

Задача - внести изменение в файл не останавливая процесс, который блокирует файл.

Есть программы типа Unlocker, которые снимают блокировку убивая блокирующий процесс - не годиться.
 
Ответить с цитированием

  #4  
Старый 18.12.2016, 23:55
pas9x
Постоянный
Регистрация: 13.10.2012
Сообщений: 423
С нами: 7147766

Репутация: 52
По умолчанию

Это возможно, но сделать сложно. Надо уметь кодить и знать winapi.

При этом менять содержимое файла не закрывая дескриптор - очень плохая идея. Во-первых это может сломать логику программы и она может покрашиться; либо запишет в файл что-то своё не зная о твоих изменениях и файл закосячится.

Можно находить дескриптор файла и закрывать его. Тогда файл не закосячится, но программа всёравно от этого тоже может покрашиться. Унлокер кстати так и делает. Хз с чего ты взял, что он убивает процесс (может просто программа падала из-за вмешательства?).

В общем идея хреновая, лучше этого не делать.
 
Ответить с цитированием

  #5  
Старый 19.12.2016, 02:53
master_555
Новичок
Регистрация: 10.09.2013
Сообщений: 3
С нами: 6669686

Репутация: 0
По умолчанию

есть вариант, инжект кода в процесс, работаем с хедлом файла,

в это время основной поток этого процесса ставим на паузу

потом перед ResumeThread() восстанавливаем все (позиция в файле, и т.д.)
 
Ответить с цитированием

  #6  
Старый 20.12.2016, 00:45
Alanez
Новичок
Регистрация: 16.12.2016
Сообщений: 10
С нами: 4951766

Репутация: 0
По умолчанию

Цитата:
Сообщение от master_555  

есть вариант, инжект кода в процесс, работаем с хедлом файла,
в это время основной поток этого процесса ставим на паузу
потом перед ResumeThread() восстанавливаем все (позиция в файле, и т.д.)
при "усыплении треда" разве освободится доступ к файлу?
 
Ответить с цитированием

  #7  
Старый 20.12.2016, 02:00
master_555
Новичок
Регистрация: 10.09.2013
Сообщений: 3
С нами: 6669686

Репутация: 0
По умолчанию

работаем с тем же хедлом, но с другого потока
 
Ответить с цитированием

  #8  
Старый 26.12.2016, 22:46
Alanez
Новичок
Регистрация: 16.12.2016
Сообщений: 10
С нами: 4951766

Репутация: 0
По умолчанию

Я правильно понимаю идею?:

1. создать свой процесс.

2.В нем запустить в отдельном дочернем потоке программу, блокирующую доступ к файлу

3. Взять ссылку на хэдл к файлу у этого потока. Как получить хэндл дочернего потока к нужному файлу по имени файла???

4. Изменить параметры доступа к файлу

5. Внести необходимые изменения сторонним приложением в файл

6.Восстановить параметры доступа к файлу.
 
Ответить с цитированием

  #9  
Старый 02.01.2017, 18:14
master_555
Новичок
Регистрация: 10.09.2013
Сообщений: 3
С нами: 6669686

Репутация: 0
По умолчанию

>Как получить хэндл дочернего потока к нужному файлу по имени файла???

а не нужно конкретный поток, получаешь хендл файла и ставишь все потоки на паузу

NtQuerySystemInformation(SYSTEM_HANDLE_INFORMATION , ...) - перечисление хендлов, найдешь свой
 
Ответить с цитированием

  #10  
Старый 11.01.2017, 23:46
Alanez
Новичок
Регистрация: 16.12.2016
Сообщений: 10
С нами: 4951766

Репутация: 0
По умолчанию

Найду свой handle. Дальше будет проверка прав доступа по параметру SECURITY_ATTRIBUTES... в которых права ограничены, в доступе к ресурсу будет отказано... разве не так?

Понял, про инжект упустил..
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.