Installing and Troubleshooting pip and uv

# Installing and Troubleshooting pip and uv Most [[Python Essentials for Security Scripting|Python]] installations ship with `pip`, but it can be missing, outdated, or not on you…

Debugger Suspend Does Not Kill the Process

In a [[Debugger attach and ASLR rebasing pitfalls|debugger]], **suspend** means pausing the target process, not killing it. The OS scheduler simply stops giving the process CPU ti…

Address Types in Reverse Engineering

# Address Types in Reverse Engineering When analyzing a binary you will see several different address spaces. The same byte can be described by each of them depending on which to…

C2 Server vs Persisted Shell

# C2 Server vs Persisted Shell A **C2 (command-and-control) server** and a **persisted shell** are related but distinct concepts in offensive security. ## C2 Server A C2 server…

JavaScript fetch with Credentials

Using `fetch` with Credentials in JavaScript When you call an API from JavaScript, the browser's `fetch` API does **not** automatically send cookies or HTTP authentication header…

WebSocket Protocol Security

# WebSocket Protocol Security WebSockets are a **full-duplex, persistent communication channel** built on top of TCP, initiated through an HTTP-compatible upgrade handshake. Once…

Parsing Binary Formats with Construct

# Parsing Binary Formats with Construct `construct` is a Python library that lets you describe binary file layouts as data structures instead of writing manual `struct.unpack` ca…

Python File Handling Pitfalls Cheat Sheet

# Python File Handling Pitfalls Cheat Sheet When writing security scripts that ingest logs, configs, signatures, or binary payloads, small file-handling mistakes can silently bre…

Global Variables in Python

# Global Variables in Python A **global variable** in Python is a variable declared at the top level of a module file, outside any function or class. It is accessible anywhere in…

Defensive Input Handling for Security Scripts

# Defensive Input Handling for Security Scripts Security scripts often process data that comes from untrusted or messy sources: scan output, logs, network traffic, user uploads, …

Counter in Python

# Counter in Python `Counter` is a specialized dictionary class from the `collections` module in Python's standard library. It is designed for **counting hashable objects**. ## …

Exiting a Python Script Cleanly

# Exiting a Python Script Cleanly Scripts need to finish in a way that tells the caller (or the shell) whether they succeeded or failed. The way you exit matters for automation, …