Skip to content

Commit e7cc357

Browse files
authored
Gfs/#579 (#582)
* Set version to '2.4-alpha' * Update Readme.md (#581) * Update README.md * Some cleanup * Update OpenPortCollector.cs * Update CommandOptions.cs * Fix Getting Process Names * Update EventLogCollector.cs * Update FileSystemMonitor.cs * Update CollectorTests.cs * Update CollectorTests.cs * Update CollectorTests.cs * Update CollectorTests.cs * Update version.json * Update version.json
1 parent 9aa8b4e commit e7cc357

File tree

10 files changed

+31
-29
lines changed

10 files changed

+31
-29
lines changed

Cli/Components/CollectorOptions/FileCollectorOptions.razor

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
<div class="form-row">
2525
<div class="col-9 mb-1">
2626
<select class="form-control @directorySelectElementGlowClass.ClassName" id="selectedDirectoriesList" @bind="SelectedDirectoryTop">
27-
@for (var i = 0; i < appData.CollectOptions.SelectedDirectories.Count; i++)
27+
@for (var i = 0; i < appData.CollectOptions.SelectedDirectories.Count(); i++)
2828
{
29-
<option value="@i">@appData.CollectOptions.SelectedDirectories[i]</option>
29+
<option value="@i">@appData.CollectOptions.SelectedDirectories.ToList()[i]</option>
3030
}
3131
</select>
3232
</div>
@@ -71,17 +71,17 @@
7171

7272
void RemoveInputFromList()
7373
{
74-
if (appData.CollectOptions.SelectedDirectories.Count > SelectedDirectoryTop)
74+
if (appData.CollectOptions.SelectedDirectories.Count() > SelectedDirectoryTop)
7575
{
76-
appData.CollectOptions.SelectedDirectories.RemoveAt(SelectedDirectoryTop);
76+
appData.CollectOptions.SelectedDirectories = appData.CollectOptions.SelectedDirectories.Except(appData.CollectOptions.SelectedDirectories.Skip(SelectedDirectoryTop-1).Take(1));
7777
Helper.ToggleGlow(() => InvokeAsync(StateHasChanged), directorySelectElementGlowClass, false);
7878
}
7979
}
8080

8181
void PushInputToList()
8282
{
83-
appData.CollectOptions.SelectedDirectories.Add(SelectedDirectoryInput);
84-
SelectedDirectoryTop = appData.CollectOptions.SelectedDirectories.Count - 1;
83+
appData.CollectOptions.SelectedDirectories = appData.CollectOptions.SelectedDirectories.Union(new string[] { SelectedDirectoryInput });
84+
SelectedDirectoryTop = appData.CollectOptions.SelectedDirectories.Count() - 1;
8585
Helper.ToggleGlow(() => InvokeAsync(StateHasChanged), directorySelectElementGlowClass, true);
8686
SelectedDirectoryInput = string.Empty;
8787
}

Cli/Components/CollectorOptions/RegistryCollectorOptions.razor

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
<div class="form-row">
2424
<div class="col-9 mb-1">
2525
<select class="form-control @directorySelectElementGlowClass.ClassName" id="selectedPathsList" @bind="SelectedHiveTop">
26-
@for (var i = 0; i < appData.CollectOptions.SelectedHives.Count; i++)
26+
@for (var i = 0; i < appData.CollectOptions.SelectedHives.Count(); i++)
2727
{
28-
<option value="@i">@appData.CollectOptions.SelectedHives[i]</option>
28+
<option value="@i">@appData.CollectOptions.SelectedHives.ToList()[i]</option>
2929
}
3030
</select>
3131
</div>
@@ -44,14 +44,14 @@
4444

4545
void RemoveInputFromList()
4646
{
47-
appData.CollectOptions.SelectedHives.RemoveAt(SelectedHiveTop);
47+
appData.CollectOptions.SelectedHives = appData.CollectOptions.SelectedDirectories.Except(appData.CollectOptions.SelectedDirectories.Skip(SelectedHiveTop-1).Take(1));
4848
Helper.ToggleGlow(() => InvokeAsync(StateHasChanged), directorySelectElementGlowClass, false);
4949
}
5050

5151
void PushInputToList()
5252
{
53-
appData.CollectOptions.SelectedHives.Add(SelectedHiveInput);
54-
SelectedHiveTop = appData.CollectOptions.SelectedHives.Count - 1;
53+
appData.CollectOptions.SelectedHives = appData.CollectOptions.SelectedHives.Union(new string[] { SelectedHiveInput });
54+
SelectedHiveTop = appData.CollectOptions.SelectedHives.Count() - 1;
5555
Helper.ToggleGlow(() => InvokeAsync(StateHasChanged), directorySelectElementGlowClass, true);
5656
SelectedHiveInput = string.Empty;
5757
}

Cli/Components/MonitorOptions/FileMonitorOptions.razor

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@
3030
<div class="form-row">
3131
<div class="col-9 mb-1">
3232
<select class="form-control @directorySelectElementGlowClass.ClassName" id="selectedDirectoriesList" @bind="SelectedDirectoryTop">
33-
@for (var i = 0; i < appData.MonitorOptions.MonitoredDirectories.Count; i++)
33+
@for (var i = 0; i < appData.MonitorOptions.MonitoredDirectories.Count(); i++)
3434
{
35-
<option value="@i">@appData.MonitorOptions.MonitoredDirectories[i]</option>
35+
<option value="@i">@appData.MonitorOptions.MonitoredDirectories.ToList()[i]</option>
3636
}
3737
</select>
3838
</div>
@@ -51,14 +51,14 @@
5151

5252
void RemoveInputFromList()
5353
{
54-
appData.MonitorOptions.MonitoredDirectories.RemoveAt(SelectedDirectoryTop);
54+
appData.MonitorOptions.MonitoredDirectories = appData.MonitorOptions.MonitoredDirectories.Except(appData.MonitorOptions.MonitoredDirectories.Skip(SelectedDirectoryTop-1).Take(1));
5555
Helper.ToggleGlow(() => InvokeAsync(StateHasChanged), directorySelectElementGlowClass, false);
5656
}
5757

5858
void PushInputToList()
5959
{
60-
appData.MonitorOptions.MonitoredDirectories.Add(SelectedDirectoryInput);
61-
SelectedDirectoryTop = appData.MonitorOptions.MonitoredDirectories.Count - 1;
60+
appData.MonitorOptions.MonitoredDirectories = appData.MonitorOptions.MonitoredDirectories.Union(new string[] { SelectedDirectoryInput });
61+
SelectedDirectoryTop = appData.MonitorOptions.MonitoredDirectories.Count() - 1;
6262
Helper.ToggleGlow(() => InvokeAsync(StateHasChanged), directorySelectElementGlowClass, true);
6363
SelectedDirectoryInput = string.Empty;
6464
}

Lib/Collectors/EventLogCollector.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,10 @@ public void ExecuteMacOs(CancellationToken cancellationToken)
189189
[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "Official documentation for this functionality does not specify what exceptions it throws. https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.eventlogentrycollection?view=netcore-3.0")]
190190
public void ExecuteWindows(CancellationToken cancellationToken)
191191
{
192+
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
193+
{
194+
return;
195+
}
192196
void ParseWindowsLog(EventLogEntry entry)
193197
{
194198
if (opts.GatherVerboseLogs || entry.EntryType.ToString() == "Warning" || entry.EntryType.ToString() == "Error")

Lib/Collectors/FileSystemMonitor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public FileSystemMonitor(MonitorCommandOptions opts, Action<FileMonitorObject> c
8383
GatherHashes = options.GatherHashes,
8484
});
8585

86-
foreach (var dir in options.MonitoredDirectories.Count > 0 ? options.MonitoredDirectories : fsc.Roots.ToList())
86+
foreach (var dir in (options?.MonitoredDirectories.Any() is true) ? options.MonitoredDirectories : fsc.Roots.ToList())
8787
{
8888
foreach (var filter in defaultFiltersList)
8989
{

Lib/Collectors/OpenPortCollector.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,8 @@ internal void ExecuteWindows(CancellationToken cancellationToken)
191191
{
192192
Address = endpoint.Address.ToString(),
193193
};
194-
foreach (ProcessPort p in Win32ProcessPorts.ProcessPortMap.FindAll(x => x.PortNumber == endpoint.Port))
195-
{
196-
obj.ProcessName = p.ProcessName;
197-
}
194+
195+
obj.ProcessName = Win32ProcessPorts.ProcessPortMap.Find(x => x.PortNumber == endpoint.Port)?.ProcessName;
198196

199197
HandleChange(obj);
200198
}

Lib/Objects/CommandOptions.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,13 @@ public class CollectorOptions : CommandOptions
119119
public string? RunId { get; set; }
120120

121121
[Option("directories", Required = false, HelpText = "comma separated list of paths to scan with FileSystemCollector", Separator = ',')]
122-
public List<string> SelectedDirectories { get; set; } = new List<string>();
122+
public IEnumerable<string> SelectedDirectories { get; set; } = new List<string>();
123123

124124
[Option("skip-directories", Required = false, HelpText = "comma separated list of paths to skip with FileSystemCollector", Separator = ',')]
125-
public List<string> SkipDirectories { get; set; } = new List<string>();
125+
public IEnumerable<string> SkipDirectories { get; set; } = new List<string>();
126126

127127
[Option("hives", Required = false, HelpText = "comma separated list of hives and subkeys to search.", Separator = ',')]
128-
public List<string> SelectedHives { get; set; } = new List<string>();
128+
public IEnumerable<string> SelectedHives { get; set; } = new List<string>();
129129

130130
[Option(HelpText = "Force singlethreaded collectors.")]
131131
public bool SingleThread { get; set; }
@@ -276,7 +276,7 @@ public class GuidedModeCommandOptions : CollectorOptions
276276
public bool FileNamesOnly { get; set; }
277277

278278
[Option(HelpText = "Comma-separated list of directories to monitor.", Separator = ',')]
279-
public List<string> MonitoredDirectories { get; set; } = new List<string>();
279+
public IEnumerable<string> MonitoredDirectories { get; set; } = new List<string>();
280280

281281
[Option(HelpText = "Directory to output to.")]
282282
public string? OutputPath { get; set; }
@@ -304,7 +304,7 @@ public class MonitorCommandOptions : CommandOptions
304304
public bool GatherHashes { get; set; }
305305

306306
[Option('d', "directories", Required = false, HelpText = "Comma-separated list of directories to monitor.", Separator = ',')]
307-
public List<string> MonitoredDirectories { get; set; } = new List<string>();
307+
public IEnumerable<string> MonitoredDirectories { get; set; } = new List<string>();
308308

309309
//[Option('r', "registry", Required = false, HelpText = "Monitor the registry for changes. (Windows Only)")]
310310
//public bool EnableRegistryMonitor { get; set; }

Lib/Utils/Win32OpenPortListenerHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static List<ProcessPort> ProcessPortMap
2929
}
3030
}
3131

32-
private static List<ProcessPort> CachedProcessPortMap = new List<ProcessPort>();
32+
private static List<ProcessPort>? CachedProcessPortMap = null;
3333

3434
/// <summary>
3535
/// This method distills the output from netstat -a -n -o into a list of ProcessPorts that provide

Tests/CollectorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ public void TestUserCollectorWindows()
507507
{
508508
Assert.IsTrue(AsaHelpers.IsAdmin());
509509
var user = System.Guid.NewGuid().ToString().Substring(0, 10);
510-
var password = "$" + CryptoHelpers.GetRandomString(13);
510+
var password = $"$A4%b^6a_";
511511

512512
var cmd = string.Format("user /add {0} {1}", user, password);
513513
ExternalCommandRunner.RunExternalCommand("net", cmd);

version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@
1616
"release": {
1717
"branchName": "release/v{version}"
1818
}
19-
}
19+
}

0 commit comments

Comments
 (0)