avast / avast/retdec

fileinfo: Anomalies in PE files

Open
#415 2 comments 0 reactions 0 assignees View on GitHub
C-fileformat C-fileinfo new-feature T-format-pe
Dominant language
C++
Stars
8.6k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

PE files (or generally other executable files, but let's stick to PE files in this ticket) do not necessarily need to conform to the PE specification in order to be loadable by Windows. There are often many discrepancies and violations of the specification and the file still remains valid. This is often abused by malware authors in order to make analysis of the file more complicated. These, so called _anomalies_, can be used as initial indicators that something fishy is going on. They can also be used by another tools which use `fileinfo` as their source of data in order to focus on things pointed out by these indicators.

The indicators would be presented by `fileinfo` in form of list. Indicators would also possibly be parameterized if it is necessary. Indicators can also possibly be split into categories by their severity.

I am not going to list here all the possible anomalies that are going to be implemented here because I don't even know them all myself and the list would be infinite. We can start with the detection of unusual values in PE header and work our way from that. This is more of a research than definite task.

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no files, tests, or entry points. Start by locating fileinfo's PE-header parsing and reviewing how existing parsed values are exposed; then identify a narrowly scoped first anomaly and define tests for its indicator and any severity or parameter output. Done should include a focused anomaly detection behavior with coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
reverse-engineering, security
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.