Skip to content

Instantly share code, notes, and snippets.

Filippo Valsorda FiloSottile

View GitHub Profile
FiloSottile /
Created Mar 12, 2012
Simple script to dump an IMAP folder into eml files
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import imaplib
import getpass
import argparse
argparser = argparse.ArgumentParser(description="Dump a IMAP folder into .eml files")
argparser.add_argument('-s', dest='host', help="IMAP host, like", required=True)
argparser.add_argument('-u', dest='username', help="IMAP username", required=True)
#! /bin/sh
GOOS=linux go build -o $2 "$1"
GOOS=linux go build -ldflags="-s -w" -o $2.-sw "$1"
upx -f --brute -o $2.upx $2
upx -f --brute -o $2.-sw.upx $2.-sw
GOOS=linux gotip build -o $2.tip "$1"
GOOS=linux gotip build -ldflags="-s -w" -o $2.tip.-sw "$1"
upx -f --brute -o $2.tip.upx $2.tip
FiloSottile / 32.asm
Last active Jun 14, 2020
NASM Hello World for x86 and x86_64 Intel Mac OS X (get yourself an updated nasm with brew)
View 32.asm
; /usr/local/bin/nasm -f macho 32.asm && ld -macosx_version_min 10.7.0 -o 32 32.o && ./32
global start
section .text
push dword msg.len
push dword msg
push dword 1
mov eax, 4
FiloSottile /
Created Jun 25, 2017
Unbound python-script to route websites over IPv4.
def init(id, cfg):
return True
def deinit(id):
return True
def inform_super(id, qstate, superqstate, qdata):
return True
domains = [


I am writing to request my personal data, the purposes of their processing, the recipients to whom they have been or will be disclosed, the envisaged period for which they will be stored, and the existence of automated decision-making, including profiling, according to Article 15 of the GDPR.

For any kinds of data for which it makes sense, I would like to receive them in structured form, according to Article 20 of the Regulation.

Examples of my personal data you might be in control of, or might have shared with others, include:

  • the content and topics of saved articles
  • the state of saved articles (liked, archived, read) and their history (saving, reading, and archival timestamps)
FiloSottile / La Coscienza di un Hacker
Last active Apr 10, 2020
Traduzione in italiano dell'Hacker Manifesto
View La Coscienza di un Hacker
Questa è una traduzione in italiano del celebre Hacker Manifesto. Tutte quelle
esistenti contengono grossolani errori, perlopiù dovuti ad una carente
comprensione della materia e del periodo, o in ogni caso sono poco fedeli al
contenuto e allo spirito dell'originale. Mi auguro che questa mia traduzione non
soffra degli stessi problemi. Sail strong.
-- FiloSottile
Da: Phrack, Volume Uno, Issue 7, Phile 3 of 10
FiloSottile /
Created Mar 18, 2012
Script to follow HTTP redirects and print the resulting URL - a.k.a. URL un-shortener
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import sys
import urllib2
# This script uses HEAD requests (with fallback in case of 405)
# to follow the redirect path up to the real URL
# (c) 2012 Filippo Valsorda - FiloSottile
# Released under the GPL license
FiloSottile / How to dump the iOS simulator
Last active Sep 17, 2019
How to dump the iOS simulator memory
View How to dump the iOS simulator

Dumping the iOS simulator memory

To audit memory or to debug with external tools it can be useful to get a dump of the running memory of an app.

To do so on a device you'll need a Jailbreak, SSH access, and gdb. See this or this.

If instead you're up to a simulated app, things are easier: apps running in the simulator are actually just native processes on your Mac OS X.

So, how to get a core dump of a Mac OS X process? Sadly gdb can't do so. Mac OS X Internals comes to the rescue with this article.

View 0001-crypto-tls-support-SSLv2-compatibility-handshakes.patch
From 6ec6e3f7b176547783b2c464d54bc1a1f7d884f7 Mon Sep 17 00:00:00 2001
From: Filippo Valsorda <>
Date: Mon, 7 Dec 2015 15:44:34 +0000
Subject: [PATCH] crypto/tls: support SSLv2 compatibility handshakes
src/crypto/tls/conn.go | 103 ++++++++++++++++++++++++++++++++++++-
src/crypto/tls/handshake_server.go | 7 ++-
2 files changed, 107 insertions(+), 3 deletions(-)
FiloSottile / unchroot.c
Last active Jul 26, 2019
Code for my article about chroot jail escaping
View unchroot.c
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
int main() {
int dir_fd, x;
mkdir(".42", 0755);
dir_fd = open(".", O_RDONLY);
You can’t perform that action at this time.