public void EmptyFileNameThrows()
        {
            var subject = new MalwareScanner();

            Assert.Throws <ArgumentException>(() => subject.HasVirus(new byte[1] {
                new byte()
            }, String.Empty));
        }
        public void DoesNotDetectInnocuousByteArray()
        {
            var arr     = Encoding.UTF8.GetBytes(@"bob");
            var subject = new MalwareScanner(AppName);
            var result  = subject.HasVirus(arr, "bob.com");

            Assert.False(result);
        }
        public void DoesNotDetectInnocousStream()
        {
            var stream  = this.CreateStream(@"bob");
            var subject = new MalwareScanner(AppName);
            var result  = subject.HasVirus(stream, "bob.com");

            Assert.False(result);
        }
        public void CanDetectEICARInByteArray()
        {
            var arr     = Encoding.UTF8.GetBytes(@"X5O!P%@AP[4\PZX54(P^)7CC)7}" + @"$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*");
            var subject = new MalwareScanner(AppName);
            var result  = subject.HasVirus(arr, "eicar.com");

            Assert.True(result);
        }
        public void CanDetectEICARInStream()
        {
            var stream  = this.CreateStream(@"X5O!P%@AP[4\PZX54(P^)7CC)7}" + @"$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*");
            var subject = new MalwareScanner(AppName);
            var result  = subject.HasVirus(stream, "eicar.com");

            Assert.True(result);
        }
        public void HandlesStreamPositionInSeekableStream()
        {
            var stream = this.CreateStream(@"X5O!P%@AP[4\PZX54(P^)7CC)7}" + @"$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*");

            stream.Position = 10;
            var subject = new MalwareScanner(AppName);
            var result  = subject.HasVirus(stream, "eicar.com");

            Assert.True(result);
            Assert.Equal(10, stream.Position);
        }
Example #7
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            var virus = Encoding.UTF8.GetBytes(
                "X5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*");

            using (var scanner = new MalwareScanner())
            {
                var selfTest = scanner.TestIfItIsWorking();
                Console.WriteLine($"IsItWorking: {selfTest.IsItWorking}");
                Console.WriteLine($"Exception: {selfTest.Exception}");
                var result = scanner.HasVirus(virus, nameof(virus));
                Console.WriteLine($"HasVirus: {result}");
                //// ToDo: log positive scan result or selfTest.IsItWorking != true
            }
        }
Example #8
0
 public async Task <ScanResultModel> ScanFileAsync(byte[] bytes, CancellationToken cancellationToken = default)
 {
     return(await SendAsync(() => _amsiService.HasVirus(bytes, _defaultFileName)));
 }
        public void NullArrayThrowsError()
        {
            var subject = new MalwareScanner();

            Assert.Throws <ArgumentException>(() => subject.HasVirus((byte[])null, "bob"));
        }