private static byte[] ExtractManifest(JLibrary.PortableExecutable.PortableExecutable image)
        {
            byte[]         data   = null;
            ResourceWalker walker = new ResourceWalker(image);

            ResourceWalker.ResourceDirectory directory = null;
            for (int i = 0; (i < walker.Root.Directories.Length) && (directory == null); i++)
            {
                if (walker.Root.Directories[i].Id == 0x18L)
                {
                    directory = walker.Root.Directories[i];
                }
            }
            if (((directory != null) && (directory.Directories.Length > 0)) && (IsManifestResource(directory.Directories[0].Id) && (directory.Directories[0].Files.Length == 1)))
            {
                data = directory.Directories[0].Files[0].GetData();
            }
            return(data);
        }
Пример #2
0
        // Token: 0x06000124 RID: 292 RVA: 0x0000E2BC File Offset: 0x0000C4BC
        private static byte[] ExtractManifest(PortableExecutable image)
        {
            byte[]         result         = null;
            ResourceWalker resourceWalker = new ResourceWalker(image);

            ResourceWalker.ResourceDirectory resourceDirectory = null;
            int num = 0;

            while (num < resourceWalker.Root.Directories.Length && resourceDirectory == null)
            {
                if ((long)resourceWalker.Root.Directories[num].Id == 24L)
                {
                    resourceDirectory = resourceWalker.Root.Directories[num];
                }
                num++;
            }
            if (resourceDirectory != null && resourceDirectory.Directories.Length > 0 && ManualMap.IsManifestResource(resourceDirectory.Directories[0].Id) && resourceDirectory.Directories[0].Files.Length == 1)
            {
                result = resourceDirectory.Directories[0].Files[0].GetData();
            }
            return(result);
        }
Пример #3
0
        /**
         * Extract an application manifest from
         * an executable file's resources.
         * Returns null if no manifest was found in the executable.
         */
        private static byte[] ExtractManifest(PortableExecutable image)
        {
            byte[]         manifest = null;
            ResourceWalker walker   = new ResourceWalker(image);

            ResourceWalker.ResourceDirectory manifestDir = null;
            for (int i = 0; i < walker.Root.Directories.Length && manifestDir == null; i++)
            {
                if (walker.Root.Directories[i].Id == Constants.RT_MANIFEST)
                {
                    manifestDir = walker.Root.Directories[i];
                }
            }

            if (manifestDir != null && manifestDir.Directories.Length > 0)
            {
                if (IsManifestResource(manifestDir.Directories[0].Id) && manifestDir.Directories[0].Files.Length == 1)
                {
                    manifest = manifestDir.Directories[0].Files[0].GetData();
                }
            }

            return(manifest);
        }