Skip to content

Instantly share code, notes, and snippets.

@yarjor
yarjor / disable.sh
Created April 28, 2018 14:29
[Toggle ASLR] #unix #linux #aslr
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
@yarjor
yarjor / block_division.py
Created April 1, 2018 18:15
[Block Division] Divide text to blocks of chosen size, and access wanted block without prior division.
def divide_blocks(string, block_length):
return [string[i:i+block_length] for i in xrange(0, len(string), block_length)]
def get_block(msg, length, index=0):
return msg[length * index : length * (index + 1)]
@yarjor
yarjor / iroot.py
Created March 31, 2018 12:39
[Find root] #math
def root(n, r):
u, s = n, n+1
while u < s:
s = u
t = (r - 1) * s + n / pow(s, r-1)
u = t / r
return s
@yarjor
yarjor / modular_inverse.py
Created March 30, 2018 12:40
[Modular Inverse] #crypto #math
def egcd(a, b):
if a == 0:
return (b, 0, 1)
else:
g, y, x = egcd(b % a, a)
return (g, x - (b // a) * y, y)
def modinv(a, m):
g, x, y = egcd(a, m)
if g != 1:
@yarjor
yarjor / hamming.py
Created March 26, 2018 18:07
[Calculate Hamming] #datascience #crypto
def calc_hamming(st1, st2):
return sum([i != j for i, j in zip(bitstring(st1), bitstring(st2))])
# BitString can be found in another gist
@yarjor
yarjor / break_repeating_key.py
Last active March 26, 2018 18:18
[Break repeating-key XOR encryption] #crypto #xor
from break_single_key import break_single_key
def get_block(msg, length, index=0):
return msg[length * index : length * (index + 1)]
def break_repeating_by_keysize(msg, keysize):
blocks = [get_block(msg, keysize, i) for i in xrange(len(msg) / keysize)]
transposed_blocks = zip(*blocks)
full_key = ''
@yarjor
yarjor / letter_freq.py
Created March 26, 2018 18:01
[English Letter frequencies] #statistics #datascience
{
'a': 0.0651738,
'b': 0.0124248,
'c': 0.0217339,
'd': 0.0349835,
'e': 0.1041442,
'f': 0.0197881,
'g': 0.0158610,
'h': 0.0492888,
'i': 0.0558094,
@yarjor
yarjor / bitstring.py
Created March 26, 2018 17:59
[BitString] Convert string to binary representation #crypto #decode
def bitstring(st):
bs = ''
for i in st:
bits = bin(ord(i))[2:]
bs += ('0' * (8 - len(bits))) + bits
return bs
@yarjor
yarjor / repeating_key_xor.py
Last active April 2, 2018 07:09
[XOR Strings] #crypto #xor
def repeating_key_xor(st,key):
return xor_strings(st, itertools.cycle(key))
@yarjor
yarjor / get_or_create.py
Created March 24, 2018 18:13
[Get or Create folder] #files
import os
def get_or_create(folder):
if not os.path.exists(folder):
os.mkdir(folder)
os.popen('explorer.exe {}'.format(folder))