Skip to content

Instantly share code, notes, and snippets.

View dogtopus's full-sized avatar
🦄
Unicorn!

dogtopus

🦄
Unicorn!
View GitHub Profile
@dogtopus
dogtopus / rgssadatk.py
Created May 28, 2022 03:09
RGSSAD non-standard magic key recovery tool
#!/usr/bin/python3
# This tool exploits a weakness in RGSSAD file format in order to recover
# non-standard magic key (other than the default 0xdeadcafe key) used in some
# RGSSAD archives.
#
# RGSSAD uses a LCG (Linear Congruential Generator) (Xn+1 = aXn+c mod m) to
# generate xor pads in order to encrypt files and their metadata. However,
# the LCG implementation returns the seed (X0) instead of the result of a single
# iteration of the algorithm (X1) on its first iteration. The seed is then being
# used as the xor pad for the file name length (a 32-bit value) of the first
@dogtopus
dogtopus / narpas_sword.py
Last active April 6, 2023 19:18
Kagiya? What's that
import hashlib
def secret(start: int, size: int) -> bytes:
result = bytearray()
add = start + size
for i in range(size):
result.append(start & 0xff)
next = start + add
add = start
start = next
@dogtopus
dogtopus / trace2pcap.py
Last active March 15, 2024 08:40
Convert sigrok JSON trace containing UART HCI traffic to HCI PCAP file. Requires scapy.
#!/usr/bin/env python3
from __future__ import annotations
'''
Convert sigrok JSON trace containing UART HCI traffic to HCI PCAP file.
The JSON trace files are typically acquired with:
sigrok-cli -i some-sigrok-session.sr -P uart:baudrate=<hci-baud> -A uart=tx-data:rx-data --protocol-decoder-jsontrace > some-json-trace-file.json
@dogtopus
dogtopus / jdm_mcu.md
Last active December 10, 2023 18:36
Jedi MCU

Jedi/Banana Info

Identification

FCCID

  • AK8CUHZCT1: JDM-001, JDM-020(?, uses similar BT module)
  • AK8CUHZCT1F1: JDM-011(D2?)
  • AK8CUHZCT1A: JDM-030
  • AK8CUHZCT2: JDM-040
@dogtopus
dogtopus / gen_ds4key.py
Created July 24, 2021 06:18
DS4Key generation
#!/usr/bin/env python3
from Cryptodome.PublicKey import RSA
from Cryptodome.Signature import pss
from Cryptodome.Hash import SHA256
from Cryptodome.Math.Numbers import Integer
import io
import shutil
import sys
@dogtopus
dogtopus / ds40304poke.py
Last active July 18, 2021 23:57
DS4 Bluetooth auth2/"weak auth" checker.
#!/usr/bin/env python3
import hid
import contextlib
import ctypes
import enum
import hashlib
import os
import sys
# Invokes [thefuck](https://github.com/nvbn/thefuck) when typing
# 'im a girl btw' in the shell.
#
# Inspired by Beluga's discord series. https://www.youtube.com/c/Beluga1
#
# Installation: add to anywhere in .bashrc.
#
# Effect:
#
# $ pacman -Syu
@dogtopus
dogtopus / _sgp.md
Last active April 15, 2024 23:56
SEGA Grand Pianist related stuff

SEGA Grand Pianist

SD Card

SD card slot is on its own separate PCB connected via a 8-pin JST PH (?) jumper cable.

Tested with 2GB SD card formatted with FAT16. Cards smaller than 2GB might also work but are untested (since the smallest cards I got are 2GB).

(Official spec stated that it supports 128MB-2GB SD cards formatted with FAT16.)

@dogtopus
dogtopus / sega-slider-impl.md
Last active February 18, 2024 06:53
SEGA Slider (-like) Implementation Mega List - Heavily WIP

SEGA Slider (-like) Implementation Mega List

Diva

Name Author Sensor Type Construction Controller Type # of Controllers # of Segments LED Controller Type # of LEDs/Pixels Protocol Open-source?
837-15275 SEGA Capacitive FR4 PCB CY8C22345-24SXI 2 32 THL3504 64/32 sega-slider/UART/RS232 No
(No name) benjilei Capacitive Pad hack (aggregated DS4 touchpad) MXT series or TrueTouch series (DS4 Touchpad)+? 4? 80? (virtual) None 0 maxTouch (or TrueTouch)/I2C No (aggregation method unknown)
[(No name)][fa40] fa40 Capacitive Pad hack (copper foil on wood substrate) ZET6223 (Brook Touchpad) 1 17 None 0 ZET6223/I2C N/A
(No name) Mo10 Capacitive FR4 PCB CY8C4104LQI-422 4 32 WS2812 32 Proprietary/I2C No
@dogtopus
dogtopus / datutil.py
Created April 3, 2021 05:16
Old Taiko no Tatsujin iOS song pack tool
#!/usr/bin/env python2
import yaml
import struct
import os
SUFFIX = (
'.m4a',
'_e.sht',
'_n.sht',
'_h.sht',