private void Init() { this.data = null; this.rva = null; this.idxm = null; this.pe1 = null; this.pe2 = null; this.pe3 = null; this.pe4 = null; this.imptbl = null; this.sects = null; this.cli = null; this.mdroot = null; }
public virtual void VisitCLIHeader(CLIHeader header) { }
private void ReadCLIHeader() { int addr_cli = RVAManager.GetAddress(this.pe4.CLIHeader); if (addr_cli == 0) return; cli = new CLIHeader(); this.cli.ReadData(this.data, this.rva.ConvertToPhysical(addr_cli)); int offset = this.rva.ConvertToPhysical(RVAManager.GetAddress(this.cli.MetaData)); this.mdroot = new MetadataRoot(); this.mdroot.ReadData(this.data, offset); offset += this.mdroot.Length + 18; int nStreams = Util.GetInt16(this.data, offset); offset += 2; this.idxm = new IndexManager(this.data, this.rva); for (int i = 0; i < nStreams; i++) { StreamHeader sh = new StreamHeader(); sh.mdroot = mdroot; sh.ReadData(this.data, offset); offset += sh.GetStreamSize(); this.SetStreamHeader(sh); } this.ReadTilde(); }