我试图伪装一个可执行文件,遇到了一些问题,但只有一个问题我需要帮助,我正在从cmd:运行
PowerShell -ExecutionPolicy bypass -noprofile -windowstyle hidden start-process C:Usersb0nkeAppDataRoaming.minecraftresourcepacks§4VotPack§cOverlay.zipassetsminecrafttexturesitemsclock.png
你可以看到,我正试图在.zip中运行.png。但我想将.png作为可执行文件打开,这可能吗?
额外信息:我可以从cmd中以.exe的形式运行.png,但我使用powershell是因为它可以在存档中运行文件,如果我在存档之外运行它,它会是这样的:
C:Usersb0nkeAppDataRoaming.minecraftresourcepacksclock.png
请提供一些提示或解决方案。
否,在PowerShell中-明智地-您不能使用不可执行的文件扩展名(如.png
(直接执行可执行文件(伪装(-PowerShell遵循Windows(GUI(shell,它打开带有为手头的文件扩展名注册的应用程序的文件(在.png
的情况下,默认情况下是Photos
,这只是抱怨无法识别的图像格式(。
令人难以置信的是,正如你所说的,相比之下,cmd.exe
显然在采取行动之前明确检查了文件格式本身,并直接执行可执行文件,即使它们碰巧具有不可执行的文件扩展名。
注:
- 也许不用说,从安全角度来看,PowerShell的行为更可取,因为它可以防止毫无戒心的用户无意中执行可执行文件,这些用户有理由认为给定文件确实是其文件扩展名所宣传的类型,而不是伪装的可执行文件
如果你真的需要这个功能(很难想象非欺骗性的用途(:
原则上,您可以从PowerShell调用cmd.exe
的CLI以使用前者的功能;例如:
cmd /c .clock.png
不过,这只适用于cmd.exe
也能理解的文件路径。
它不适用于以ZIP存档内的文件为目标的路径,但我也不知道它在PowerShell中起作用,这与您所说的不同。
它基本上与运行exe-相同
start G:image.png
或
start $usbDriveLetter"image.png"
或
image.png
您需要将其更改为$env:USERNAME
,而不是$USERNAME