Skip to content

Instantly share code, notes, and snippets.

Avatar

Arti Zirk artizirk

View GitHub Profile
@artizirk
artizirk / 0README.md
Last active Jun 3, 2021
List SerialPort names in Windows
View 0README.md

List COM ports in windows with names

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
    \Device\Serial0    REG_SZ    COM1
    \Device\Silabser0    REG_SZ    COM6
    \Device\VCP0    REG_SZ    COM3

Press any key to continue . . .
@artizirk
artizirk / annnotate.sh
Created Mar 18, 2021
Annotate WireGuard wg command output with comments from the config file
View annnotate.sh
#!/bin/bash
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit
fi
function annotate {
declare -A PEER_COMMENTS
@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";