示例#1
0
        public void PEBinary_CanRecognizeDotNetBootstrappingExe()
        {
            foreach (string nativeUwpFileName in Directory.GetFiles(PEBinaryTests.BaselineTestsDataDirectory, "Uwp*Cpp*"))
            {
                if (nativeUwpFileName.EndsWith(".pdb", StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }

                PEBinary peBinary;
                using (peBinary = new PEBinary(new Uri(nativeUwpFileName)))
                {
                    peBinary.PE.IsNativeUniversalWindowsPlatform.Should().BeTrue();
                }
            }

            foreach (string nonNativeUwpFileName in Directory.GetFiles(PEBinaryTests.BaselineTestsDataDirectory, "Uwp*"))
            {
                if (nonNativeUwpFileName.Contains("Cpp"))
                {
                    continue;
                }
                if (nonNativeUwpFileName.EndsWith(".pdb", StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }

                PEBinary peBinary;
                using (peBinary = new PEBinary(new Uri(nonNativeUwpFileName)))
                {
                    peBinary.PE.IsNativeUniversalWindowsPlatform.Should().BeFalse();
                }
            }
        }
示例#2
0
        public void PdbIsStripped()
        {
            string   fileName = Path.Combine(BaselineTestsDataDirectory, "Native_x86_VS2017_15.5.4_PdbStripped.dll");
            PEBinary peBinary = new PEBinary(new Uri(fileName));

            peBinary.Pdb.Should().BeNull();
            peBinary.StrippedPdb.Should().NotBeNull();
            peBinary.PdbParseException.Should().NotBeNull();
        }
示例#3
0
        public void NoPdbAvailable()
        {
            string   fileName = Path.Combine(BaselineTestsDataDirectory, "Native_x86_VS2013_PdbMissing.exe");
            PEBinary peBinary = new PEBinary(new Uri(fileName));

            peBinary.Pdb.Should().BeNull();
            peBinary.StrippedPdb.Should().BeNull();
            peBinary.PdbParseException.Should().NotBeNull();
        }
示例#4
0
        public void PEBinary_PdbAvailable()
        {
            string fileName = Path.Combine(BaselineTestsDataDirectory, "Native_x64_VS2013_Default.dll");

            using (var peBinary = new PEBinary(new Uri(fileName)))
            {
                peBinary.Pdb.Should().NotBeNull();
                peBinary.StrippedPdb.Should().BeNull();
                peBinary.PdbParseException.Should().BeNull();
            }
        }
示例#5
0
        public void IsWixBinary()
        {
            string fileName = Path.Combine(PEBinaryTests.BaselineTestsDataDirectory, "Wix_3.11.1_VS2017_Bootstrapper.exe");
            var    peBinary = new PEBinary(new Uri(fileName));

            peBinary.Pdb.Should().BeNull();
            peBinary.PE.IsWixBinary.Should().BeTrue();

            // Verify a random other exe to ensure it is properly reporting as not a WIX bootstrapper
            fileName = Path.Combine(PEBinaryTests.BaselineTestsDataDirectory, "MixedMode_x64_VS2015_Default.exe");
            peBinary = new PEBinary(new Uri(fileName));
            peBinary.PE.IsWixBinary.Should().BeFalse();
        }
示例#6
0
        public void PEBinary_PdbIsStripped()
        {
            if (!PlatformSpecificHelpers.RunningOnWindows())
            {
                return;
            }

            string fileName = Path.Combine(BaselineTestsDataDirectory, "Native_x86_VS2017_15.5.4_PdbStripped.dll");

            using (var peBinary = new PEBinary(new Uri(fileName)))
            {
                peBinary.Pdb.Should().BeNull();
                peBinary.StrippedPdb.Should().NotBeNull();
                peBinary.PdbParseException.Should().NotBeNull();
            }
        }
示例#7
0
        public void PEBinary_IsDotNetCoreBootstrapExe()
        {
            string   fileName = Path.Combine(PEBinaryTests.BaselineTestsDataDirectory, "DotNetCore_win-x64_VS2019_Default.exe");
            PEBinary peBinary;

            using (peBinary = new PEBinary(new Uri(fileName)))
            {
                peBinary.PE.IsDotNetCoreBootstrapExe.Should().BeTrue();
            }

            // Verify a random other exe to ensure it is properly reporting as not a .NET Core bootstrapper
            fileName = Path.Combine(PEBinaryTests.BaselineTestsDataDirectory, "Wix_3.11.1_VS2017_Bootstrapper.exe");
            using (peBinary = new PEBinary(new Uri(fileName)))
            {
                peBinary.PE.IsDotNetCoreBootstrapExe.Should().BeFalse();
            }
        }