Skip to content

Instantly share code, notes, and snippets.

@KilledKenny
Created August 7, 2021 19:10
Show Gist options
  • Save KilledKenny/807de4264110a0acd66a25358d18dade to your computer and use it in GitHub Desktop.
Save KilledKenny/807de4264110a0acd66a25358d18dade to your computer and use it in GitHub Desktop.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from pathlib import Path
from typing import List, FrozenSet
from semgrep.config_resolver import resolve_targets
from semgrep.semgrep_types import Language
from semgrep import target_manager
TM = target_manager.TargetManager
class FakeTargetManager(TM):
def __init__(self, *args,**kwargs):
super(FakeTargetManager,self).__init__(*args,**kwargs)
self.targets = self._resolv_arg_lists(self.targets)
self.includes = self._resolv_arg_lists(self.includes)
self.excludes = self._resolv_arg_lists(self.excludes)
@staticmethod
def _resolv_arg_lists(args: List[str]) -> List[str]:
ret = []
for arg in args:
if arg[0] == "@":
with open(arg[1:]) as argFile:
ret.extend([line.rstrip() for line in argFile])
else:
ret.append(arg)
return ret
target_manager.TargetManager=FakeTargetManager
print ("@file POC")
#Now lets semgrep like nothing happend up there...
import re
import sys
from semgrep.__main__ import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment