You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/introduction/what-is-decomp.typ
+11-4Lines changed: 11 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -57,8 +57,8 @@ and generally straightforward to program in.
57
57
The C++ compilation process involves
58
58
a series of steps which translate
59
59
the original human written source code
60
-
into what ultimately results
61
-
in an executable file.
60
+
into what ultimately becomes
61
+
an executable file.
62
62
Refer to @compilation-process for an illustration of this process.
63
63
64
64
]
@@ -75,10 +75,17 @@ Refer to @compilation-process for an illustration of this process.
75
75
If the compilation process is a series of steps
76
76
from $A -> B$,
77
77
then the decompilation process is simply the same process in reverse
78
-
from $B -> A$,
78
+
from $B -> A$.
79
79
and it looks like this:
80
80
81
81
#figure(
82
82
caption: [The decompilation process],
83
83
image("img/decompilation.png", width: 70%)
84
-
)
84
+
)
85
+
86
+
It's important to understand that going in reverse is not something that can be done automatically in the same way that source code is compiled to machine code.
87
+
Decompilation requires reverse engineering the machine code to understand the intent,
88
+
and rewriting code at a high level which matches the same logic.
89
+
90
+
The process is like trying to deduce the original recipe used to make a cake,
91
+
except the only thing you have to work with is the cake which has already been baked.
0 commit comments