overview.tex 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. \section{Overview}
  2. The decompilation process consists of a few different steps:
  3. \begin{itemize}
  4. \item Disassembly
  5. \item Code flow analysis
  6. \item Code generation
  7. \end{itemize}
  8. Of these steps, the code flow analysis is engine-independent, while disassembly and code generation require engine-specific code.
  9. \subsection{Reading guide}
  10. Names used in code are written in a \code{monospaced typewriter font}.
  11. Actual code snippets have basic syntax highlighting on a light gray background, and lines are numbered, like below:
  12. \begin{C++}
  13. \begin{lstlisting}
  14. #include <stdio.h>
  15. int main(int argc, char **argv) {
  16. printf("Hello world!");
  17. return 0;
  18. }
  19. \end{lstlisting}
  20. \end{C++}
  21. In this document, the terms \emph{control flow analysis} and \emph{code flow analysis} are used interchangably.
  22. \subsection{Limitations}
  23. 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.