| 12345678910111213141516171819202122232425262728293031 |
- \section{Overview}
- The decompilation process consists of a few different steps:
- \begin{itemize}
- \item Disassembly
- \item Code flow analysis
- \item Code generation
- \end{itemize}
- Of these steps, the code flow analysis is engine-independent, while disassembly and code generation require engine-specific code.
- \subsection{Reading guide}
- Names used in code are written in a \code{monospaced typewriter font}.
- Actual code snippets have basic syntax highlighting on a light gray background, and lines are numbered, like below:
- \begin{C++}
- \begin{lstlisting}
- #include <stdio.h>
- int main(int argc, char **argv) {
- printf("Hello world!");
- return 0;
- }
- \end{lstlisting}
- \end{C++}
- In this document, the terms \emph{control flow analysis} and \emph{code flow analysis} are used interchangably.
- \subsection{Limitations}
- The decompiler is targeted for stack-based instruction sets, and may contain assumptions to that effect. If you want to add an engine which does not use a stack-based instruction set, parts of this document may not apply directly, and additional work to the generic parts may be necessary.
|