Autarch/web/routes/rfid_tools.py
DigiJ 2322f69516 v2.2.0 — Full arsenal expansion: 16 new security modules
Add WiFi Audit, API Fuzzer, Cloud Scanner, Threat Intel, Log Correlator,
Steganography, Anti-Forensics, BLE Scanner, Forensics, RFID/NFC, Malware
Sandbox, Password Toolkit, Web Scanner, Report Engine, Net Mapper, and
C2 Framework. Each module includes CLI interface, Flask routes, and web
UI template. Also includes Go DNS server source + binary, IP Capture
service, SYN Flood, Gone Fishing mail server, and hack hijack modules
from v2.0 work.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 05:20:39 -08:00

91 lines
2.6 KiB
Python

"""RFID/NFC Tools routes."""
from flask import Blueprint, request, jsonify, render_template
from web.routes.auth_routes import login_required
rfid_tools_bp = Blueprint('rfid_tools', __name__, url_prefix='/rfid')
def _get_mgr():
from modules.rfid_tools import get_rfid_manager
return get_rfid_manager()
@rfid_tools_bp.route('/')
@login_required
def index():
return render_template('rfid_tools.html')
@rfid_tools_bp.route('/tools')
@login_required
def tools_status():
return jsonify(_get_mgr().get_tools_status())
@rfid_tools_bp.route('/lf/search', methods=['POST'])
@login_required
def lf_search():
return jsonify(_get_mgr().lf_search())
@rfid_tools_bp.route('/lf/read/em410x', methods=['POST'])
@login_required
def lf_read_em():
return jsonify(_get_mgr().lf_read_em410x())
@rfid_tools_bp.route('/lf/clone', methods=['POST'])
@login_required
def lf_clone():
data = request.get_json(silent=True) or {}
return jsonify(_get_mgr().lf_clone_em410x(data.get('card_id', '')))
@rfid_tools_bp.route('/lf/sim', methods=['POST'])
@login_required
def lf_sim():
data = request.get_json(silent=True) or {}
return jsonify(_get_mgr().lf_sim_em410x(data.get('card_id', '')))
@rfid_tools_bp.route('/hf/search', methods=['POST'])
@login_required
def hf_search():
return jsonify(_get_mgr().hf_search())
@rfid_tools_bp.route('/hf/dump', methods=['POST'])
@login_required
def hf_dump():
data = request.get_json(silent=True) or {}
return jsonify(_get_mgr().hf_dump_mifare(data.get('keys_file')))
@rfid_tools_bp.route('/hf/clone', methods=['POST'])
@login_required
def hf_clone():
data = request.get_json(silent=True) or {}
return jsonify(_get_mgr().hf_clone_mifare(data.get('dump_file', '')))
@rfid_tools_bp.route('/nfc/scan', methods=['POST'])
@login_required
def nfc_scan():
return jsonify(_get_mgr().nfc_scan())
@rfid_tools_bp.route('/cards', methods=['GET', 'POST', 'DELETE'])
@login_required
def cards():
mgr = _get_mgr()
if request.method == 'POST':
data = request.get_json(silent=True) or {}
return jsonify(mgr.save_card(data.get('card', {}), data.get('name')))
elif request.method == 'DELETE':
data = request.get_json(silent=True) or {}
return jsonify(mgr.delete_card(data.get('index', -1)))
return jsonify(mgr.get_saved_cards())
@rfid_tools_bp.route('/dumps')
@login_required
def dumps():
return jsonify(_get_mgr().list_dumps())
@rfid_tools_bp.route('/keys')
@login_required
def default_keys():
return jsonify(_get_mgr().get_default_keys())
@rfid_tools_bp.route('/types')
@login_required
def card_types():
return jsonify(_get_mgr().get_card_types())