"软件开发中的很大一部分缺陷,源于程序员没有完全理解其代码可能执行的所有状态。" —— John Carmack
"它能运行 Doom 吗?" —— https://canitrundoom.org/
Oneiromancer 是一款逆向工程助手,它使用一个在本地运行、针对 Hex-Rays 伪代码进行过微调的 LLM 来辅助代码分析。它可以分析一个函数或较小的代码片段,并根据分析结果返回代码功能的高层描述、建议的函数名称以及变量重命名建议。

mistral-7b-instruct 微调的 LLM aidapal。analyze_code 或 analyze_file 来分析伪代码,然后处理分析结果。获取最新版本最简单的方式是通过 crates.io:
cargo install oneiromancer --locked
若要作为库安装,请在项目目录中运行以下命令:
cargo add oneiromancer
或者,你可以从源码构建:
git clone --depth 1 https://github.com/0xdea/oneiromancer
cd oneiromancer
cargo build --release --locked
wget https://huggingface.co/AverageBusinessUser/aidapal/resolve/main/aidapal-8k.Q4_K_M.gguf
wget https://huggingface.co/AverageBusinessUser/aidapal/resolve/main/aidapal.modelfile
ollama create aidapal -f aidapal.modelfile
ollama list
export OLLAMA_BASEURL=custom_baseurl # if not set, the default will be used
export OLLAMA_MODEL=custom_model # if not set, the default will be used
oneiromancer <target_file>.c
<target_file>.out.c 中查看改进后的伪代码:
vim <target_file>.out.c
code <target_file>.out.c
[!TIP] 为获得最佳效果,请一次提交一个函数交由 LLM 分析。
已在以下系统上使用 Ollama 0.32.9 测试:
aidapal <3