Esempio n. 1
0
        public static PatchFinder Create(String fileName)
        {
            if (!File.Exists(fileName))
            {
                throw new FileNotFoundException("Specified filed does not exist", fileName);
            }

            Version osv = Environment.OSVersion.Version;

            MachineType type = Miscellaneous.GetMachineType(fileName);

            switch (type)
            {
            case MachineType.I386:

                if (osv.Major == 5 && osv.Minor >= 1)
                {
                    // XP x86
                    // WS2003 x86

                    return(new UXThemeXP32Finder(fileName));
                }
                else if (osv.Major == 6)
                {
                    // Vista / Win7 x86

                    return(new UXThemeVi32Finder(fileName));
                }
                break;

            case MachineType.Amd64:

                if (osv.Major == 5 && osv.Minor == 2)
                {
                    //XP / WS2003 x64

                    return(new UXThemeXP64Finder(fileName));
                }
                else if (osv.Major == 6)
                {
                    // Vista / Win7 x64

                    return(new UXThemeVi64Finder(fileName));
                }
                break;
            }

            return(null);
        }
Esempio n. 2
0
        private static void AddPEMachineTypeToSymbols(String fileName, Dictionary <String, Double> symbols)
        {
            Anolis.Core.Native.MachineType type = Miscellaneous.GetMachineType(fileName);
            switch (type)
            {
            case Anolis.Core.Native.MachineType.Amd64:
                symbols.Add("peType", 64);
                break;

            case Anolis.Core.Native.MachineType.I386:
                symbols.Add("peType", 86);
                break;

            default:
                symbols.Add("peType", -1);
                break;
            }
        }