|
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