Skip to content

Instantly share code, notes, and snippets.

View iTrooz's full-sized avatar
💭
CODE

iTrooz

💭
CODE
View GitHub Profile
@iTrooz
iTrooz / main.py
Created July 22, 2024 04:12
Reads stdin from the user console and stops input with Ctrl+C
"""
Reads stdin from the user console and stops input with Ctrl+C. Also support piped stdin.
Works only on Linux (and maybe MacOS ?)
"""
import sys
import os
import time
import fcntl
def read_user_stdin() -> bytes:
@iTrooz
iTrooz / main.c
Last active July 8, 2024 09:12
Manual implemenation of a split() function in C
#include<stdlib.h>
#include<stdio.h>
#define bool short
#define false 0
#define true 1
bool my_contains(char *charset, char c) {
for (int i = 0; charset[i] != '\0'; i++) {
if (charset[i] == c) {
@iTrooz
iTrooz / live_processes.py
Last active July 5, 2024 14:15
Show processes lifecycle in real time
#!/usr/bin/env python3
# Simple monitoring script to print processes being created/stopped in real-time
import time
from typing import Optional
import psutil
import shutil
import sys
import argparse
@iTrooz
iTrooz / live_processes.sh
Created July 5, 2024 14:02
OLD BUGGY IMPLEMENTATION - Show processes lifecycle in real time
#!/bin/sh
get_running_processes() {
processes=$(ps -eo ppid,pid,cmd)
echo "$processes" |
grep -v "\[.*\]" | # Filter out kernel processes
awk -v pid="$$" '$1 != pid' | # Remove children of current script
awk '{print $1 " " $2 " " $3}' | # Remove ppid + command params
sort
}
@iTrooz
iTrooz / tiktoken_count
Created June 25, 2024 11:40
CLI to count number of tokens in files using tiktoken
#!/usr/bin/env python3
import tiktoken
import sys
if len(sys.argv) == 1:
print(f"Syntax: {sys.argv[0]} <file>")
exit(1)
enc = tiktoken.get_encoding("cl100k_base")
@iTrooz
iTrooz / main.py
Last active June 21, 2024 13:29
Run python shell command, return merged stdout and stderr, and exit code
import subprocess
from typing import Tuple
def run_cmd(cmd: str) -> Tuple[int, str]:
p = subprocess.Popen(cmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output, _ = p.communicate()
return p.returncode, output.decode("utf-8")
print(run_cmd("ls /"))
print(run_cmd("ls /does-not-exist"))
@iTrooz
iTrooz / java-bytecode.py
Last active June 18, 2024 12:10
Simple script to map java versions and java bytecode versions
#!/usr/bin/env python3
RESET='\033[0m'
COLOR='\033[0;36m' # Cyan
# List from https://javaalmanac.io/bytecode/versions/
JAVA_TO_BYTECODE = {
1.0: 45.0,
1.1: 45.3,
1.2: 46.0,
@iTrooz
iTrooz / CVE-2024-37865.md
Created June 17, 2024 12:48
CVE-2024-37865

Description

An issue in S3Browswer v.11.4.5 and v.10.9.9 and fixed in v.11.5.7 allows a remote attacker to obtain sensitive information via the S3 compatible storage component.

Vulnerability type:

Missing SSL certificate validation

Affected product:

S3Browser - Versions 11.4.5 and 10.9.9 for sure. Older versions are not downloadable but are probably vulnerable too. Issue fixed in 11.5.7

@iTrooz
iTrooz / httpcache.py
Last active May 29, 2024 10:05
varnish_httpcache
#!/usr/bin/env python3
# Easier Frontend for varnishd
# Example: ./httpcache.py -u google.com
# Then, requests to localhost:8080 forwarded to google.com and cached
# Licence: MIT
import os
import tempfile
import subprocess
import shutil
@iTrooz
iTrooz / secsize
Created May 25, 2024 00:16
Print the size of sections in a ELF object file/binary
#!/bin/sh
# Print the size of sections in a ELF object file/binary. Thx ChatGPT
size -A -d $1 | awk 'NR > 2 {print $2, $1}' | sort -n | awk '{
size=$1;
if (size >= 1024*1024*1024) {
printf "%7.2f GB %-20s\n", size / (1024*1024*1024), $2;
} else if (size >= 1024*1024) {
printf "%7.2f MB %-20s\n", size / (1024*1024), $2;
} else if (size >= 1024) {