|
9 | 9 | from pydefendercheck import DefenderScanner |
10 | 10 | from rich import rich_it |
11 | 11 | from spoof_check import scheck_it |
| 12 | +from yara_scan import valhalla_scan |
12 | 13 |
|
13 | 14 | parser = argparse.ArgumentParser(description='PE informations') |
14 | 15 | parser.add_argument(dest='filenames',metavar='filename', nargs='*') |
15 | 16 | parser.add_argument('-a', '--all', dest='all', action='store_true', help='perform all modules') |
16 | 17 | parser.add_argument('-c', '--capa', dest='capa', action='store_true', help='perform a CAPA scan') |
17 | 18 | parser.add_argument('-s', '--scan', dest='scan', action='store_true', help='perform a defender engine scan (WARNING:before lauching that scan you need to adjust Defender settings to: Defender ON, Submission OFF)') |
| 19 | +parser.add_argument('-y', '--yara', dest='yara', action='store_true', help='perform a yara scan using Valhalla\'s free rules') |
18 | 20 | parser.add_argument('-v', dest='verbose', action='store_true', help='verbose mode') |
19 | 21 | args = parser.parse_args() |
20 | 22 |
|
@@ -89,16 +91,21 @@ def CapaReport(filename): |
89 | 91 |
|
90 | 92 | def main(): |
91 | 93 | for filename in args.filenames: |
92 | | - print(f'{"==================================================":<50} {"File informations":^20} {"==================================================":>50}') |
| 94 | + print(f'{"==================================================":<50} {"File informations":^30} {"==================================================":>50}') |
93 | 95 | SingleFileInfo(filename) |
94 | 96 | if args.capa or args.all: |
95 | 97 | print() |
96 | | - print(f'{"==================================================":<50} {"Capa analysis":^20} {"==================================================":>50}') |
| 98 | + print(f'{"==================================================":<50} {"Capa analysis":^30} {"==================================================":>50}') |
97 | 99 | CapaReport(filename) |
98 | 100 | if args.scan or args.all: |
99 | 101 | print() |
100 | | - print(f'{"==================================================":<50} {"Defender scan":^20} {"==================================================":>50}') |
| 102 | + print(f'{"==================================================":<50} {"Defender scan":^30} {"==================================================":>50}') |
101 | 103 | scanner = DefenderScanner(Path(filename)) |
102 | 104 | print(scanner.result) |
| 105 | + if args.yara or args.all: |
| 106 | + print() |
| 107 | + print(f'{"==================================================":<50} {"Yara (Valhalla rules) scan":^30} {"==================================================":>50}') |
| 108 | + valhalla_scan(filename) |
| 109 | + |
103 | 110 |
|
104 | 111 | main() |
0 commit comments