Skip to content

Instantly share code, notes, and snippets.

@ariscop
ariscop / clear_snapshot
Created May 18, 2015 00:07
Trivial utils for managing snapshots
#!/usr/bin/python3
from os import listdir
from os.path import isdir
from dateutil.parser import parse as parse_time
from datetime import datetime, timedelta
from collections import namedtuple
import pytz
from subprocess import call
from collections import defaultdict
TAG_TYPE_NULL = 0x1000
TAG_TYPE_BYTE = 0x2000
TAG_TYPE_WORD = 0x3000
TAG_TYPE_DWORD = 0x4000
TAG_TYPE_QWORD = 0x5000
TAG_TYPE_STRINGREF = 0x6000
TAG_TYPE_LIST = 0x7000
TAG_TYPE_STRING = 0x8000
@ariscop
ariscop / element.py
Created March 19, 2015 03:35
Simple passthrough element for gstreamer 1.0 in python
#!/usr/bin/env python3
import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst
loop = GObject.MainLoop()
GObject.threads_init()
Gst.init()
@ariscop
ariscop / topsee_dev.py
Created March 2, 2015 01:11
Python script that 'emulates' topsee devices
#!/usr/bin/env python3
from socket import socket
import xml.etree.ElementTree as ET
magic = b'\x58\x91\x58\x51'
auth_response = """<?xml version="1.0" encoding="GB2312" ?>
<XML_TOPSEE>
<MESSAGE_HEADER
@ariscop
ariscop / extract_ros.py
Created February 24, 2015 00:25
Extracts .ros firmware files used by some netgear swtiches, eg: ng_gs728_52tp_516tp_bx-60116.ros
#!/usr/bin/env python3
import sys
import lzma
import crcmod
from struct import unpack, iter_unpack
from collections import namedtuple
from functools import partial
from tabulate import tabulate
crc32 = crcmod.predefined.mkPredefinedCrcFun('crc-32')
@ariscop
ariscop / songhash.py
Last active August 29, 2015 14:15
USDX-WP song hash thingy
#!/usr/bin/env python3
import sys
from hashlib import md5
from re import split
with open(sys.argv[1], "rb") as f:
data = b"".join(x for x in split(b"[\r\n]+", f.read()) if not x.startswith(b"#"))
m = md5()
@ariscop
ariscop / ts_unpack.py
Created February 11, 2015 01:17
Unpacker for topsee camera firmware
#!/usr/bin/env python3
import sys
import crcmod
from struct import unpack
from collections import namedtuple
def to_hex(data):
return ''.join('%02x' % x for x in data)
@ariscop
ariscop / bits.py
Last active August 29, 2015 14:13
def _bits(byte):
return [(byte >> 0) & 1,
(byte >> 1) & 1,
(byte >> 2) & 1,
(byte >> 3) & 1,
(byte >> 4) & 1,
(byte >> 5) & 1,
(byte >> 6) & 1,
(byte >> 7) & 1]
@ariscop
ariscop / extract.py
Created January 1, 2015 01:23
Tool for extracting .lmp files from "The Elder Scrolls Travels - Dawnstar"
#!/usr/bin/env python3
import sys, struct
fd = open(sys.argv[1], "rb")
while(True):
byte = fd.read(1)
if byte != b'-':
break
@ariscop
ariscop / traccar_postgresql_schema.sql
Created December 9, 2014 01:04
Postgresql compatible traccar schema
CREATE TABLE application_settings (
id bigserial NOT NULL,
registrationenabled boolean NOT NULL
);
CREATE TABLE devices (
id bigserial NOT NULL,
name character varying(255),
uniqueid character varying(255),
latestposition_id bigint