24 lines
810 B
Python
24 lines
810 B
Python
from flask import Blueprint, request, jsonify
|
|
import oletools.oleid
|
|
from utils.file_handler import allowed_file, delete_file, save_file
|
|
|
|
oleid_bp = Blueprint('oleid', __name__)
|
|
|
|
@oleid_bp.route('/analyze', methods=['POST'])
|
|
def analyze_ole():
|
|
if 'file' not in request.files:
|
|
return jsonify({'error': 'No file uploaded'}), 400
|
|
|
|
file = request.files['file']
|
|
if file.filename == '' or not allowed_file(file.filename):
|
|
return jsonify({'error': 'Invalid or unsupported file type'}), 400
|
|
|
|
filepath = save_file(file)
|
|
|
|
# Analyze with oleid
|
|
oid = oletools.oleid.OleID(filepath)
|
|
indicators = oid.check()
|
|
results = {indicator.name: indicator.value for indicator in indicators}
|
|
delete_file(filepath)
|
|
|
|
return jsonify({'filename': file.filename, 'analysis': results})
|