Ejemplo n.º 1
0
        public override ImageWriter Clone()
        {
            var w = new BeImageWriter(Bytes, (uint)Position);

            w.MemoryArea = this.MemoryArea;
            return(w);
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
 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);
     }
 }
Ejemplo n.º 5
0
        public override ImageWriter Clone()
        {
            var w = new BeImageWriter(Bytes, (uint)Position);

            return(w);
        }
Ejemplo n.º 6
0
 public override ImageWriter Clone()
 {
     var w = new BeImageWriter(Bytes, (uint) Position);
     w.MemoryArea = this.MemoryArea;
     return w;
 }
Ejemplo n.º 7
0
 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));
 }