小编Gen*_*iuk的帖子

AMSI:按块对大文件执行恶意软件扫描

AMSI具有扫描字节AmsiScanBuffer数组的功能。但在这种情况下,必须将整个内容读取到内存中,这对于大文件来说可能是不可能的。该函数具有旨在用于关联多个扫描请求的AmsiScanBuffer参数。amsiSession据我了解,它应该可以按块读取一个文件,并AmsiScanBuffer使用相同的会话和上下文调用这些块。但它没有:

public enum AMSI_RESULT
{
    AMSI_RESULT_CLEAN = 0,
    AMSI_RESULT_NOT_DETECTED = 1,
    AMSI_RESULT_DETECTED = 32768
}

public static class NativeMethods
{
    [DllImport("Amsi.dll", EntryPoint = "AmsiInitialize", CallingConvention = CallingConvention.StdCall)]
    public static extern int AmsiInitialize([MarshalAs(UnmanagedType.LPWStr)]string appName, out IntPtr amsiContext);

    [DllImport("Amsi.dll", EntryPoint = "AmsiUninitialize", CallingConvention = CallingConvention.StdCall)]
    public static extern void AmsiUninitialize(IntPtr amsiContext);

    [DllImport("Amsi.dll", EntryPoint = "AmsiOpenSession", CallingConvention = CallingConvention.StdCall)]
    public static extern int AmsiOpenSession(IntPtr amsiContext, out IntPtr session);

    [DllImport("Amsi.dll", EntryPoint = "AmsiCloseSession", CallingConvention = …
Run Code Online (Sandbox Code Playgroud)

c# winapi malware-detection

4
推荐指数
1
解决办法
1299
查看次数

标签 统计

c# ×1

malware-detection ×1

winapi ×1