(data: bytes, filename: str, useBrotli=True, verify=False, no_exec=False)
| 10 | |
| 11 | |
| 12 | def scannerDetectsBytes(data: bytes, filename: str, useBrotli=True, verify=False, no_exec=False): |
| 13 | if config.get("avred_server") == "": |
| 14 | logger.error("No AVRed server configured, aborting") |
| 15 | return |
| 16 | params = { 'filename': filename, 'brotli': useBrotli, 'verify': verify, 'no_exec' : no_exec} |
| 17 | |
| 18 | if useBrotli: |
| 19 | scanData = brotli.compress(data) |
| 20 | else: |
| 21 | scanData = data |
| 22 | |
| 23 | timeStart = time.time() |
| 24 | logger.info("Send to exec/exe: {}".format(params)) |
| 25 | res = req.post("{}/exec/exe".format(config.get("avred_server")), params=params, data=scanData, timeout=10) |
| 26 | jsonRes = res.json() |
| 27 | scanTime = round(time.time() - timeStart, 3) |
| 28 | logger.info("Response: {}s: {}".format(scanTime, jsonRes)) |
| 29 | |
| 30 | |
| 31 | # basically internal server error, e.g. AMSI not working |
| 32 | if res.status_code != 200: |
| 33 | logger.error("Error Code {}: {}".format(res.status_code, res.text)) |
| 34 | raise Exception("Server error, aborting") |
| 35 | |
| 36 | return jsonRes |
no test coverage detected