RetDec is a retargetable machine-code decompiler based on LLVM
4.6K
This repository contains a Dockerfile of RetDec blacktop/retdec.
$ docker images
REPOSITORY TAG SIZE TAR
blacktop/retdec latest 4.29GB 369MB
blacktop/retdec 3.2 4.29GB 369MB
NOTE: why is this image so large??? :neutral_face:
retdec@17b1596c8f0c:/$ du -sh /usr/share/retdec/
"3.9G" /usr/share/retdec/
docker pull blacktop/retdec$ docker run --rm -v `pwd`:/samples blacktop/retdec
Decompiles the given file into the selected target high-level language.
Usage:
/usr/share/retdec/bin/decompile.sh [ options ] file
Options:
-a name, --arch name Specify target architecture [mips|pic32|arm|thumb|powerpc|x86] (default: x86).
-e name, --endian name Specify target endianness [little|big] (default: little). Not all combinations are supported.
-f name, --format name Specify object file format [elf|pe|ihex|macho] (default: pe).
-h, --help Print this help message.
-k --keep-unreachable-funcs Keep functions that are unreachable from the main function.
-l string, --target-language string Target high-level language [c|py] (default: c).
-m name, --mode name Force the type of decompilation mode [bin|ll|raw] (default: ll if input's suffix is '.ll', bin otherwise).
-o file, --output file Output file (default: file.ext).
-p file, --pdb file File with PDB debug information.
--ar-index name Pick file from archive for decompilation by its zero-based index.
--ar-name string Pick file from archive for decompilation by its name.
--backend-aggressive-opts Enables aggressive optimizations.
--backend-arithm-expr-evaluator string Name of the used evaluator of arithmetical expressions (default: c).
--backend-call-info-obtainer string Name of the obtainer of information about function calls (default: optim).
--backend-cfg-test Unifies the labels of all nodes in the emitted CFG (this has to be used in tests).
--backend-disabled-opts list Prevents the optimizations from the given comma-separated list of optimizations to be run.
--backend-emit-cfg Emits a CFG for each function in the backend IR (in the .dot format).
--backend-emit-cg Emits a CG for the decompiled module in the backend IR (in the .dot format).
--backend-cg-conversion string Should the CG from the backend be converted automatically into the desired format? [auto|manual] (default: auto).
--backend-cfg-conversion string Should CFGs from the backend be converted automatically into the desired format? [auto|manual] (default: auto).
--backend-enabled-opts list Runs only the optimizations from the given comma-separated list of optimizations.
--backend-find-patterns list Runs the finders of patterns specified in the given comma-separated list (use 'all' to run them all).
--backend-force-module-name string Overwrites the module name that was detected/generated by the front-end.
--backend-keep-all-brackets Keeps all brackets in the generated code.
--backend-keep-library-funcs Keep functions from standard libraries.
--backend-llvmir2bir-converter string Name of the converter from LLVM IR to BIR (default: orig).
--backend-no-compound-operators Do not emit compound operators (like +=) instead of assignments.
--backend-no-debug Disables the emission of debug messages, such as phases.
--backend-no-debug-comments Disables the emission of debug comments in the generated code.
--backend-no-opts Disables backend optimizations.
--backend-no-symbolic-names Disables the conversion of constant arguments to their symbolic names.
--backend-no-time-varying-info Do not emit time-varying information, like dates.
--backend-no-var-renaming Disables renaming of variables in the backend.
--backend-semantics A comma-separated list of the used semantics.
--backend-strict-fpu-semantics Forces strict FPU semantics to be used.
--backend-var-renamer string Used renamer of variables [address|hungarian|readable|simple|unified] (default: readable).
--cleanup Removes temporary files created during the decompilation.
--color-for-ida Put IDA Pro color tags to output C file.
--config name Specify JSON decompilation configuration file.
--no-config State explicitly that config file is not to be used.
--fileinfo-verbose Print all detected information about input file.
--fileinfo-use-all-external-patterns Use all detection rules from external YARA databases.
--graph-format name Specify format of a all generated graphs (e.g. CG, CFG) [pdf|png|svg] (default: png).
--raw-entry-point addr Entry point address used for raw binary (default: architecture dependent).
--raw-section-vma addr Virtual address where section created from the raw binary will be placed (default: architecture dependent).
--select-decode-only Decode only selected parts (functions/ranges). Faster decompilation, but worse results.
--select-functions list Specify a comma separated list of functions to decompile (example: fnc1,fnc2,fnc3).
--select-ranges list Specify a comma separated list of ranges to decompile (example: 0x100-0x200,0x300-0x400,0x500-0x600).
--stop-after tool Stop the decompilation after the given tool (supported tools: fileinfo, unpacker, bin2llvmir, llvmir2hll).
--static-code-sigfile path Adds additional signature file for static code detection.
--static-code-archive path Adds additional signature file for static code detection from given archive.
--no-default-static-signatures No default signatures for statically linked code analysis are loaded (options static-code-sigfile/archive are still available).
$ docker run --rm -v `pwd`:/samples blacktop/retdec FILE
Find a bug? Want more features? Find something missing in the documentation? Let me know! Please don't hesitate to file an issue.
MIT Copyright (c) 2018 blacktop
Content type
Image
Digest
Size
338.5 MB
Last updated
almost 8 years ago
docker pull blacktop/retdec