NVIDIA software reverse engineering

Static-analysis corpus of NVIDIA App 11.0.9.585, NvContainer, FrameView SDK and the whole C:\Program Files\NVIDIA Corporation tree. 131 PE images, 1,180,302 decompiled functions, 14 recovered Protocol Buffers schemas.

View on GitHub

NvPerfMon.dll

391ce3350020cd47f5ab8ab5f14261b64de11d97b93358602dbb73a5a20d13b8

Identity

Property Value
Architecture AMD64
Source size 3,034,224 bytes
Preferred image base 0x180000000
Entry RVA 0x1d90
Imports / exports 383 / 1
Exception/unwind ranges 12,701
Executable raw bytes 2,376,192

Physical paths:

Decompilation coverage

Complete with errors: 12,872 successful reconstructions, 4 failures, 12,876 attempted entries, 12,876 reported discovered entries.

Counts refer to automated analysis, not manual review or recovered source code. Function boundaries can change during analysis.

Sections

Section RVA Raw offset Raw bytes Virtual bytes R / W / X Entropy
.text 0x1000 1024 2,376,192 2,376,185 yes / no / yes 5.133
.rdata 0x246000 2377216 411,648 411,395 yes / no / no 4.8862
.data 0x2ab000 2788864 20,480 49,489 yes / yes / no 3.9921
.pdata 0x2b8000 2809344 168,448 167,952 yes / no / no 5.9098
.idata 0x2e2000 2977792 26,112 25,996 yes / no / no 4.2851
.gfids 0x2e9000 3003904 5,120 4,740 yes / no / no 3.3454
.giats 0x2eb000 3009024 512 276 yes / no / no 0.1701
.tls 0x2ec000 3009536 1,024 777 yes / yes / no 0.0112
.00cfg 0x2ed000 3010560 512 373 yes / no / no 0.4241
.rsrc 0x2ee000 3011072 1,536 1,494 yes / no / no 4.0513
.reloc 0x2ef000 3012608 11,264 11,117 yes / no / no 1.9531

PE mitigation flags

Flag Present
dynamic_base true
high_entropy_va true
nx_compat true
guard_cf_flag true
no_seh false
appcontainer false
force_integrity false

Extracted native interfaces

Name Command Notification Description
EnablePerfStatsNotification True False enable/disable sending performance matrix notification
RegisterPerfStatsNotifications True False perf stats notifications
SetProcessId True False set the process id of application, plugin would send the perf. metrics for given process
SetMetricSampleSize True False set the sample size of the metrics, plugin would send the perf. metrics based on the sample size
ResetAverageMetrics True False Reset average metrics calculation from FvSDK
GetDefaultLoggingPath True False Return default path of perfmetrics logging
LoggingToggle True False Start/stop Perfmetrics logging and set log path
AlignLatencyMonitoringRectangle True False Align Latency Monitoring Rectangle from FvSDK
GetRLAMonitorSupport True False Check for RLA Monitor
ShowFlashIndicator True False Set Flash Indicator Visibilty
SetFlashIndicatorSize True False Set Flash Indicator size
GetGpuInfo True False Provides information about OverClocking support
powerStatusNotification True False Power status updates. 0-AC , 1-DC, 2-Short term power supply like UPS, 3-Unknown or out of range
CheckRLASupportedDriver True False Check for RLA supported Driver version
GetNGXOverrideState True False Gets NGXOverride SR state.

Evidence

Large artifacts require Git LFS. A filename hash identifies the original PE; the content of a generated artifact has a different digest.

Module catalog ยท Research overview