public void Setup() { var arch = new IntelArchitecture(ProcessorMode.Protected32); f = arch.CreateFrame(); liveness = new IdentifierLiveness(arch); isLiveHelper = new RegisterLiveness.IsLiveHelper(arch); }
public void Fstsw_Setup() { arch = new IntelArchitecture(ProcessorMode.Protected32); asm = new X86Assembler(arch, Address.Ptr32(0x10000), new List<EntryPoint>()); Procedure proc = new Procedure("test", arch.CreateFrame()); orw = new OperandRewriter32(arch, proc.Frame, null); emitter = new ProcedureBuilder(); }
public void TestGrfWithOneBit() { IProcessorArchitecture arch = new IntelArchitecture(ProcessorMode.Real); SignatureBuilder sb = new SignatureBuilder(null, arch); sb.AddFlagGroupReturnValue((uint) FlagM.CF, arch.CreateFrame()); ProcedureSignature sig = sb.BuildSignature(); Assert.AreEqual("bool", sig.ReturnValue.DataType.ToString()); }
public void Fstsw_Setup() { arch = new X86ArchitectureFlat32(); asm = new X86Assembler(null, new DefaultPlatform(null, new X86ArchitectureFlat32()), Address.Ptr32(0x10000), new List<ImageSymbol>()); Procedure proc = new Procedure("test", arch.CreateFrame()); orw = new OperandRewriter32(arch, proc.Frame, null); emitter = new ProcedureBuilder(); }
public ApplicationBuilderTests() { arch = new IntelArchitecture(ProcessorMode.Protected32); frame = arch.CreateFrame(); ret = frame.EnsureRegister(Registers.eax); arg04 = new Identifier("arg04", PrimitiveType.Word32, new StackArgumentStorage(4, PrimitiveType.Word32)); arg08 = new Identifier("arg08", PrimitiveType.Word16, new StackArgumentStorage(8, PrimitiveType.Word16)); arg0C = new Identifier("arg0C", PrimitiveType.Byte, new StackArgumentStorage(0x0C, PrimitiveType.Byte)); regOut = new Identifier("edxOut", PrimitiveType.Word32, new OutArgumentStorage(frame.EnsureRegister(Registers.edx))); sig = new ProcedureSignature(ret, new Identifier[] { arg04, arg08, arg0C, regOut }); }
public void Setup() { var sc = new ServiceContainer(); sc.AddService<IFileSystemService>(new FileSystemServiceImpl()); arch = new IntelArchitecture(ProcessorMode.Real); platform = new MsdosPlatform(sc, arch); sigser = new X86ProcedureSerializer( arch, new TypeLibraryDeserializer(platform, true, new TypeLibrary()), "stdapi"); argser = new ArgumentSerializer(sigser, arch, arch.CreateFrame(), null); }
public ApplicationBuilderTests() { arch = new X86ArchitectureFlat32(); frame = arch.CreateFrame(); ret = frame.EnsureRegister(Registers.eax); arg04 = new Identifier("arg04", PrimitiveType.Word32, new StackArgumentStorage(4, PrimitiveType.Word32)); arg08 = new Identifier("arg08", PrimitiveType.Word16, new StackArgumentStorage(8, PrimitiveType.Word16)); arg0C = new Identifier("arg0C", PrimitiveType.Byte, new StackArgumentStorage(0x0C, PrimitiveType.Byte)); regOut = new Identifier("edxOut", PrimitiveType.Word32, new OutArgumentStorage(frame.EnsureRegister(Registers.edx))); sig = new FunctionType( ret, new Identifier[] { arg04, arg08, arg0C, regOut }); }
public void Setup() { arch = new IntelArchitecture(ProcessorMode.Real); var image = new LoadedImage(Address.Ptr32(0x10000), new byte[4]); var prog = new Program( image, image.CreateImageMap(), arch, null); var procAddress = Address.Ptr32(0x10000000); instr = new X86Instruction(Opcode.nop, PrimitiveType.Word16, PrimitiveType.Word16) { Address = procAddress, }; proc = Procedure.Create(procAddress, arch.CreateFrame()); orw = new OperandRewriter16(arch, proc.Frame, new FakeRewriterHost(prog)); state = (X86State)arch.CreateProcessorState(); }
public void Setup() { arch = new X86ArchitectureReal(); var mem = new MemoryArea(Address.Ptr32(0x10000), new byte[4]); var prog = new Program( new SegmentMap( mem.BaseAddress, new ImageSegment( "code", mem, AccessMode.ReadWriteExecute)), arch, new DefaultPlatform(null, arch)); var procAddress = Address.Ptr32(0x10000000); instr = new X86Instruction(Opcode.nop, PrimitiveType.Word16, PrimitiveType.Word16) { Address = procAddress, }; proc = Procedure.Create(procAddress, arch.CreateFrame()); orw = new OperandRewriter16(arch, proc.Frame, new FakeRewriterHost(prog)); state = (X86State)arch.CreateProcessorState(); }
public void Setup() { mr = new MockRepository(); var sc = new ServiceContainer(); sc.AddService<IFileSystemService>(new FileSystemServiceImpl()); arch = new X86ArchitectureReal(); platform = new MsdosPlatform(sc, arch); sigser = mr.Stub<ProcedureSerializer>( arch, new TypeLibraryDeserializer(platform, true, new TypeLibrary()), "stdapi"); argser = new ArgumentDeserializer( sigser, arch, arch.CreateFrame(), // It's possible that old, hand-written assembler passes // arguments on unaligned offsets 13, 4); mr.ReplayAll(); }
public void Setup() { var arch = new IntelArchitecture(ProcessorMode.Real); proc = Procedure.Create("foo", Address.Ptr32(0x100), arch.CreateFrame()); alias = new Aliases(proc, arch); }
private void BuildTest(IntelArchitecture arch, Address addr, IPlatform platform, Action<X86Assembler> m) { proc = new Procedure("test", arch.CreateFrame()); block = proc.AddBlock("testblock"); this.state = arch.CreateProcessorState(); var asm = new X86Assembler(sc, new DefaultPlatform(sc, arch), addr, new List<ImageSymbol>()); scanner = mr.StrictMock<IScanner>(); scanner.Stub(s => s.Services).Return(sc); m(asm); lr = asm.GetImage(); host = new RewriterHost( asm.ImportReferences, new Dictionary<string, FunctionType> { { "GetDC", new FunctionType( new Identifier("", new Pointer(VoidType.Instance, 4), new RegisterStorage("eax", 0, 0, PrimitiveType.Word32)), new [] { new Identifier("arg", new TypeReference( "HWND", new Pointer(VoidType.Instance, 4)), new StackArgumentStorage(4, new TypeReference( "HWND", new Pointer(VoidType.Instance, 4)))) }) { StackDelta = 4, } } }, new Dictionary<string, DataType>()); var rw = arch.CreateRewriter( lr.SegmentMap.Segments.Values.First().MemoryArea.CreateLeReader(addr), this.state, proc.Frame, host); this.program = new Program { Architecture = arch, SegmentMap = lr.SegmentMap, ImageMap = lr.ImageMap, Platform = platform, }; using (mr.Record()) { scanner.Stub(x => x.FindContainingBlock(Arg<Address>.Is.Anything)).Return(block); scanner.Stub(x => x.GetTrace(null, null, null)).IgnoreArguments().Return(rw); scanner.Stub(x => x.Services).Return(sc); } wi = new BlockWorkitem(scanner, program, state, addr); }
public void Setup() { var arch = new IntelArchitecture(ProcessorMode.Real); proc = new Procedure("foo", arch.CreateFrame()); alias = new Aliases(proc, arch); }
private void BuildTest(IntelArchitecture arch, Address addr, IPlatform platform, Action<X86Assembler> m) { this.arch = new IntelArchitecture(ProcessorMode.Protected32); proc = new Procedure("test", arch.CreateFrame()); block = proc.AddBlock("testblock"); this.state = arch.CreateProcessorState(); var asm = new X86Assembler(sc, new DefaultPlatform(sc, arch), addr, new List<EntryPoint>()); scanner = mr.StrictMock<IScanner>(); m(asm); lr = asm.GetImage(); host = new RewriterHost(asm.ImportReferences, new Dictionary<string, ProcedureSignature> { { "GetDC", new ProcedureSignature( new Identifier("", new Pointer(VoidType.Instance, 4), new RegisterStorage("eax", 0, 0, PrimitiveType.Word32)), new Identifier("arg", new TypeReference( "HWND", new Pointer(VoidType.Instance, 4)), new StackArgumentStorage(0, new TypeReference( "HWND", new Pointer(VoidType.Instance, 4))))) { StackDelta = 4, } } }); var rw = arch.CreateRewriter(lr.Image.CreateLeReader(addr), this.state, proc.Frame, host); var prog = new Program { Architecture = arch, Image = lr.Image, ImageMap = lr.ImageMap, Platform = platform, }; using (mr.Record()) { scanner.Stub(x => x.FindContainingBlock(Arg<Address>.Is.Anything)).Return(block); scanner.Stub(x => x.GetTrace(null, null, null)).IgnoreArguments().Return(rw); } wi = new BlockWorkitem(scanner, prog, state, addr); }
public void Setup() { arch = new IntelArchitecture(ProcessorMode.Real); sigser = new X86ProcedureSerializer(arch, new TypeLibraryLoader(arch, true), "stdapi"); argser = new ArgumentSerializer(sigser, arch, arch.CreateFrame(), null); }