"Decoder's Tatami" is a reverse-engineering framework to decode the Windows executables.
- target (60.00%)
There are 30 functions (60.00% Done).
If you wanna decode target.exe
(for example), the target name is target
.
Please follow the following procedure:
-
Install Python3.
-
Install
CodeReverse2
andRisohEditor
.CodeReverse2
: https://github.com/katahiromz/CodeReverse2RisohEditor
: https://github.com/katahiromz/RisohEditor
RisohEditor
is optional. -
Copy the
Template
folder as atarget
folder. And then, copytarget.exe
intotarget
folder. -
Modify
CR2
,RISOHEDITOR
, andtargets
inconfig.py
. -
Modify
THE_TARGET_NAME
andTHE_FILENAME
settings intarget/decode.py
. -
Execute
python decode.py
. -
The assembly files will be generated in
target
folder. -
Execute
python update_status.py
. -
The results will be written to
README.md
,target/README.md
andtarget/status.html
. -
Analyse the assembly files and write the decoded text on
target/analysis/*.txt
, usingDecoder's notation
of below. If the analysis is done, please appendQ.E.D.
to each text file. -
Execute
python update_status.py
again. Back to 8 unless everything has been decoded. -
If every decoding is done, you're lucky.
- We declare the first is 1th (We don't use 0th).
A [=>] B
means "ProgramA
derives ProgramB
.".A [==] B
means "ProgramA
is (almost) the same as ProgramB
.".ARGC
is the number of parameters of the target function.ARGV[0]
means the target function.ARGV[1]
means the first parameter of the target function.ARGV[2]
means the second parameter of the target function. The same applies thereafter.RET
is the return value of the target function.F.ARGC
is the number of parameters of functionF
.F.ARGV[1]
means the first parameter of functionF
.F.ARGV[2]
means the second parameter of functionF
. The same applies thereafter.F.RET
is the return value of functionF
.assert(X);
declares expressionX
is true at there.typeof(X)
is the same as the type of expressionX
.Q.E.D.
means "Analysis is done.".