
ローカルで動作するLLMを利用して擬似コード解析を支援するリバースエンジニアリング支援ツール。
"ソフトウェア開発における欠陥の大部分は、プログラマーが自分のコードが実行され得るすべての状態を完全に理解していないことに起因する。" -- John Carmack
"Can it run Doom?" -- https://canitrundoom.org/
Oneiromancer は、Hex-Rays の擬似コード向けにファインチューニングされたローカル実行の LLM を利用するリバースエンジニアリング支援ツールで、コード解析を支援します。関数またはより小さなコードスニペットを解析し、コードが何を行うかの高水準の説明、推奨される関数名、および解析結果に基づく変数名の付け替え候補を返します。

mistral-7b-instruct をベースとしたファインチューニング済み LLM aidapal のクロスプラットフォーム対応。analyze_code または analyze_file を呼び出して擬似コードを解析し、解析結果を処理できます。最新リリースを入手する最も簡単な方法は crates.io を利用することです:
cargo install oneiromancer
ライブラリとしてインストールするには、プロジェクトディレクトリで次のコマンドを実行します:
cargo add oneiromancer
あるいは、ソース からビルドすることもできます:
git clone https://github.com/0xdea/oneiromancer
cd oneiromancer
cargo build --release
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 に一度に1つの関数を解析させてください。
Ollama 0.32.9 で以下でテスト済み:
aidapal に感謝します <3