728x90

 

풀이

제공된 파일에는 chall1.c 파일과 chall1 바이너리 파일이 있다.

 

chall1.c의 코드를 보면 적절한 비밀번호를 입력을 하면 복호화가 되는 것을 알 수 있다.

위 코드를 보면 입력된 비밀번호와 KEY를 XOR한 값을 JOKER와 대조하여 일치하면 올바른 비밀번호로 인식되는 것을 알 수 있다. 따라서 JOKER와 KEY를 XOR 연산하여 원하는 비밀번호 값을 얻을 수 있다는 것을 알 수 있다.  (∵ a = b^c 이면 a^b = c)

jocker = "\x40\x53\x06\x03\x43\x52\x54\x3b"
key = "023661dd4"

tmp = ""
for i in range(8):
    tmp += chr(ord(key[i])^ord(jocker[i]))

print(tmp)

위와 같은 코드를 통해서 원하는 복호화 키를 얻을 수 있다. 

실행 결과

'Write-up > Crypto' 카테고리의 다른 글

[Dreamhack] likeb64  (0) 2024.04.03
[Dreamhack] babycrypto3  (0) 2024.03.29
[Dreamhack] SingleByteXor  (0) 2024.03.29
[Dreamhack] Basic-Crypto1  (0) 2024.03.29
[Dreamhack] ROT128  (0) 2024.03.29

+ Recent posts