Skip to content

Instantly share code, notes, and snippets.

from pwn import *
import re
import json
conn = remote('socket.cryptohack.org', 13372)
s = conn.recv(1024)
conn.send(json.dumps({"option":"get_flag"}))
s = conn.recv(1024)
num = re.findall(r': (.*)\n', s.decode())[0]
data = num[1:-2]
from scalar_multiplication import scalar_mul
import hashlib
if __name__ == "__main__":
QA, nB = (815, 3190), 1829
key = scalar_mul(nB, QA)[0]
flag = hashlib.sha1(b'%f' % key).hexdigest()
print('crypto{%s}' % flag)
'''codes for scalar_mul and point_addition are below:
import gmpy2
from point_addition import add_ecc
O = (0, 0)
def scalar_mul(n, p):
q, r = p, O
while n > 0:
if n % 2 == 1:
r = add_ecc(r, q)
q, n = add_ecc(q, q), n // 2
import gmpy2
O = (0, 0)
def add_ecc(p, q):
if p == O:
return q
elif q == O:
return p
elif p[0] == q[0] and p[1]==-q[1]:
return O