C# 클래스 Reko.DecompilerDriver

The main driver class for decompilation of binaries.
This class is named this way as the previous name 'Decompiler' causes C# to get confused between the namespace and the class name.
상속: IDecompiler
파일 보기 프로젝트 열기: uxmal/reko

공개 메소드들

메소드 설명
AnalyzeDataFlow ( ) : void

Determines the signature of the procedures, the locations and types of all the values in the program.

Assemble ( string fileName, Assembler asm ) : void
Decompile ( string filename ) : void

Main entry point of the decompiler. Loads, decompiles, and outputs the results.

DecompilerDriver ( ILoader ldr, IServiceProvider services ) : Reko.Core
DumpAssembler ( Program program, Reko.Core.Output.Formatter wr ) : void
Load ( string fileName ) : bool

Loads (or assembles) the decompiler project. If a binary file is specified instead, we create a simple project for the file.

LoadCallSignatures ( Program program, ICollection userCalls ) : FunctionType>.IDictionary
LoadRawImage ( string fileName, RawFileElement raw ) : Program
LoadRawImage ( string fileName, string arch, string platform, Address addrBase ) : Program

Loads a program into memory, but performs no relocations.

ReconstructTypes ( ) : void

Extracts type information from the typeless rewritten programs.

RunScriptOnProgramImage ( Program program, Script_v2 script ) : void
ScanProcedure ( Reko.Core.ProgramAddress paddr ) : Reko.Core.ProcedureBase

Starts a scan at address addr on the user's request.

ScanPrograms ( ) : void

Generates the control flow graph and finds executable code in each program.

StructureProgram ( ) : void

Extracts structured program constructs out of snarled goto nests, if possible. Since procedures are now independent of each other, this analysis is done one procedure at a time.

WriteDecompiledProcedures ( Program program, TextWriter w ) : void
WriteDecompiledTypes ( Program program, TextWriter w ) : void
WriteDecompilerProducts ( ) : void
WriteGlobals ( Program program, TextWriter w ) : void
WriteHeaderComment ( string filename, Program program, TextWriter w ) : void

보호된 메소드들

메소드 설명
CreateDefaultProject ( string fileName, Program program ) : Reko.Core.Project

비공개 메소드들

메소드 설명
BuildImageMaps ( ) : void

Build image maps for each program in preparation of the scanning phase.

CreateScanner ( Program program ) : IScanner
EmitProgram ( Program program, DataFlowAnalysis dfa, TextWriter output ) : void
ScanProgram ( Program program ) : void

메소드 상세

AnalyzeDataFlow() 공개 메소드

Determines the signature of the procedures, the locations and types of all the values in the program.
public AnalyzeDataFlow ( ) : void
리턴 void

Assemble() 공개 메소드

public Assemble ( string fileName, Assembler asm ) : void
fileName string
asm Assembler
리턴 void

CreateDefaultProject() 보호된 메소드

protected CreateDefaultProject ( string fileName, Program program ) : Reko.Core.Project
fileName string
program Program
리턴 Reko.Core.Project

Decompile() 공개 메소드

Main entry point of the decompiler. Loads, decompiles, and outputs the results.
public Decompile ( string filename ) : void
filename string
리턴 void

DecompilerDriver() 공개 메소드

public DecompilerDriver ( ILoader ldr, IServiceProvider services ) : Reko.Core
ldr ILoader
services IServiceProvider
리턴 Reko.Core

DumpAssembler() 공개 메소드

public DumpAssembler ( Program program, Reko.Core.Output.Formatter wr ) : void
program Program
wr Reko.Core.Output.Formatter
리턴 void

Load() 공개 메소드

Loads (or assembles) the decompiler project. If a binary file is specified instead, we create a simple project for the file.
public Load ( string fileName ) : bool
fileName string
리턴 bool

LoadCallSignatures() 공개 메소드

public LoadCallSignatures ( Program program, ICollection userCalls ) : FunctionType>.IDictionary
program Program
userCalls ICollection
리턴 FunctionType>.IDictionary

LoadRawImage() 공개 메소드

public LoadRawImage ( string fileName, RawFileElement raw ) : Program
fileName string
raw RawFileElement
리턴 Program

LoadRawImage() 공개 메소드

Loads a program into memory, but performs no relocations.
public LoadRawImage ( string fileName, string arch, string platform, Address addrBase ) : Program
fileName string
arch string
platform string
addrBase Address
리턴 Program

ReconstructTypes() 공개 메소드

Extracts type information from the typeless rewritten programs.
public ReconstructTypes ( ) : void
리턴 void

RunScriptOnProgramImage() 공개 메소드

public RunScriptOnProgramImage ( Program program, Script_v2 script ) : void
program Program
script Script_v2
리턴 void

ScanProcedure() 공개 메소드

Starts a scan at address addr on the user's request.
public ScanProcedure ( Reko.Core.ProgramAddress paddr ) : Reko.Core.ProcedureBase
paddr Reko.Core.ProgramAddress
리턴 Reko.Core.ProcedureBase

ScanPrograms() 공개 메소드

Generates the control flow graph and finds executable code in each program.
public ScanPrograms ( ) : void
리턴 void

StructureProgram() 공개 메소드

Extracts structured program constructs out of snarled goto nests, if possible. Since procedures are now independent of each other, this analysis is done one procedure at a time.
public StructureProgram ( ) : void
리턴 void

WriteDecompiledProcedures() 공개 메소드

public WriteDecompiledProcedures ( Program program, TextWriter w ) : void
program Program
w System.IO.TextWriter
리턴 void

WriteDecompiledTypes() 공개 메소드

public WriteDecompiledTypes ( Program program, TextWriter w ) : void
program Program
w System.IO.TextWriter
리턴 void

WriteDecompilerProducts() 공개 메소드

public WriteDecompilerProducts ( ) : void
리턴 void

WriteGlobals() 공개 메소드

public WriteGlobals ( Program program, TextWriter w ) : void
program Program
w System.IO.TextWriter
리턴 void

WriteHeaderComment() 공개 메소드

public WriteHeaderComment ( string filename, Program program, TextWriter w ) : void
filename string
program Program
w System.IO.TextWriter
리턴 void