public dnModule(byte[] module, string fileName, ModuleContext ctx) { RawData = module; ErrorMessage = null; Name = Path.GetFileName(fileName); var creator = new dnModuleStreamCreator(module, fileName); try { Image = new PEImage(creator, ImageLayout.File, true); } catch (Exception ex) { ErrorMessage += string.Format("Error while loading PE Image:{0}{1}{0}{0}", Environment.NewLine, ex); Image = null; return; } try { MetaData = MetaDataCreator.CreateMetaData(Image); } catch (Exception ex) { ErrorMessage += string.Format("Error while loading MetaData:{0}{1}{0}{0}", Environment.NewLine, ex); MetaData = null; return; } try { ModuleDef = (ModuleDefMD)loadInternal.Invoke(null, new object[] { MetaData, new ModuleCreationOptions { TryToLoadPdbFromDisk = true, Context = ctx } }); ModuleDef.EnableTypeDefFindCache = true; } catch (Exception ex) { ErrorMessage = string.Format("Error while loading ModuleDef:{0}{1}{0}{0}", Environment.NewLine, ex); ModuleDef = null; return; } if (ModuleDef.Assembly != null) { Name = ModuleDef.Assembly.Name; } else { Name = ModuleDef.Name; } if (string.IsNullOrEmpty(Name)) { Name = Path.GetFileName(fileName); } }
public dnModule(byte[] module, string fileName, ModuleContext ctx) { RawData = module; ErrorMessage = null; Name = Path.GetFileName(fileName); var creator = new dnModuleStreamCreator(module, fileName); try { Image = new PEImage(creator, ImageLayout.File, true); } catch (Exception ex) { ErrorMessage += string.Format("Error while loading PE Image:{0}{1}{0}{0}", Environment.NewLine, ex); Image = null; return; } try { MetaData = MetaDataCreator.CreateMetaData(Image); } catch (Exception ex) { ErrorMessage += string.Format("Error while loading MetaData:{0}{1}{0}{0}", Environment.NewLine, ex); MetaData = null; return; } try { ModuleDef = (ModuleDefMD)loadInternal.Invoke(null, new object[] { MetaData, new ModuleCreationOptions { TryToLoadPdbFromDisk = true, Context = ctx } }); ModuleDef.EnableTypeDefFindCache = true; } catch (Exception ex) { ErrorMessage = string.Format("Error while loading ModuleDef:{0}{1}{0}{0}", Environment.NewLine, ex); ModuleDef = null; return; } if (ModuleDef.Assembly != null) Name = ModuleDef.Assembly.Name; else Name = ModuleDef.Name; if (string.IsNullOrEmpty(Name)) Name = Path.GetFileName(fileName); }