avast / avast/retdec

Signatures: search multiple paths, environment variable?

Open
#162 3 comments 1 reaction 0 assignees View on GitHub
enhancement Q-discussion T-static-code
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.