Skip to content

Instantly share code, notes, and snippets.

@elazarl
elazarl / sprint_int.c
Last active May 9, 2023 08:20
Small standalone stupid function to convert integer value to string, for code with zero library support
#include <stdint.h>
#include <stdio.h>
char *sprint_int_(char *out, uint64_t a, uint64_t base) {
char itoc[] = "0123456789abcdef";
char *orig_out = out;
uint64_t a_ = a;
int i = 0;
while (a_ >= base) {
a_ /= base;
i++;
@elazarl
elazarl / stack_size.c
Last active April 12, 2020 13:27
This is a demonstration showing how to print stack size of a certain function
// We demonstrate how to get the stack usage of a function
// using the __builtin_frame_address function of GCC and clang.
//
// This function returns:
// The frame is the area on the stack that holds local variables and saved registers.
// The frame address is normally the address of the first word pushed on to
// the stack by the function.
//
// by saving its value and comparing it to a callee, we get the stack usage of this
// function.
@elazarl
elazarl / simple_transform_before_zstd.c
Created January 30, 2020 15:35
Check if a simple transform before applying zstd reduce file size
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <unistd.h>
char buf[1024*1024];
@elazarl
elazarl / bench_comp_decomp.py
Last active January 29, 2020 14:57
Measures compression and decompression speed and size ratio on many files
#!/usr/bin/python3
import argparse
from collections import namedtuple
import csv
import os
import shutil
import subprocess
import statistics
import re
@elazarl
elazarl / test_vec_to_c.py
Last active January 26, 2020 21:59
NIST test vector to C format
# This converts test vectors from
# https://csrc.nist.gov/Projects/cryptographic-algorithm-validation-program/CAVP-TESTING-BLOCK-CIPHER-MODES
# to a C-struct format.
# For example to initialize
# struct test_case {
# int count;
# int data_unit_len;
# std::string key;
# std::string index;
# std::string plaintext;
@elazarl
elazarl / uuid4sym.py
Last active May 16, 2019 05:12
replace UUID with distinguishable emojis
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""uuid4sym - replace UUID version 4 to an easily distinguishable symbol
When looking at a long log file with some UUID4 uuids, you'll have a hard time
distinguishing between two UUIDs.
Both 26cb1b84-7748-11e9-9437-2bf0efaa1b2e and 2725e8de-7748-11e9-a9c8-f3e5d10ab3d6
looks similar to the human eye.
@elazarl
elazarl / dir2img.py
Created April 30, 2019 14:11
Create an image with filesystem, copies a local directory content to it
#!/usr/bin/python3
"""Create image from a directory
This script creates image whose contents are a given directoy on the filesystem.
Example usage:
$ mkdir mydir
$ echo A > mydir/a
$ ./dir2img.py -d mydir -i myimage.img
#!/usr/bin/python3
import re
import io
class FtraceEventParser(object):
"""FTraceEventParser parses the text form of a single event
to a tuple of all the event's arguments.
Example usage:
#!/usr/bin/python3
import argparse
import paramiko.client
import time
parser = argparse.ArgumentParser(description='stress test SSH channels')
parser.add_argument('-H', '--host', help='host to test')
parser.add_argument('-u', '--user', help='user to use SSH with')
parser.add_argument('-p', '--pwd', help='password to use SSH with')
parser.add_argument(
@elazarl
elazarl / checkexist.c
Created November 29, 2017 15:26
constantly polls until a file disappears
#include <argp.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
static char args_doc[] = "FILES to poll until missing";