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); }
// 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); }
/** * 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); }