
Detaped is a Python disassembler and decompiler for Duktape. The intended use is for source code review and analysis in situations where you only have the compiled Duktape bytecode binary, such as in a black-box assessment.
Detaped هو مفكك تركيبة (disassembler) وفك مترجم (decompiler) بلغة بايثون لـ Duktape (GitHub). الاستخدام المقصود هو لمراجعة وتحليل الكود المصدري في الحالات التي يتوفر لديك فيها فقط ملف ثنائي من البايت كود المُجمَّع الخاص بـ Duktape، مثل تقييم الصندوق الأسود (black-box assessment).
└─$ detaped --help
usage: detaped.py [-h] [-o OUTPUT] [-a ASM] [-t TXT] [-n] [-v {none,normal,debug}]
[--disable-grouping] [--disable-call] [--disable-jump] [--disable-if-else]
[--disable-if-condition] [--disable-try-catch-finally] [--disable-for-loop]
[--disable-while-loop] [--disable-init-array] [--disable-init-object]
[--disable-get-prop] [--disable-join-operator] [--disable-double-return]
input
Duktape JavaScript bytecode decompiler
positional arguments:
input The Duktape bytecode file or directory to be decompiled.
options:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
The decompiled output JavaScript file or directory.
-a ASM, --asm ASM The output JavaScript ASM file or directory.
-t TXT, --txt TXT The command output text file.
-n, --no-ansi Disable ANSI color output.
-v {none,normal,debug}, --verbosity {none,normal,debug}
The script output verbosity mode. (Default "normal")
Decompiler Grouping:
Disable specific decompiler grouping functionality.
--disable-grouping Disables all grouping functionality.
--disable-call Disables call grouping.
--disable-jump Disables jump block grouping.
--disable-if-else Disables if/else block grouping.
--disable-if-condition
Disables grouping if statement with preceding condition.
--disable-try-catch-finally
Disables try/catch/finally block grouping.
--disable-for-loop Disables for loop block grouping.
--disable-while-loop Disables while loop block grouping.
--disable-init-array Disables grouping array initialization.
--disable-init-object
Disables grouping object initialization properties.
--disable-get-prop Disables grouping get properties.
--disable-join-operator
Disables grouping join operators.
--disable-double-return
Disables grouping return undefined after return.
يوضح المخطط التالي كيفية تحويل ملف جافاسكربت بسيط إلى الحالات المختلفة.
