-
Notifications
You must be signed in to change notification settings - Fork 151
Open
Description
It seems reasonable to do a scan of the executable code on an entire system. To do this, I ran:
Get-PESecurity -Directory 'C:' -Recursive > pesecurity.log
Eventually the script started throwing errors:
Exception calling "ReadAllBytes" with "1" argument(s): "Exception of type 'System.OutOfMemoryException' was thrown."
At C:\Users\test_user\Get-PESecurity.psm1:399 char:5
+ $FileByteArray = [IO.File]::ReadAllBytes($CurrentFile)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : OutOfMemoryException
I'm not too keen on powershell to know where the problem is, but just looking at the memory usage of PowerShell when doing a recursive directory scan, it is mostly only increasing. I'd think that ideally as it crawls through the directories it analyzes a binary one at a time, outputting the results and releasing any allocated memory/objects for each one. The current behavior never actually gets to the point of outputting any results because it runs out of memory before it gets to that point.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels