S>Найдите утилиту, которая показывает кто открыл/заблокировал файл с вашей программой. Посмотрите и потом делайте выводы...
Русинович и Unlocker хандла в упор не видят, при этом Unlocker не может его удалить, LockHunter из эксплорера говорит, что всё чисто, а если ему задать этот файл в менюшке — обижается, что у меня не хватает прав, и рекомендует обратиться к владельцу или администратору, коими являюсь я
Может быть его надо пускать от имени System, но я уже забыл, как это делается.
Зато OFV (в тестовом режиме системы) таки хандл видит, говорит следующее:
==================================================
Filename : r0.exe
Full Path : \r0\r0.exe
Handle : 0xcdc
Created Time : N/A
Modified Time : N/A
Attributes :
File Size : 0
Read Access : *
Write Access :
Delete Access :
Shared Read : *
Shared Write :
Shared Delete : *
Granted Access : 0x00000080
File Position : 0
Process ID : 4
Process Name : System Process
Process Path :
Extension : exe
% Position :
==================================================
В том и засада, что лочит его какая-то часть системы (или может какой-то неудалившийся огрызок ДрВеба), зачем-то мусолит его несколько минут, потом выплёвывает.
Поверить в это, самому не натолкнувшись, очень сложно, поэтому везде в форумах и предлагают "закрыть программу".
Как копать дальше внутрь процесса System? Он состоит из многих тредов (их показывает ProcessHacker), но, насколько я знаю, нет понятия принадлежности хандла нити, только процессу? Я подозреваю нить MpFilter.sys, она якобы отвечает за безопасность.
Или может у меня завёлся какой-то станный руткит? Но зачем ему лочить экзешники? Причём лочить только после попытки запуска, если не запускать, то можно перекомпилировать сколько угодно.
Ещё один вариант — его кладут в какой-то кэш, на случай если вдруг начнут часто запускать. Тогда как такое отключать? Индексирование у меня отключено глобально.
На всякий случай привожу исходный текст программы:
int main() { return 0; }
Собирал и под 32-битный и под 64-битный режимы, всё едино.