我偶然发现了一个问题.diff文件使用修补我在windows 10下使用bash,运行结果如下:
$ patch < patch.diff
bash: /cygdrive/c/cygwin/bin/patch: Permission denied
我检查了文件,它没有被改动(与备份存档相比),它是我的,具有读取和可执行权限。但没有任何帮助。然后我尝试以管理员身份运行它,它成功了。所有其他程序都没有问题,只有这个。简单的实用程序,没有管理权限就无法运行。
然后我恍然大悟——这是一个名字,patch
名字。我把它改名为pat
,它就像魔法一样起作用了。所以我试着添加一个数字或一些随机字母(比如patch1
,qwepatchrty
),但结果是一样的——权限被拒绝。我从来没有见过这么愚蠢的事情,但你看——如果你patch
在可执行文件名称中输入一个单词,你将无法在没有管理权限的情况下运行它。
您可以获得任何你好世界程序,重命名patch.exe
并得到相同的结果:permission denied
!。对于那些不明白的人:
$ wget -Ohello.exe https://github.com/pts/pts-tinype/raw/master/hh3wf.golden.exe
$ cp hello.exe patch.exe
$ ./patch.exe
bash: ./patch.exe: Permission denied
$ ./hello.exe
Hello, World!
我尝试在 Windows Defender 中添加排除功能,但没有成功。面对如此天才的安全措施,我已失去了主意和动力。
我甚至尝试将清单添加到此程序或任何其他程序中,因为我发现了一些cygwin 论坛上的讨论,但这也无济于事。
有没有谁知道如何关闭这个“巧妙”的安全措施,因为它实在是太惊人了?