public override ImageWriter Clone() { var w = new BeImageWriter(Bytes, (uint)Position); w.MemoryArea = this.MemoryArea; return(w); }
private void Rewrite(params ushort[] opcodes) { byte[] bytes = new byte[opcodes.Length * 2]; var writer = new BeImageWriter(bytes); foreach (ushort opcode in opcodes) { writer.WriteBeUInt16(opcode); } image = new LoadedImage(addrBase, bytes); }
public byte[] MakeBytes(params object[] data) { var w = new BeImageWriter(); foreach (var o in data) { dispatcher[o.GetType()](o, w); } var bytes = w.Bytes.Take(w.Position).ToArray(); return bytes; }
private static void WriteString(string s, BeImageWriter w) { if (s.Length <= 0) { w.WriteBeUInt32(0); return; } byte[] ab = enc.GetBytes(s); int padLength = (ab.Length + 3) & ~3; w.WriteBeUInt32((uint) padLength / 4); w.WriteBytes(ab); int cPad = padLength - ab.Length; while (--cPad >= 0) { w.WriteByte(0); } }
public override ImageWriter Clone() { var w = new BeImageWriter(Bytes, (uint)Position); return(w); }
public override ImageWriter Clone() { var w = new BeImageWriter(Bytes, (uint) Position); w.MemoryArea = this.MemoryArea; return w; }
private void Given_BE32_GOT(params uint[] aPointers) { var writer = new BeImageWriter(); foreach (var ptr in aPointers) { writer.WriteBeUInt32(ptr); } var mem = new MemoryArea(Address.Ptr32(0x10000000), writer.ToArray()); program.SegmentMap.AddSegment(mem, ".got", AccessMode.ReadWriteExecute); arch.Stub(a => a.CreateImageReader( Arg<MemoryArea>.Is.NotNull, Arg<Address>.Is.Equal(mem.BaseAddress))) .Return(new BeImageReader(mem, 0)); }