Skip to content

Instantly share code, notes, and snippets.

View baderj's full-sized avatar

Johannes Bader baderj

View GitHub Profile
@baderj
baderj / garmin_ant_demo.py
Last active July 20, 2023 03:19
Script to illustrate heart rate capturing with Ant+, see blog post at http://www.johannesbader.ch/2014/06/track-your-heartrate-on-raspberry-pi-with-ant
"""
Code based on:
https://github.com/mvillalba/python-ant/blob/develop/demos/ant.core/03-basicchannel.py
in the python-ant repository and
https://github.com/tomwardill/developerhealth
by Tom Wardill
"""
import sys
import time
from ant.core import driver, node, event, message, log
@baderj
baderj / twitch_past_broadcast_downloader.py
Last active March 5, 2023 21:43
script to download past broadcasts from twitch.tv
import requests
import sys
import json
import re
import os
import string
import argparse
BASE_URL = 'https://api.twitch.tv'
@baderj
baderj / tutorial_themoviedb.py
Last active October 18, 2022 17:02
Example how to use the API v3 of "The Movie Database" (themoviedb.org). Saves all available posters for the movie with IMDb id tt0095016 to the current folder, using the maximum available resolution.
import os
import requests
CONFIG_PATTERN = 'http://api.themoviedb.org/3/configuration?api_key={key}'
IMG_PATTERN = 'http://api.themoviedb.org/3/movie/{imdbid}/images?api_key={key}'
KEY = '<your_api_key>'
def _get_json(url):
r = requests.get(url)
return r.json()
@baderj
baderj / gist:7887807
Created December 10, 2013 09:13
Wordpress filter to highlight the menu item labeled "blog" if not on static pages. Add the code to functions.php
/* ------------------------------------------------------------------------ */
/* highlight the menu item labeled "blog" if not on static pages */
function add_custom_class($classes=array(), $menu_item=false) {
if ( !is_page() && 'Blog' == $menu_item->title && ! in_array( 'current-menu-item', $classes ) ) {
$classes[] = 'current-menu-item';
}
return $classes;
}
add_filter('nav_menu_css_class', 'add_custom_class', 100, 2);
rule win_matiex_keylogger_v1 {
meta:
author = "Johannes Bader @viql"
date = "2020-07-20"
description = "detects the Matiex Keylogger"
tlp = "white"
strings:
$obfuscator_1 = "OiCuntJollyGoodDayYeHavin_____________________________________________________"
@baderj
baderj / dga_symmi.py
Created January 21, 2015 16:20
The DGA of Symmi sample b75f00d7ae2857a3e1cc8f5eb4dc11b9
import argparse
from datetime import datetime
seed_const = 42
days_period = 16
nr_of_domains = 64
third_lvl_min_len = 8
third_lvl_max_len = 15
class Rand:
@baderj
baderj / imdb_id_from_title.py
Created November 11, 2013 13:52
return IMDb movie id for search string using the undocumented IMDb API
import requests
import urllib
def imdb_id_from_title(title):
""" return IMDb movie id for search string
Args::
title (str): the movie title search string
Returns:
@baderj
baderj / find_seed.c
Last active May 26, 2017 12:42
find ramnit seed
#include <stdio.h>
#include <string.h>
unsigned long int rand_int_modulus(unsigned long int *ix, unsigned long int modulus) {
unsigned long int k1;
k1 = *ix / 127773;
*ix = 16807 * (*ix - k1 * 127773) - k1 * 2836;
return *ix % modulus;
}
@baderj
baderj / gozi_rfc.txt
Last active April 5, 2016 19:47
Gozi "Mar 9 2016" DGA Wordlist, sample https://twitter.com/Techhelplistcom/status/708341104685371392. Wordlist is taken from www.ietf.org/rfc/rfc4343.txt
network
working
group
eastlake
request
for
comments
motorola
laboratories
updates
@baderj
baderj / twitchtv_viewer_rating.py
Last active February 15, 2016 02:49
poll the viewer ratings of a twitch channel using their API
import requests
import json
from datetime import datetime, timedelta
import time
import logging
import argparse
BASE_URL = 'https://api.twitch.tv/kraken/'
CLIENTID = '<add your API key here>'