Skip to content

Instantly share code, notes, and snippets.

@sonickun
sonickun / solver.py
Created July 13, 2016 07:11
Hack.lu CTF 2016 Creative Cheating (Crypto 150pt)
# Hack.lu CTF 2016 Creative Cheating (Crypto 150pt)
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):
@sonickun
sonickun / squre_errot.py
Last active July 18, 2016 10:08
最小二乗法による多項式近似(参考:「ITエンジニアのための機械学習理論入門」)
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Series, DataFrame
from numpy.random import normal
#------------#
@sonickun
sonickun / my_hash_extender.c
Last active July 20, 2016 14:26
katagaitai勉強会(関東med)おまけ Plaid CTF 2014 Parlor Write-up
// Refered hash_extender: https://github.com/iagox86/hash_extender
#include <stdio.h>
#include <string.h>
#include <openssl/md5.h>
unsigned int extend(unsigned int A, unsigned int B, unsigned int C, unsigned int D, char *testhash2) {
MD5_CTX ctx;
unsigned char buffer[MD5_DIGEST_LENGTH];
int i;
@sonickun
sonickun / crackme_solver.py
Created July 31, 2016 07:37
katagaitai 勉強会 rev_easy crackme
def calc_hash(key):
h = 0x539
target = 0xEF2E3558
for k in key:
h += (h<<5) + ord(k)
h &= 0xFFFFFFFF
return abs(target - h)
charset = [chr(i) for i in range(0x21,0x7e)]
@sonickun
sonickun / esper_solver.py
Created September 7, 2016 07:51
Tokyo Westerns CTF 2016 | ESPer (Crypto100) writeup
import socket
import hashlib
import telnetlib
import fractions
# nc cry1.chal.ctf.westerns.tokyo 37992
remoteip = "cry1.chal.ctf.westerns.tokyo"
remoteport = 37992
def shell(s):
@sonickun
sonickun / solver.py
Created September 14, 2016 11:49
Tokyo Westerns CTF 2016 | Vigenere Cipher (Crypto200)
import collections
import itertools
from base64 import b64encode, b64decode
def shift(char, key, rev = False):
if not char in chars:
return char
if rev:
return chars[(chars.index(char) - chars.index(key)) % len(chars)]
else:
@sonickun
sonickun / coinslot.py
Last active September 28, 2016 08:02
CSAW CTF 2016 | Coinslot (misc50)
import socket
remoteip = "misc.chal.csaw.io"
remoteport = 8000
def sock(remoteip, remoteport):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((remoteip, remoteport))
return s, s.makefile('rw', bufsize=0)
@sonickun
sonickun / regexpire.py
Last active September 28, 2016 08:04
CSAW CTF 2016 | Regexpire (misc100)
import socket
import rstr
remoteip = "misc.chal.csaw.io"
remoteport = 8001
def sock(remoteip, remoteport):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((remoteip, remoteport))
return s, s.makefile('rw', bufsize=0)
@sonickun
sonickun / solver.py
Created October 5, 2016 10:19
Tokyo Westerns CTF 2016 | Twin Primes (Crypto50)
from Crypto.Util.number import *
import Crypto.PublicKey.RSA as RSA
import os
n1 = 19402643768027967294480695361037227649637514561280461352708420192197328993512710852087871986349184383442031544945263966477446685587168025154775060178782897097993949800845903218890975275725416699258462920097986424936088541112790958875211336188249107280753661467619511079649070248659536282267267928669265252935184448638997877593781930103866416949585686541509642494048554242004100863315220430074997145531929128200885758274037875349539018669336263469803277281048657198114844413236754680549874472753528866434686048799833381542018876362229842605213500869709361657000044182573308825550237999139442040422107931857506897810951
n2 = 1940264376802796729448069536103722764963751456128046135270842019219732899351271085208787198634918438344203154494526396647744668558716802515477506017878289709799394980084590321889097527572541669925846292009798642493608854111279095887521133618824910728075366146761951107964907024865953628226726792866926525293575741886
@sonickun
sonickun / solver.py
Created October 5, 2016 10:39
Tokyo Westerns CTF 2016 | Super Express (Crypto100)
import itertools
cipher = '805eed80cbbccb94c36413275780ec94a857dfec8da8ca94a8c313a8ccf9'
for i, j in itertools.product(range(251), repeat=2):
if (ord("T")*i+j)%251==0x80 and (ord("W")*i+j)%251==0x5e:
a, b = i, j
break
print a, b