Skip to content

Instantly share code, notes, and snippets.

View Gowee's full-sized avatar
🙂

Hung-I Wang Gowee

🙂
View GitHub Profile
@Gowee
Gowee / wgporo.sh
Last active April 4, 2022 08:52
Rotate Wireguard ports
#!/bin/sh
set -u
WGIF="winnie"
STEP=3600
PSTART=5500
PEND=5999
CONFFILE="/etc/wireguard/$WGIF.conf"
PLEN=$((PEND-PSTART+1))
#!/usr/bin/env python3
# filter disinct connections by 4-tuples from tcpdump output
pairs = set()
while (line := input()):
time, family, orig, _, dest, remaining = line.split(maxsplit=5)
dest = dest[:-1]
if (orig, dest) not in pairs:
print(f"{orig} > {dest}, {time}, {remaining}")
pairs.add((orig, dest))
# -*- coding: utf8 -*-
# To be deployed to Tecent SCF
# https://console.cloud.tencent.com/scf/
import json
def main_handler(event, context):
srcip = event['requestContext']['sourceIp']
dest_url = "https://water-meter.bamboo.workers.dev/callback?ip=" + srcip
resp = {
"isBase64Encoded": False,
@Gowee
Gowee / get-cert-issuer.sh
Created November 7, 2016 14:24
One-line Bash script to fetch the issuer CA certificate of an x509-specified certificate via id-ad-caIssuers of x509.v3 Authority Information Access extension.
#!/bin/bash
# Maintainer: Gowe Wang<i@gowe.wang>
# Reference: https://tools.ietf.org/html/rfc5280#section-4.2.2.1
# Notice: Just available in most cases.
curl -s $(openssl x509 -in $1 -noout -text | grep -Po "((?<=CA Issuers - URI:)http://.*)$") | openssl x509 -inform DER -outform PEM
@Gowee
Gowee / openingsourceorg.iv
Last active September 30, 2021 08:21
The Telegram InstantView template rule for OpeningSource.org
# Maintained by: Hung-I WANG <whygowe@gmail.com>
~version: "2.1"
# e.g. `/1234`, `/1234/zh-tw`
?path: /\d+/(\w+/)?
# # The Telegram IV parser treats the webpage incorrectly, which results in mal-structured HTML/XML. Here try to fix it by rewrapping <meta> into <head> and moving them to the front of <body>.
# @prepend("<head>"): /html
# @prepend_to($@): //meta
@Gowee
Gowee / tomato-renew-tls-cert.sh
Created June 25, 2021 01:20
Shell script for renewing the TLS cert of the WebUI of AdvancedTomato
#!/bin/sh
# The script is simply adapted from:
# https://codeinsecurity.wordpress.com/2020/03/08/setting-a-custom-https-certificate-in-tomato-or-advancedtomato/
# The script is expected to work with uacme with a hook script:
# https://gist.github.com/Gowee/e756f925cfcbd5ab32d564ee3c795786
set -eu
FQDN="foobar.example.org" # TO BE FILLED
UACME_HOOK=/path/to/uacme-hook.sh # TO BE FILLED
@Gowee
Gowee / cipher.java
Last active October 11, 2020 07:51
对360的绿光浏览器(Tuber同款)的RE(未完成)
// import com.coloros.mcssdk.c.a;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
//import org.json.JSONObject;
public class Main {
public static void main(String[] args) throws Exception {
System.out.println("Hello world!");
String key1 = key.substring(16, 32);
async function run() {
const contest = 169;
const pages = [...Array(25).keys()].map(v => v + 1);
const question_id = 1429;
const is_cheating = function(code) {
const words = [/*"MONEY", "POINT",*/ "HOPE", "SATURN", "SEIS", "GEMINI", "ELM", "YOUVE", "PLANETS", "PEOPLE", "EHGEEE", "CANCER", "FBCDE", "TWENTY", "TREES", "EUROPE", "ABCDE", "NOVENTA", "EAII", "FUNNY", "ADICG", "FALSE", "TRUE", "EEIE", "THREE", "DHCF", "DHBADI", "INDEED"];
let score = 0;
for (const word of words) {
if (code.indexOf(word) != -1) {
score += 1;
#!/usr/bin/dev python3
# -*- coding: utf-8 -*-
import requests
import json
from ics import Calendar, Event
import arrow
from uuid import uuid4
# Below are your credentials for log-in.
@Gowee
Gowee / proxy_checker.py
Created September 25, 2019 15:09
A python script to validate HTTP proxies with aiohttp, a side project of https://github.com/Gowee/NEMUserCrawler
#!/usr/bin/env python3
import asyncio
import aiohttp
import re
import sys
import time
from collections import namedtuple
from functools import wraps