Skip to content

Instantly share code, notes, and snippets.

View mwollenweber's full-sized avatar

Matthew Wollenweber mwollenweber

View GitHub Profile
@mwollenweber
mwollenweber / CLAUDE.md
Last active October 7, 2026 14:24
Personal CLAUDE.md for Matt Wollenweber

About Me

  • My name is Matthew Wollenweber. I sometimes go by Matt or MJW. Use Matthew Wollenweber for bylines and signatures.
  • Principal cybersecurity engineer at Axonius, a late-stage cybersecurity startup.
  • Primary skills are security operations, detection engineering, SOAR, and incident response. Much of my work is DFIR and malware analysis.
  • Professional Python programmer. Degrees in CS and mathematics.
  • I work extensively fighting mass surveillance, facial recognition technology (FRT), and ALPRs.
  • BJJ brown belt at NOLABJJ. I have trained since September 2012.
  • I have two bulldogs: Chanel and Percy. Percy is a rescue from the New Orleans Bulldog Rescue.
  • Based in New Orleans. Use US Central time for scheduling and everyday times.
  • Use this background only when it is directly relevant to the request. Do not work it into unrelated answers.
@mwollenweber
mwollenweber / dump.py
Last active September 25, 2026 15:47
#!/usr/bin/env python3
"""
Dump raw NOPD drone flight JSON from the public Skydio/ArcGIS feature layer.
python dump.py 2026-01-01 2026-12-31 -o flights.json
# with flight paths, as GeoJSON — opens in QGIS
python dump.py 2026-01-01 2026-12-31 --geojson -g -o flights.geojson
# one flight per line, for jq
#!/usr/bin/env python3
"""Render the FUCK TRUMP poster as a 72x16 PNG for the BUSY Bar front display.
Ten characters have to fit where FUCK ICE had eight, so the cell drops from
8px to 6px and the gap from 2px to 1px. That 1px gap is what forces the
shadow decision -- see SHADOW_OFFSETS.
Matthew Wollenweber
mjw@insomniac.tech
#!/usr/bin/env python3
"""
Render the FUCK ICE poster as a 72x16 PNG for the BUSY Bar front display.
Matthew Wollenweber
mjw@insomniac.tech
"""
import hashlib
import struct
import sys
#!/bin/bash
# Matthew Wollenweber
# mjw@insomniac.tech
unalias rm
setopt rm_star_silent
qlmanage -r cache
sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'delete from LSQuarantineEvent'
defaults delete ~/Library/Preferences/com.apple.finder GoToField
from flask import Flask, request, jsonify
from uuid import uuid4
app = Flask(__name__)
app.secret_key = 'password42' # For session management
# requests come with these parameters from the frontend in `metadata`:
# 1. `user_agent`: the user agent of the client
# 2. `user_id`: a unique ID assigned to each user
# 3. `user_ip`: the user's ip address
@mwollenweber
mwollenweber / gist:9ef0da8f1ff3e7b0e40524f3d58ca18b
Last active September 30, 2026 21:21
Clean OneDrive on MacOS Aggressively
open /Applications/OneDrive.app/Contents/Resources/ResetOneDriveAppStandalone.command
open /Applications/OneDrive.app/Contents/Resources/RemoveOneDriveCreds.command
rm -rf ~/Library/Application\ Support/com.microsoft.OneDrive
rm -rf ~/Library/Application\ Support/OneDrive
rm -rf ~/Library/Caches/com.microsoft.OneDrive
rm -rf ~/Library/Caches/OneDrive
rm -rf ~/Library/Caches/com.microsoft.OneDrive
rm -rf ~/Library/CloudStorage/OneDrive*
rm -rf ~/Library/Containers/com.microsoft.com.OneDrive*
rm -rf ~/OneDrive*
// Query for Microsoft Defender Antivirus detections.
// Query #1: Query for Antivirus detection events
DeviceEvents
| where ActionType == "AntivirusDetection"
| extend ParsedFields=parse_json(AdditionalFields)
| project ThreatName=tostring(ParsedFields.ThreatName),
WasRemediated=tobool(ParsedFields.WasRemediated),
WasExecutingWhileDetected=tobool(ParsedFields.WasExecutingWhileDetected),
FileName, SHA1, InitiatingProcessFileName, InitiatingProcessCommandLine,
DeviceName, Timestamp
#!/usr/bin/env python
import copy
import io
import json
import os
import pprint
import sys
import time
from collections import OrderedDict
from urllib.parse import urlencode
@mwollenweber
mwollenweber / models.py
Last active February 12, 2016 19:54
gAudit Module to resolve and store IP addresses from Alexa
'''
services/alexa/models.py
Copyright Matthew Wollenweber 2014
mjw@insomniac.technology
1. Fetch the Alexa Top 1M list
2. Resolve the domain and www.domain to IP addresses
3. Insert those IPs into a database using SQLAlechemy