Skip to content

Instantly share code, notes, and snippets.

@yogeesh
Created September 20, 2014 17:44
Show Gist options
  • Save yogeesh/4384408414e07da68821 to your computer and use it in GitHub Desktop.
Save yogeesh/4384408414e07da68821 to your computer and use it in GitHub Desktop.
CSAW 2014 crypto - 200 points
'''
crypto - 200
'''
import socket
def getTranslatedMessage(message):
key=-1
translated=''
for symbol in message:
if symbol.isalpha():
num = ord(symbol)
num += key
if symbol.isupper():
if num > ord('Z'):
num -= 26
elif num < ord('A'):
num += 26
elif symbol.islower():
if num > ord('z'):
num -= 26
elif num < ord('a'):
num += 26
translated += chr(num)
else:
translated += symbol
return translated
def decipher(msg):
for i in range(0, 30):
msg = getTranslatedMessage(msg)
if 'the answer to this stage is' in msg:
#print msg
return msg
def filter_recv(data):
data = data.split('\n')
#print data
for x in data:
print x
if 'psifer text:' in x:
msg = x.replace(r'psifer text: ', '')
return msg
'''
start here
'''
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = '54.209.5.48'
port = 12345
s.connect((host, port))
s.recv(2048)
data = s.recv(4096)
msg = filter_recv(data)
ans = decipher(msg)
print ans
ans = ans.replace(r'the answer to this stage is ', '')
s.send(ans+'\n')
data = s.recv(2048)
print data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment