# Output backends for sigmac # Copyright 2020 Danijel Grah (dgrah@nil.com) # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . # How to use it in your CSharp program: # public Dictionary sigmas = new Dictionary(); # Dictionary evnt = new Dictionary(); # this.evnt.Add(Key, Value); # sigmas["rules/windows/process_creation/win_cmdkey_recon.yml"] = THE OUTPUT OF csharp BACKEND import re import sigma from .base import SingleTextQueryBackend from .mixins import MultiRuleOutputMixin class CSharpBackend(SingleTextQueryBackend): """Converts Sigma rule into CSharp Regex in LINQ query.""" identifier = "csharp" active = True config_required = False default_config = ["sysmon"] reEscape = re.compile('((?