Initial Commit

This commit is contained in:
Roman Hergenreder 2018-12-04 12:54:01 +01:00
commit dd508a8100
16 changed files with 134 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 KiB

BIN
Day 1/data.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

14
Day 1/decode.py Normal file

@ -0,0 +1,14 @@
#!/usr/bin/python
from PIL import Image
# Load Image
im = Image.open('HV18_Ball_Day1_color.png')
offsetX = 307
offsetY = 362
imageSize = 364
# Crop Image
im.crop((offsetX, offsetY, offsetX+imageSize, offsetY+imageSize)).save("data.png")
# Go on https://jabcode.org/scan/ and upload image :]

34
Day 2/decode.py Normal file

@ -0,0 +1,34 @@
#!/usr/bin/python
import urllib.request
import urllib.parse
import base64
with open("input.txt", "r") as content_file:
content = content_file.read().replace("\n", "")
data = content.split(" ")
# Octal Bytes -> Decimal
data_oct = [int(c,8) for c in data]
# Decimal -> Ascii
string = ''.join(chr(i) for i in data_oct)
# Ascii -> Base32
string = base64.b32decode(string, casefold=False).decode("utf-8")
# Base32 -> 14-Segment-Code
url = "https://kryptografie.de/cgi-bin/MysteryMaster.exe"
params = {
"app": "Kryptografie.de",
"user": "",
"pass": "",
"chiffre": "14-Segment",
"opnum": 2,
"key": "",
"code": string
}
response = urllib.request.urlopen(url, urllib.parse.urlencode(params, True).encode('utf-8'))
result = response.read().decode('utf-8').replace("%0D%0A", "")
print(result)

1
Day 2/input.txt Normal file

@ -0,0 +1 @@
115 112 122 127 113 132 124 110 107 106 124 124 105 111 104 105 115 126 124 103 101 131 124 104 116 111 121 107 103 131 124 104 115 122 123 127 115 132 132 122 115 64 132 103 101 132 132 122 115 64 132 103 101 131 114 113 116 121 121 107 103 131 124 104 115 122 123 127 115 63 112 101 115 106 125 127 131 111 104 103 115 116 123 127 115 132 132 122 115 64 132 103 101 132 132 122 115 64 132 103 101 131 114 103 115 116 123 107 113 111 104 102 115 122 126 107 127 111 104 103 115 116 126 103 101 132 114 107 115 64 131 127 125 63 112 101 115 64 131 127 117 115 122 101 115 106 122 107 107 132 104 106 105 102 123 127 115 132 132 122 116 112 127 123 101 131 114 104 115 122 124 124 105 62 102 101 115 106 122 107 107 132 104 112 116 121 121 107 117 115 114 110 107 111 121 107 103 131 63 105 115 126 124 107 117 115 122 101 115 106 122 107 113 132 124 110 107 106 124 124 105 111 104 102 115 122 123 127 115 132 132 122 115 64 132 103 101 131 114 103 115 116 123 107 117 115 124 112 116 121 121 107 117 115 114 110 107 111 121 107 103 131 63 105 115 126 124 107 117 115 122 101 115 106 122 107 107 132 104 106 105 102 121 127 105 132 114 107 115 64 131 127 117 115 122 101 115 112 122 127 111 132 114 107 105 101 75 75 75 75 75 75

37
Day 4/decode.py Normal file

@ -0,0 +1,37 @@
#!/usr/bin/python
pirates = ['0' for i in range(48)]
p = ''.join(pirates)
s = '::)"<.vd]!&a{":r>Qyh 7';
length = len(s)
f='HV18-';
def subnum(i):
return int(p[i*2:i*2+2])
for i in range(length):
a = ord(s[i])
b = subnum(i)
f += chr(a ^ b)
print(f)
# indizes: 4, 9, 14, 19
# xxxx-xxxx-xxxx-xxxx
correctKey = "00000000"
for i in range(4):
pos = 4 + i*5
key = ord(s[pos]) ^ ord('-')
correctKey += "%02d%s" % (key, "00000000")
data = [correctKey[i:i+4] for i in range(0, len(correctKey), 4)]
print(correctKey)
print(data)
js = ""
for i in range(len(data)):
js += "document.getElementById('pirate%02d').value='%s';\n" % (i + 1, data[i])
print(js)

BIN
Teaser/Teaser.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

BIN
Teaser/Teaser2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

BIN
Teaser/data.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
Teaser/data2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

47
Teaser/decode.py Normal file

@ -0,0 +1,47 @@
#!/usr/bin/python
from PIL import Image
# Load Image
im = Image.open('Teaser.png')
offsetX = 154
offsetY = 183
imageSize = 180
# Crop Image
im.crop((offsetX, offsetY, offsetX+imageSize, offsetY+imageSize)).save("data.png")
# Braillecode
string = "http://bit.ly/2TJvxHt"
# forwared to https://hackvent.hacking-lab.com/T34s3r_MMXVIII/index.php?flag=UI18-GAUa-lXhq-htyV-w2Wr-0yiV
# decoded ROT13: https://hackvent.hacking-lab.com/T34s3r_MMXVIII/index.php?flag=HV18-TNHn-yKud-uglI-j2Je-0lvI
# Second Image
im = Image.open('Teaser2.png')
im.crop((offsetX, offsetY, offsetX+imageSize, offsetY+imageSize)).save("data2.png")
# follow the white rabbit ...
# rushed by ...
# HACKvent 2018
# .... ...- .---- ---.. -....- --. --- .-. .. -....- --.. .-. ... -... -....- ..- ..-. .- . -....- - ... -.... -.-. -....- -.-. ...- - -
# Morse code: HV18-GORI-ZRSB-UFAE-TS6C-CVTT
im = Image.open('pdf_data.png')
pix = im.load()
size = im.size
# pixels = []
#
# for x in range(size[0]):
# for y in range(size[1]):
#
# if pix[x,y] not in pixels:
# pixels.append(pix[x,y])
#
# r = 255 - pix[x,y][0]
# g = 255 - pix[x,y][1]
# b = 255 - pix[x,y][2]
# pix[x,y] = (r,g,b,255)
# im.save('pdf_data_decrypted.png')

1
Teaser/passphrase.txt Normal file

@ -0,0 +1 @@
ZOoxjUSe1OVB7OPoVrsX.pdf

BIN
Teaser/pdf_data.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

BIN
Teaser/test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB