Skip to content

Instantly share code, notes, and snippets.

Avatar

Arti Zirk artizirk

View GitHub Profile
@artizirk
artizirk / watchdog.py
Created Feb 25, 2021
a stupid watch dog
View watchdog.py
#!/usr/bin/env python3
"""
run this to keep the watchdog happy
curl localhost:8080
or from js
setInterval(function(){ fetch("localhost:8080"); }, 3000);
@artizirk
artizirk / crack_gpg_password.py
Created Feb 18, 2021
Try to import password protected gnupg openpgp by using passwords from csv file
View crack_gpg_password.py
#!/usr/bin/env python3
## Try all of the passwords for gpg openpgp key
from subprocess import run
p = open("/tmp/passwords.csv")
passwords = set()
for line in p.readlines():
passwords.add(line.split(",")[2].strip().replace('"',''))
for password in passwords:
print(password)
@artizirk
artizirk / crack_ssh_password.py
Created Feb 18, 2021
Try bunch of passwords from csv list on a password protected ssh key
View crack_ssh_password.py
#!/usr/bin/env python3
from pprint import pprint
from subprocess import run
passwords = set()
with open("/tmp/passwords.csv") as f:
for line in f.readlines():
passwords.add(line.split(',')[2].strip().strip('"'))
for password in passwords:
@artizirk
artizirk / semihost.c
Created Dec 7, 2020
openocd: arm semihosting enable; reset run
View semihost.c
void __attribute__ ((noinline)) print_semihosting(const void *buf, uint32_t size)
{
uint32_t args[3];
args[0] = 1;
args[1] = (uint32_t)buf;
args[2] = size;
asm( "mov r0, #5\n"
"mov r1, %0\n"
"bkpt 0x00AB" : : "r"(args) : "r0", "r1", "memory");
}
View stm32_crc32.py
def _slow_crc(data, seed=0xFFFF_FFFF, polynomial=0x04C11DB7):
"""
STM32 CRC that is actually CRC-32/MPEG2 but input data is read as litle-endian (not big-endian like MPEG)
"""
crc = seed
# Pad data if needed
pad_len = len(data) % 4
if pad_len > 0:
words = array.array('I', data[:-pad_len])
@artizirk
artizirk / xinput.py
Last active Nov 17, 2020
Pure Python implementation for reading Xbox controller inputs without extra libs
View xinput.py
#!/usr/bin/env python3
""" XInput Game Controller APIs
Pure Python implementation for reading Xbox controller inputs without extra libs
Copyright (C) 2020 by Arti Zirk <arti.zirk@gmail.com>
Permission to use, copy, modify, and/or distribute this software for any purpose
with or without fee is hereby granted.
@artizirk
artizirk / vga.dts
Created Jun 11, 2020
Cubietruck Allwinner A20 VGA output on mainline Armbian
View vga.dts
/dts-v1/;
/plugin/;
/* Based on https://github.com/wens/linux/commits/sun4i-drm-tve-vga-wip */
/* Tested with Cubetruck */
/* save it somewhere and run sudo armbian-add-overlay vga.dts */
/ {
compatible = "allwinner,sun4i-a10", "allwinner,sun7i-a20", "allwinner,sun8i-h3", "allwinner,sun50i-a64", "allwinner,sun50i-h5";
@artizirk
artizirk / nanopi-r2s-power-button.dts
Last active May 11, 2020
Custom Armbian user device tree overlays for NanoPi devices
View nanopi-r2s-power-button.dts
/dts-v1/;
/plugin/;
/ {
compatible = "friendlyelec,nanopi-r2", "rockchip,rk3328";
fragment@0 {
target-path = "/gpio-keys/button@0";
__overlay__ {
linux,code = <116>;
@artizirk
artizirk / make_nspawn_iface_mac.py
Last active Apr 23, 2020
Generate systemd nspawn interface MAC aadresses based on the host id and container name https://wiki.wut.ee/sysadmin/systemd-nspawn_containers
View make_nspawn_iface_mac.py
#!/usr/bin/env python3
"""
This script implements systemd-nspawn MAC aadress generation algorithm
"""
import sys
import struct
from subprocess import run
import siphashc # https://pypi.org/project/siphashc/
@artizirk
artizirk / dhclient_ipv6_prefix_delegation.md
Last active Apr 23, 2020
ISC dhclient IPv6 prefix delegation hook script https://wiki.wut.ee/en/sysadmin
View dhclient_ipv6_prefix_delegation.md