
Reverse engineering assistant that uses a locally running LLM to aid with pseudocode analysis.
"A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in." -- John Carmack
"Can it run Doom?" -- https://canitrundoom.org/
Oneiromancer is a reverse engineering assistant that uses a locally running LLM that has been fine-tuned for Hex-Rays pseudocode to aid with code analysis. It can analyze a function or a smaller code snippet, returning a high-level description of what the code does, a recommended name for the function, and variable renaming suggestions, based on the results of the analysis.

mistral-7b-instruct.analyze_code or analyze_file to analyze pseudocode and then process analysis results.The easiest way to get the latest release is via crates.io:
cargo install oneiromancer
To install as a library, run the following command in your project directory:
cargo add oneiromancer
Alternatively, you can build from source:
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] For best results, submit one function at a time to be analyzed by the LLM.
Tested with Ollama 0.32.9 on:
aidapal <3aidapal IDA Pro plugin (e.g., context).aidapal LLM and implement a modular architecture to plug in custom LLMs.