Signatures: search multiple paths, environment variable?
- Dominant language
- C++
- Stars
- 8.6k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
Packaging retdec currently requires bundling all signatures ~4GB unpacked, many of which a user may not want. For example I personally don't have use for PE signatures, while naturally many people do. They might not find my signatures useful. Or whatever.
Instead of having retdec look to a fixed location (or require user intervention to specify an alternative path), could retdec support reading from multiple locations?
This way the same retdec binaries could be made to use any combination of signature collections-- making it natural to split the large database into optional components.
This also would make it easy for folks to convince retdec to use their additional signatures locally generated, allows updating signatures separately from retdec, and could be used for third-party signature collections (although hopefully for the most part everyone helps create a common collection).
Search path environment variable could be something like "RETDEC_SIGNATURES_PATH".
Benefit of env var is that users don't have to invoke tools differently, setting variables is something a package manager could facilitate.
Thoughts? I haven't looked much at how signatures are searched/loaded, so one question I hope you can answer is if this is even possible/reasonable given the current notion of signatures.
I'd be happy to help implement and test this if folks think this would be useful/a good idea.
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names no files, tests, or signature-loading entry points. First locate how RetDec searches and loads signatures, then clarify the search-path semantics and environment-variable behavior with maintainers. Done would mean supporting multiple signature locations without requiring different binaries, but the scope and validation approach are not defined here.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- reverse-engineering, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100