C# Class Reko.Environments.Windows.Win32Emulator

Emulates the Win32 operating environment. In particular, intercepts calls to GetProcAddress so that the procedures used by the decompiled program can be gleaned.
Inheritance: IPlatformEmulator, IImportResolver
Datei anzeigen Open project: uxmal/reko Class Usage Examples

Public Methods

Method Description
EnsureProc ( Module module, string procName, Action emulator, Reko.Core.Serialization.ProcedureCharacteristics chars = null ) : SimulatedProc
InterceptCall ( IProcessorEmulator emu, UInt32 l ) : bool
ResolveGlobal ( string moduleName, int ordinal, IPlatform platform ) : Identifier
ResolveGlobal ( string moduleName, string name, IPlatform platform ) : Identifier
ResolveToImportedProcedureConstant ( Reko.Core.Statement stm, Constant c ) : ProcedureConstant
Win32Emulator ( Reko.Core.SegmentMap map, IPlatform platform, ImportReference>.Dictionary importReferences ) : Reko.Arch.X86

Private Methods

Method Description
AddWellKnownProcedures ( ) : void
EnsureModule ( string moduleName ) : Module
ExitProcess ( IProcessorEmulator emulator ) : void
GetProcAddress ( IProcessorEmulator emulator ) : void
IImportResolver ( string moduleName, int ordinal, IPlatform platform ) : Reko.Core.ExternalProcedure
IImportResolver ( string moduleName, string importName, IPlatform platform ) : Reko.Core.ExternalProcedure
InterceptCallsToImports ( ImportReference>.Dictionary importReferences ) : void
LoadLibraryA ( IProcessorEmulator emulator ) : void
NYI ( IProcessorEmulator emulator ) : void
ReadLeUInt32 ( uint ea ) : uint
ReadMbString ( UInt32 pstrLibName ) : string
VirtualProtect ( IProcessorEmulator emulator ) : void
WriteLeUInt32 ( Address ea, uint value ) : void
WriteLeUInt32 ( uint ea, uint value ) : void

Method Details

EnsureProc() public method

public EnsureProc ( Module module, string procName, Action emulator, Reko.Core.Serialization.ProcedureCharacteristics chars = null ) : SimulatedProc
module Module
procName string
emulator Action
chars Reko.Core.Serialization.ProcedureCharacteristics
return SimulatedProc

InterceptCall() public method

public InterceptCall ( IProcessorEmulator emu, UInt32 l ) : bool
emu IProcessorEmulator
l System.UInt32
return bool

ResolveGlobal() public method

public ResolveGlobal ( string moduleName, int ordinal, IPlatform platform ) : Identifier
moduleName string
ordinal int
platform IPlatform
return Identifier

ResolveGlobal() public method

public ResolveGlobal ( string moduleName, string name, IPlatform platform ) : Identifier
moduleName string
name string
platform IPlatform
return Identifier

ResolveToImportedProcedureConstant() public method

public ResolveToImportedProcedureConstant ( Reko.Core.Statement stm, Constant c ) : ProcedureConstant
stm Reko.Core.Statement
c Constant
return ProcedureConstant

Win32Emulator() public method

public Win32Emulator ( Reko.Core.SegmentMap map, IPlatform platform, ImportReference>.Dictionary importReferences ) : Reko.Arch.X86
map Reko.Core.SegmentMap
platform IPlatform
importReferences ImportReference>.Dictionary
return Reko.Arch.X86