SK²Decompile: LLM-based Two-Phase Binary Decompilation from Skeleton to Skin
SK²Decompile is a novel two-phase framework for binary decompilation using Large Language Models (LLMs). Our approach decomposes the complex decompilation task into two manageable phases:
Phase 1 Structure Recovery (Skeleton): Transform binary/pseudo-code into obfuscated intermediate representations 🤗 HF Link
Phase 2 Identifier Naming (Skin): Generate human-readable source code with meaningful identifiers (current model)
Usage:
0. Install vllm and transformers via pip; install clang-format via apt.
python normalize_pseudo.py --input_json reverse_sample.json --output_json reverse_sample.json
Run inference:
python sk2decompile.py --dataset_path reverse_sample.json \
--model_path LLM4Binary/sk2decompile-struct-6.7b \
--recover_model_path LLM4Binary/sk2decompile-ident-6.7b
Project overview: https://github.com/albertan017/LLM4Decompile/tree/main/sk2decompile
Notes:
vllm to recover function structure (sk2decompile-struct) and variable names (sk2decompile-ident) step by step.11 commits
SK²Decompile: LLM-based Two-Phase Binary Decompilation from Skeleton to Skin
SK²Decompile is a novel two-phase framework for binary decompilation using Large Language Models (LLMs). Our approach decomposes the complex decompilation task into two manageable phases:
Phase 1 Structure Recovery (Skeleton): Transform binary/pseudo-code into obfuscated intermediate representations 🤗 HF Link
Phase 2 Identifier Naming (Skin): Generate human-readable source code with meaningful identifiers (current model)
Usage:
0. Install vllm and transformers via pip; install clang-format via apt.
python normalize_pseudo.py --input_json reverse_sample.json --output_json reverse_sample.json
Run inference:
python sk2decompile.py --dataset_path reverse_sample.json \
--model_path LLM4Binary/sk2decompile-struct-6.7b \
--recover_model_path LLM4Binary/sk2decompile-ident-6.7b
Project overview: https://github.com/albertan017/LLM4Decompile/tree/main/sk2decompile
Notes:
vllm to recover function structure (sk2decompile-struct) and variable names (sk2decompile-ident) step by step.11 commits