public void Write(PeWriter wtr) { wtr.SetPosition(StandardFieldsOffset); sf.Write(wtr); wsf.Write(wtr); dd.Write(wtr); }
public void Write(PeWriter wtr) { wtr.SetPosition(SectionHeadersOffset); uint datPtr = SectionHeadersOffset + 40 * (uint)this.Count; if (file.Type == PeFileType.Image) { uint align = file.OptionalHeader.WindowsSpecificFields.FileAlignment; if (datPtr < align) { datPtr = align; } else { uint newPtr = align; while (datPtr > align) { newPtr += align; datPtr -= align; } datPtr = newPtr; } } for (int i = 0; i < file.PEHeader.NumberOfSections; i++) { Items[i].Write(wtr, ref datPtr); } }
internal void Write(PeWriter wtr, ref uint datPtr) { for (int i = 0; i < 8; i++) { if (i < n.Length) { wtr.Write((byte)n[i]); } else { wtr.Write((byte)0); } } wtr.Write((uint)vSize); wtr.Write((uint)vPtr); wtr.Write((uint)dat.Length); wtr.Write((uint)datPtr); wtr.Write((uint)relocPtr); wtr.Write((uint)lnPtr); wtr.Write((ushort)relocNo); wtr.Write((ushort)lnNo); wtr.Write((uint)c); wtr.SaveLocation(); wtr.SetPosition(datPtr); wtr.Write(dat); wtr.LoadLocation(); datPtr += (uint)dat.Length; }
public void Write(PeWriter wtr) { wtr.SetPosition(hdr.DataDirectoriesOffset); for (int i = 0; i < 16; i++) { wtr.Write(Items[i].Address); wtr.Write(Items[i].Size); } }
public override void Write(PeWriter wtr) { wtr.SetPosition(PEHeaderOffset); wtr.Write((ushort)m); wtr.Write((ushort)noSect); wtr.WriteStamp(stamp); wtr.Write((uint)ptrSym); wtr.Write((uint)noSym); wtr.Write((ushort)sOh); wtr.Write((ushort)c); }
public void Save(PeWriter wtr, uint adr) { wtr.SetPosition(adr); foreach (CertificateEntry i in items) { wtr.Write((uint)i.CertificateData.Length + 8); wtr.Write((ushort)i.Revision); wtr.Write((ushort)i.CertificateType); wtr.Write(i.CertificateData); } }
public override void Write(PeWriter wtr) { wtr.SetPosition(hdr.WindowsSpecificFieldsOffset); if (hdr.Type == ExecutableType.PE32Plus) { wtr.Write((ulong)imgBas); wtr.Write((uint)sectA); wtr.Write((uint)fA); wtr.Write((ushort)maOs); wtr.Write((ushort)miOs); wtr.Write((ushort)maImg); wtr.Write((ushort)miImg); wtr.Write((ushort)maSs); wtr.Write((ushort)miSs); wtr.Write((uint)winVer); wtr.Write((uint)sImg); wtr.Write((uint)sHdr); wtr.Write((uint)cs); wtr.Write((ushort)Ss); wtr.Write((ushort)dll); wtr.Write((ulong)sSr); wtr.Write((ulong)sSc); wtr.Write((ulong)sHr); wtr.Write((ulong)sHc); wtr.Write((uint)ldrF); wtr.Write((uint)noDd); } else { wtr.Write((uint)imgBas); wtr.Write((uint)sectA); wtr.Write((uint)fA); wtr.Write((ushort)maOs); wtr.Write((ushort)miOs); wtr.Write((ushort)maImg); wtr.Write((ushort)miImg); wtr.Write((ushort)maSs); wtr.Write((ushort)miSs); wtr.Write((uint)winVer); wtr.Write((uint)sImg); wtr.Write((uint)sHdr); wtr.Write((uint)cs); wtr.Write((ushort)Ss); wtr.Write((ushort)dll); wtr.Write((uint)sSr); wtr.Write((uint)sSc); wtr.Write((uint)sHr); wtr.Write((uint)sHc); wtr.Write((uint)ldrF); wtr.Write((uint)noDd); } }
public override void Write(PeWriter wtr) { wtr.SetPosition(hdr.StandardFieldsOffset); wtr.Write((ushort)hdr.t); wtr.Write(maL); wtr.Write(miL); wtr.Write(sC); wtr.Write(sI); wtr.Write(sU); wtr.Write(entry); wtr.Write(bc); if (Magic != ExecutableType.PE32Plus) { wtr.Write(bd); } }