Mindket

Qwen3.5-4B-SFT-decompiler-O0-full

Newversion 1 · updated

Overview

Rewrites decompiler output into readable C source with meaningful names and proper types. A Qwen3.5-4B fine-tune trained on unoptimized binaries, for security researchers and reverse engineers.

Qwen3.5-4B-SFT-decompiler-O0-full is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page, a zip of its files. Nothing in it runs by itself.

At a glance

You need
  • Python with pip
  • transformers, or vLLM for batch work
  • About 9.3 GB of space for bf16 weights, or about 2.3 GB at 4-bit as an estimate
Runs in
  • Python with transformers and torch
  • vLLM, which the card recommends for batch inference
  • Windows, macOS or Linux: where you can fetch the files with Python
Start with
pip install -U huggingface_hub
hf download Divij/Qwen3.5-4B-SFT-decompiler-O0-full

Platform

WindowsOperating system
macOSOperating system
LinuxOperating system

About

What it is

This is a fine-tune of Qwen3.5-4B for binary decompilation. You give it C code produced by a decompiler such as Ghidra, IDA Pro or angr, and it predicts the original human written source. The raw output tends to be hard to read, with placeholder names for variables, numbers written in hex and tangled branching. The model returns cleaner code with meaningful names and proper types. It was trained on the O0 split, which means code built without compiler optimization.

Who it suits

Security researchers and reverse engineers who read decompiled code and want a cleaner starting point.

IndustryWho uses itHow they use itExample
Security researchAnalysts who study binariesFeed decompiler output in and read the recovered sourceCleaning up one function from a disassembled program
Reverse engineeringEngineers who analyze compiled codeCompare the model's output with the raw decompiler textChecking that the recovered logic matches the control flow
ResearchPeople who study decompilationEvaluate it on structural measures such as control flow graphsReproducing the card's graph edit distance test

Skip it if your binaries were built with compiler optimization, since the card describes only the O0 split.

Where to use it

It runs with the transformers library or with vLLM. The files download on Windows, macOS or Linux.

  • Python with transformers and torch
  • vLLM, which the card recommends for batch inference
  • Windows, macOS or Linux: where you can fetch the files with Python
Use caseWhoWhat they get back
Function recoveryReverse engineersReadable C for one decompiled function
Batch cleanupAnalystsRecovered source for many functions through vLLM
BenchmarkingResearchersControl flow comparisons against the baseline

How to set it up

You need Python and a GPU that holds a 4.7B model. The bf16 weights are about 9.3 GB.

  • Python with pip
  • transformers, or vLLM for batch work
  • About 9.3 GB of space for bf16 weights, or about 2.3 GB at 4-bit as an estimate
  1. Install the Hugging Face hub library.
  2. Download the model files, or let your code fetch them by name.
  3. Run the loading code with transformers or vLLM.
pip install -U huggingface_hub
hf download Divij/Qwen3.5-4B-SFT-decompiler-O0-full

How to use it

Put the decompiled code in a chat message, apply the chat template with thinking turned off, and generate. The vLLM version below is the one the card recommends for batches.

import vllm

llm = vllm.LLM(model="Divij/Qwen3.5-4B-SFT-decompiler-O0-full", trust_remote_code=True)
sampling_params = vllm.SamplingParams(temperature=0, max_tokens=2048, skip_special_tokens=True)

# Format prompt using chat template
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Divij/Qwen3.5-4B-SFT-decompiler-O0-full", trust_remote_code=True)

decompiled_code = "..."  # your decompiled code here
messages = [{"role": "user", "content": decompiled_code}]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True, enable_thinking=False)

outputs = llm.generate([prompt], sampling_params)
print(outputs[0].outputs[0].text)
ToolWhat it does
vllm.LLMLoads the model for fast batch generation
vllm.SamplingParamsSets greedy decoding and a 2048 token limit
apply_chat_templateTurns your decompiled code into the model prompt

Example

You paste a decompiled function that compares two encryption policy structures, full of names like a0 and v1. The model returns C source for the same function with meaningful variable names and clear control flow.

For newcomers and experts

If you are new to this, a decompiler turns a program back into rough code, and this model tidies that code. Start with one short function and read the result against the original decompiler text.

If you know the field, the card says training used 29,698 O0 examples from several decompilers, with two epochs at a learning rate of 5e-6. Evaluation compares control flow graphs by graph edit distance, where zero means an identical graph.

  1. Decompiled C goes into the prompt
  2. Chat template builds the input
  3. Model generates source code
  4. You read the recovered C

Good to know

The card reports its own test on the O0 test split of 5,942 examples. Lower graph edit distance is better.

Card test, control flow graph distance
MeasureThis modelRaw decompiler output
Mean distance12.3615.92
Median distance0.005.00
Perfect matches75.0 percent34.9 percent

The model produced code the checker could parse in 99.9 percent of cases.

  • License: Apache 2.0
  • Cost to run: none named, you supply the hardware
  • Data it reaches: the decompiled code you pass in
  • Not for: optimized binaries, since the card covers only the O0 split

README and files

README

Qwen3.5-4B-SFT-decompiler-O0-full

Rewrites decompiler output into readable C source with meaningful names and proper types. A Qwen3.5-4B fine-tune trained on unoptimized binaries, for security researchers and reverse engineers.

Made by Divij on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.

About

What it is: This is a fine-tune of Qwen3.5-4B for binary decompilation. You give it C code produced by a decompiler such as Ghidra, IDA Pro or angr, and it predicts the original human written source. The raw output tends to be hard to read, with placeholder names for variables, numbers written in hex and tangled branching. The model returns cleaner code with meaningful names and proper types. It was trained on the O0 split, which means code built without compiler optimization.

Who it suits: Security researchers and reverse engineers who read decompiled code and want a cleaner starting point.

Industry | Who uses it | How they use it | Example
Security research | Analysts who study binaries | Feed decompiler output in and read the recovered source | Cleaning up one function from a disassembled program
Reverse engineering | Engineers who analyze compiled code | Compare the model's output with the raw decompiler text | Checking that the recovered logic matches the control flow
Research | People who study decompilation | Evaluate it on structural measures such as control flow graphs | Reproducing the card's graph edit distance test

Skip it if your binaries were built with compiler optimization, since the card describes only the O0 split.

Where to use it: It runs with the transformers library or with vLLM. The files download on Windows, macOS or Linux.

  • Python with transformers and torch
  • vLLM, which the card recommends for batch inference
  • Windows, macOS or Linux: where you can fetch the files with Python
Use case | Who | What they get back
Function recovery | Reverse engineers | Readable C for one decompiled function
Batch cleanup | Analysts | Recovered source for many functions through vLLM
Benchmarking | Researchers | Control flow comparisons against the baseline

How to set it up: You need Python and a GPU that holds a 4.7B model. The bf16 weights are about 9.3 GB.

  • Python with pip
  • transformers, or vLLM for batch work
  • About 9.3 GB of space for bf16 weights, or about 2.3 GB at 4-bit as an estimate
  1. Install the Hugging Face hub library.
  2. Download the model files, or let your code fetch them by name.
  3. Run the loading code with transformers or vLLM.
pip install -U huggingface_hub
hf download Divij/Qwen3.5-4B-SFT-decompiler-O0-full

How to use it: Put the decompiled code in a chat message, apply the chat template with thinking turned off, and generate. The vLLM version below is the one the card recommends for batches.

import vllm

llm = vllm.LLM(model="Divij/Qwen3.5-4B-SFT-decompiler-O0-full", trust_remote_code=True)
sampling_params = vllm.SamplingParams(temperature=0, max_tokens=2048, skip_special_tokens=True)

# Format prompt using chat template
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Divij/Qwen3.5-4B-SFT-decompiler-O0-full", trust_remote_code=True)

decompiled_code = "..."  # your decompiled code here
messages = [{"role": "user", "content": decompiled_code}]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True, enable_thinking=False)

outputs = llm.generate([prompt], sampling_params)
print(outputs[0].outputs[0].text)
Tool | What it does
vllm.LLM | Loads the model for fast batch generation
vllm.SamplingParams | Sets greedy decoding and a 2048 token limit
apply_chat_template | Turns your decompiled code into the model prompt

Example: You paste a decompiled function that compares two encryption policy structures, full of names like a0 and v1. The model returns C source for the same function with meaningful variable names and clear control flow.

For newcomers and experts: If you are new to this, a decompiler turns a program back into rough code, and this model tidies that code. Start with one short function and read the result against the original decompiler text.

If you know the field, the card says training used 29,698 O0 examples from several decompilers, with two epochs at a learning rate of 5e-6. Evaluation compares control flow graphs by graph edit distance, where zero means an identical graph.

Decompiled C goes into the prompt
Chat template builds the input
Model generates source code
You read the recovered C

Good to know: The card reports its own test on the O0 test split of 5,942 examples. Lower graph edit distance is better.

Title: Card test, control flow graph distance
Measure | This model | Raw decompiler output
Mean distance | 12.36 | 15.92
Median distance | 0.00 | 5.00
Perfect matches | 75.0 percent | 34.9 percent

The model produced code the checker could parse in 99.9 percent of cases.

  • License: Apache 2.0
  • Cost to run: none named, you supply the hardware
  • Data it reaches: the decompiled code you pass in
  • Not for: optimized binaries, since the card covers only the O0 split

On Hugging Face, 13 November 2026

  • Task: text generation
  • Parameters: 4.7B
  • Weights: about 9.3 GB in BF16; about 2.3 GB at 4-bit (estimate)
  • Formats: Safetensors
  • Downloads in the last 30 days: 162
  • Likes: 9
  • License: apache-2.0
  • Languages: en
  • Based on: Qwen/Qwen3.5-4B
  • Quantized versions: 1
  • Tags: safetensors, qwen3_5, decompilation, code, security, reverse-engineering, text-generation, conversational

Links

Get the model

Download its files with Hugging Face's command line:

pip install -U huggingface_hub
hf download Divij/Qwen3.5-4B-SFT-decompiler-O0-full

Then follow the usage in its model card. Nothing in this kit runs by itself.

Files
README.md  6 KB

1 file, 6 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-13

Compare with similar

Listed Hugging Face models in the same category that share the most tags with this one.

ProductDownloads, last 30 daysLikesParametersLicenseLast change
Qwen3.5-4B-SFT-decompiler-O0-full This page16294.7Bapache-2.0
VulnLLM-R-7B-8bitShares security · code · text-generation14847.6Bapache-2.0
CCORE GLB-3D-CoderShares code · qwen3_5 · text-generation51,9143444.5Bapache-2.0
Terminal-RSI-27BShares code · qwen3_5 · text-generation2,5363327.8Bapache-2.0
Slonik-27B-oQ8-mtpShares code · qwen3_5 · text-generation498327.3Bapache-2.0
Temper-2-NodelShares code · qwen3_5 · text-generation45134.2Bapache-2.0
Numbers as Mindket last read them, from 2026-11-12 to 2026-11-13.

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Developer

See all in Developer

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k

buzz

block · Kit

Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…

New37.3k

plannotator

backnotprop · Kit

Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.

New10.5k