{"id":13422820,"url":"https://github.com/naim94a/lumen","last_synced_at":"2025-12-26T23:53:21.934Z","repository":{"id":43914206,"uuid":"322103584","full_name":"naim94a/lumen","owner":"naim94a","description":"A private Lumina server for IDA Pro","archived":false,"fork":false,"pushed_at":"2024-10-01T22:05:32.000Z","size":362,"stargazers_count":922,"open_issues_count":10,"forks_count":102,"subscribers_count":33,"default_branch":"master","last_synced_at":"2024-10-28T00:00:50.010Z","etag":null,"topics":["collaboration","ida","ida-pro","lumen","lumina","reverse-engineering"],"latest_commit_sha":null,"homepage":"https://lumen.abda.nl/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/naim94a.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://www.paypal.com/donate?hosted_button_id=MY6BP9XQ8UN2E\u0026source=url"]}},"created_at":"2020-12-16T21:14:24.000Z","updated_at":"2024-10-27T16:33:42.000Z","dependencies_parsed_at":"2024-02-26T00:22:59.554Z","dependency_job_id":"2efe55af-9201-4d93-bd0b-ff53d9ee61b9","html_url":"https://github.com/naim94a/lumen","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naim94a%2Flumen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naim94a%2Flumen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naim94a%2Flumen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naim94a%2Flumen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/naim94a","download_url":"https://codeload.github.com/naim94a/lumen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243731049,"owners_count":20338763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collaboration","ida","ida-pro","lumen","lumina","reverse-engineering"],"created_at":"2024-07-30T23:00:58.415Z","updated_at":"2025-12-26T23:53:21.921Z","avatar_url":"https://github.com/naim94a.png","language":"Rust","readme":"# Lumen\n\nA private Lumina server that can be used with IDA Pro 7.2+.\n\n[lumen.abda.nl](https://lumen.abda.nl/) runs this server.\n\nYou can read about the protocol research [here](https://abda.nl/posts/introducing-lumen/).\n\n## Features\n\n- Stores function signatures so you (and your team) can quickly identify functions that you found in the past using IDA's built-in Lumina features.\n- Backed by PostgreSQL\n- Experimental HTTP API that allows querying the database for comments by file or function hash.\n\n## Getting Started\n\n### Docker Method (Recommended)\n\nIn this method precompiled docker images will be downloaded, All you need is [docker-compose.yml](./docker-compose.yml).\n\n1. Install `docker-engine` and `docker-compose`.\n2. If using a custom TLS certificate, copy the private key (`.p12`/`.pfx` extension) to `./dockershare` and set the key password in `.env` as `PKCSPASSWD`.\n3. If using a custom Lumen config, copy it to `./dockershare/config.toml`.\n4. Otherwise, or if you have finished these steps, just run `docker-compose up`.\n5. Regardless, if TLS is enabled in the `config.toml`, a `hexrays.crt` will be generated in `./dockershare` to be copied to the IDA install directory.\n\n### Building from source with Rust\n\n1. `git clone https://github.com/naim94a/lumen.git`\n2. Get a rust toolchain: https://rustup.rs/\n3. `cd lumen`\n4. Setup a the database\n\n   - install postgres\n   - install diesel-cli and run migrations:\n\n     ```bash\n     cargo install diesel_cli --no-default-features -Fpostgres\n     diesel --config-file common/diesel.toml \\\n        --database-url postgres://postgres:password@localhost/lumen \\\n        migration run\n     ```\n\n5. `cargo build --release`\n\n### Usage\n\n```bash\n./lumen -c config.toml\n```\n\n### Configuring IDA\n\n#### IDA Pro \u003e= 8.1\n\nIf you used LUMEN in the past, remove the LUMINA settings in the ida.cfg or idauser.cfg files, otherwise you will get a warning about\nbad config parameters.\n\n##### Setup under Linux :\n\n```bash\n#!/bin/sh\nexport LUMINA_TLS=false\n$1\n```\n\n- save as ida_lumen.sh, \"chmod +x ida_lumen.sh\", now you can run IDA using \"./ida_lumen.sh ./ida\" or \"./ida_lumen ./ida64\"\n\n##### Setup under Windows :\n\n```batch\nset LUMINA_TLS=false\n%1\n```\n\n- save as ida_lumen.bat, now you can run IDA using \"./ida_lumen.bat ida.exe\" or \"./ida_lumen.bat ida64.exe\"\n\n##### Setup IDA\n\n- Go to Options, General, Lumina. Select \"Use a private server\", then set your host and port and \"guest\" as username and password. Click on ok.\n\n#### IDA Pro \u003c 8.1\n\nYou will need IDA Pro 7.2 or above in order to use _lumen_.\n\n\u003e The following information may get sent to _lumen_ server: IDA key, Hostname, IDB path, original file path, file MD5, function signature, stack frames \u0026 comments.\n\n- In your IDA's installation directory open \"cfg\\ida.cfg\" with your favorite text editor _(Example: C:\\Program Files\\IDA Pro 7.5\\cfg\\ida.cfg)_\n- Locate the commented out `LUMINA_HOST`, `LUMINA_PORT`, and change their values to the address of your _lumen_ server.\n- If you didn't configure TLS, Add \"LUMINA_TLS = NO\" after the line with `LUMINA_PORT`.\n\nExample:\n\n```C\nLUMINA_HOST = \"192.168.1.1\";\nLUMINA_PORT = 1234\n\n// Only if TLS isn't used:\nLUMINA_TLS = NO\n```\n\n### Configuring TLS\n\nIDA Pro uses a pinned certificate for Lumina's communcation, so adding a self-signed certificate to your root certificates won't work.\nLuckily, we can override the hard-coded public key by writing a DER-base64 encoded certificate to \"hexrays.crt\" in IDA's install directory.\n\nYou may find the following commands useful:\n\n```bash\n# create a certificate\nopenssl req -x509 -newkey rsa:4096 -keyout lumen_key.pem -out lumen_crt.pem -days 365 -nodes\n\n# convert to pkcs12 for lumen; used for `lumen.tls` in config\nopenssl pkcs12 -export -out lumen.p12 -inkey lumen_key.pem -in lumen_crt.pem\n\n# export public-key for IDA; Copy hexrays.crt to IDA installation folder\nopenssl x509 -in lumen_crt.pem -out hexrays.crt\n```\n\nNo attempt is made to merge function data - this may cause a situation where metadata is inconsistent.\nInstead, the metadata with the highest calculated score is returned to the user.\n\n---\n\nDeveloped by [Naim A.](https://github.com/naim94a); License: MIT.\n","funding_links":["https://www.paypal.com/donate?hosted_button_id=MY6BP9XQ8UN2E\u0026source=url"],"categories":["IDA Plugins","Rust","Reverse Engineering"],"sub_categories":["Malware Articles and Sources"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaim94a%2Flumen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnaim94a%2Flumen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaim94a%2Flumen/lists"}