본문 바로가기

[Wargame Write-up]/Net-Force

[Net-Force] [Cryptography] 3. Sea Code

제목이 Sea Code이다.


내용에는 모스 부호가 있다.




HackThis!! Crypt 3번째 문제를 풀 때 썼던 코드를 재활용하면 되겠다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
morse_code = {
        '.-':    'a',        '-...':    'b',        '-.-.':    'c',        '-..':    'd',        '.':    'e',        '..-.':    'f',
        '--.':    'g',       '....':    'h',        '..':    'i',        '.---':    'j',        '-.-':    'k',        '.-..':    'l',
        '--':    'm',        '-.':    'n',        '---':    'o',        '.--.':    'p',        '--.-':    'q',        '.-.':    'r',
        '...':    's',       '-':    't',        '..-':    'u',        '...-':    'v',        '.--':    'w',        '-..-':    'x',
        '-.--':    'y',      '--..':    'z',        '.----':'1',        '..---':'2',        '...--':'3',        '....-':'4',
        '.....':'5',         '-....':'6',        '--...':'7',        '---..':'8',        '----.':'9',        '-----':'0',
        '--..--':',',        '---...':':',       '..--..':'?',       '.----.':"'",       '-....-':'-',       '-..-.':'/'
}
 
def decrypt_morse(morsecode, token1=None, token2=None):    
    result = ''
    for s in morsecode.split(token1):
        if s in morse_code.keys():
            result += morse_code[s]
        
        elif s == token2:
            result += ' '
 
    return result
 
def main():
    
    ciphertext = '- .... . .--. .- ... ... .-- --- .-. -.. ..-. --- .-. - .... .. ... .-.. . ...- . .-.. .. ... .-- . .-.. .-.. -.. --- -. .'
    
    print 'ciphertext: %s\n' % ciphertext
    print 'decrypted: %s' % decrypt_morse(ciphertext, ' ')
 
if __name__ == '__main__':
    main()
cs



단어를 확인해보면, 패스워드를 알 수 있다.