private void btnLoad_Click(object sender, EventArgs e) { var image = new LoadedImage(Address.Ptr32(0x12312300),new byte[0x1000]); var imageMap = image.CreateImageMap(); var arch = new Reko.Arch.X86.X86ArchitectureFlat32(); var program = new Core.Program(image, imageMap, arch, new DefaultPlatform(null, arch)); var project = new Project { Programs = { program } }; pbs.Load(project); }
private void Given_X86Program() { var arch = new Reko.Arch.X86.X86ArchitectureFlat32(new ServiceContainer(), "x86-protected-32", new Dictionary <string, object>()); var addrBase = Address.Ptr32(0x00100000); var segmentMap = new SegmentMap(addrBase); segmentMap.AddSegment(new ByteMemoryArea(addrBase, new byte[0xFF]), ".text", AccessMode.ReadWrite); this.program = new Program(segmentMap, arch, null); }
private void Given_X86Program() { var arch = new Reko.Arch.X86.X86ArchitectureFlat32("x86-protected-32"); var addrBase = Address.Ptr32(0x00100000); var segmentMap = new SegmentMap(addrBase); segmentMap.AddSegment(new MemoryArea(addrBase, new byte[0xFF]), ".text", AccessMode.ReadWrite); this.program = new Program(segmentMap, arch, null); }
private void btnLoad_Click(object sender, EventArgs e) { var image = new LoadedImage(Address.Ptr32(0x12312300), new byte[0x1000]); var imageMap = image.CreateImageMap(); var arch = new Reko.Arch.X86.X86ArchitectureFlat32(); var program = new Core.Program(image, imageMap, arch, new DefaultPlatform(null, arch)); var project = new Project { Programs = { program } }; pbs.Load(project); }
private Func <long> SelectTest(byte[] buf) { var rewriter = chkRewriter.Checked; Func <long> test; if (rdbRealDasm.Checked) { //var arch = new Reko.Arch.Arm.Arm32Architecture("arm32"); var arch = new Reko.Arch.X86.X86ArchitectureFlat32("x86-protected-32"); if (rewriter) { test = () => PerformanceTest_A32Rewriter(arch, buf); } else { test = () => PerformanceTest_A32Dasm(arch, buf); } } else { DecoderBuilder m; if (rdbInterpretedDasm.Checked) { m = new Decoders.FormatDecoderBuilder(); } else { m = new Decoders.ThreadedDecoderBuilder(); } var root = m.Mask(29, 3, m.Instr(Opcode.add, "r8,r4,r0"), m.Instr(Opcode.sub, "r8,r4,r0"), m.Instr(Opcode.mul, "r8,r4,r0"), m.Instr(Opcode.div, "r8,r4,r0"), m.Instr(Opcode.and, "r8,r4,r0"), m.Instr(Opcode.or, "r8,r4,r0"), m.Instr(Opcode.not, "r8,r4"), m.Instr(Opcode.xor, "r8,r4,r0")); if (rewriter) { test = () => PerformanceTest_SimulatedRewriter(buf, root); } else { test = () => PerformanceTest_Simulated(buf, root); } } return(test); }
public void TrfWideThenNarrow() { var arch = new Reko.Arch.X86.X86ArchitectureFlat32(new ServiceContainer(), "x86-protected-32", new Dictionary <string, object>()); Given_Architecture(arch); Expect("main", "Preserved: esp", "Trashed: ecx", ""); builder.Add("main", m => { var sp = m.Frame.EnsureRegister(m.Architecture.StackRegister); var ecx = m.Frame.EnsureRegister(arch.GetRegister("ecx")); var cl = m.Frame.EnsureRegister(arch.GetRegister("cl")); m.Assign(sp, m.Frame.FramePointer); m.Assign(ecx, m.Mem32(m.Word32(0x00123480))); m.Assign(cl, m.Mem8(m.Word32(0x00123400))); m.Return(); }); RunTest(); }
public void TrfDpb() { var arch = new Reko.Arch.X86.X86ArchitectureFlat32("x86-protected-32"); Given_Architecture(arch); Expect("main", "Preserved: esp", "Trashed: ecx", ""); builder.Add("main", m => { var sp = m.Frame.EnsureRegister(m.Architecture.StackRegister); var ecx = m.Frame.EnsureRegister(arch.GetRegister("ecx")); var cl = m.Frame.EnsureRegister(arch.GetRegister("cl")); m.Assign(sp, m.Frame.FramePointer); m.Assign(cl, m.Mem8(m.Word32(0x00123400))); m.Assign(ecx, m.Seq(m.Slice(ecx, 8, 24), cl)); m.Return(); }); RunTest(); }