ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

17.12.2016, 00:27
|
|
Guest
Сообщений: n/a
Провел на форуме: 2925
Репутация:
0
|
|
Если способы получить доступ на запись к заблокированному файлу другим процессом, не останавливая блокирующий процесc??
|
|
|
|

17.12.2016, 02:34
|
|
Guest
Сообщений: n/a
Провел на форуме: 567539
Репутация:
72
|
|
Пожалуйста конкретней!
|
|
|
|

17.12.2016, 09:50
|
|
Guest
Сообщений: n/a
Провел на форуме: 2925
Репутация:
0
|
|
Сообщение от Veil
Veil said:
↑
Пожалуйста конкретней!
Приложение создает на диске файл и работает с ним - что-то пишет/читает. При этом доступ к файлу блокирующий - другие приложения не могут открыть файл на чтение/запись.
Задача - внести изменение в файл не останавливая процесс, который блокирует файл.
Есть программы типа Unlocker, которые снимают блокировку убивая блокирующий процесс - не годиться.
|
|
|
|

18.12.2016, 23:55
|
|
Guest
Сообщений: n/a
Провел на форуме: 97867
Репутация:
52
|
|
Это возможно, но сделать сложно. Надо уметь кодить и знать winapi.
При этом менять содержимое файла не закрывая дескриптор - очень плохая идея. Во-первых это может сломать логику программы и она может покрашиться; либо запишет в файл что-то своё не зная о твоих изменениях и файл закосячится.
Можно находить дескриптор файла и закрывать его. Тогда файл не закосячится, но программа всёравно от этого тоже может покрашиться. Унлокер кстати так и делает. Хз с чего ты взял, что он убивает процесс (может просто программа падала из-за вмешательства?).
В общем идея хреновая, лучше этого не делать.
|
|
|
|

19.12.2016, 02:53
|
|
Guest
Сообщений: n/a
Провел на форуме: 787
Репутация:
0
|
|
есть вариант, инжект кода в процесс, работаем с хедлом файла,
в это время основной поток этого процесса ставим на паузу
потом перед ResumeThread() восстанавливаем все (позиция в файле, и т.д.)
|
|
|
|

20.12.2016, 00:45
|
|
Guest
Сообщений: n/a
Провел на форуме: 2925
Репутация:
0
|
|
Сообщение от master_555
master_555 said:
↑
есть вариант, инжект кода в процесс, работаем с хедлом файла,
в это время основной поток этого процесса ставим на паузу
потом перед ResumeThread() восстанавливаем все (позиция в файле, и т.д.)
при "усыплении треда" разве освободится доступ к файлу?
|
|
|
|

20.12.2016, 02:00
|
|
Guest
Сообщений: n/a
Провел на форуме: 787
Репутация:
0
|
|
работаем с тем же хедлом, но с другого потока
|
|
|
|

26.12.2016, 22:46
|
|
Guest
Сообщений: n/a
Провел на форуме: 2925
Репутация:
0
|
|
Я правильно понимаю идею?:
1. создать свой процесс.
2.В нем запустить в отдельном дочернем потоке программу, блокирующую доступ к файлу
3. Взять ссылку на хэдл к файлу у этого потока. Как получить хэндл дочернего потока к нужному файлу по имени файла???
4. Изменить параметры доступа к файлу
5. Внести необходимые изменения сторонним приложением в файл
6.Восстановить параметры доступа к файлу.
|
|
|
|

02.01.2017, 18:14
|
|
Guest
Сообщений: n/a
Провел на форуме: 787
Репутация:
0
|
|
>Как получить хэндл дочернего потока к нужному файлу по имени файла???
а не нужно конкретный поток, получаешь хендл файла и ставишь все потоки на паузу
NtQuerySystemInformation(SYSTEM_HANDLE_INFORMATION , ...) - перечисление хендлов, найдешь свой
|
|
|
|

11.01.2017, 23:46
|
|
Guest
Сообщений: n/a
Провел на форуме: 2925
Репутация:
0
|
|
Найду свой handle. Дальше будет проверка прав доступа по параметру SECURITY_ATTRIBUTES... в которых права ограничены, в доступе к ресурсу будет отказано... разве не так?
Понял, про инжект упустил..
|
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|