צעדי חסד
Cryptohack3(XOR) 본문
- xor 스타터
문자열 "label"에서 각각의 문자열 l,a,b,e,l 을 for 문을 이용해서 1과0으로 이뤄진 문자열 각각 바꿔줍니다.
마찬가지로 13도 2진수로 바꾼다음 앞서 바꾼 각각의 문자열의 2진수와 13의 2진수를 xor해 줍니다.
2.xor 속성
문제에서 힌트를 주었다. f^k1^k2^k3 값에 k2^k3 을 xor연산하면, f^k1^(k2^k2)^(k3^k3)이고 이는,
f^k1입니다. 즉, flag = xor(bytes.fromhex(f123), bytes.fromhex(k1))
flag = xor(bytes.fromhex(k23), flag)
print(flag)입니다.
3.favourite byte
먼저 주어진 hex를 디코딩 시켜줘야 합니다. 그 다음 for 반복문을 이용해서 'crypto{'라는 문자열이 나올 때까지 디코딩하는 과정을 반복해주고 해당 문자열이 나오면, for반복문을 종료시킵니다.
- You either know, XOR you don't
해당 문자열을 위에서처럼 decoding시킵니다. 마찬가지로 'crypto{'문자열이 나올때까지 xor연산을 수행합니다,
그러면 key값이 주어지는데 이 값을 주어진 문자열을 바이트 시킨값이랑 xor연산을 시킵니다.
5.Lemur XOR
주어진 .png파일을 다운받아 줍니다.
저장할 장소를 고르고 해당 경로를 복사해 줍니다.
이를 수행하기 전엔 terminer창에 python -m pip install opencv-python이라고 친 후, 해당 라이브러리를
다운받습니다. 그 후 , 소스코드 창에 'import cv2'라고 선언해 줍니다.
lemur = '저장경로', flag = '저장경로'라고 코드를 입력하고, img1 = cv2.imgread(lemur), img2 = cv2.imgread(flag)
, bit_xor = cv2.bitwise_xor(img1, img2)
cv2.imwrite("플래값을 저장할 경로", bit_xor)
이라고 하면 flag값이 나옵니다.
'CS > 보안' 카테고리의 다른 글
Cryptohack6(AES_2) (0) | 2023.09.10 |
---|---|
Cryptohack4(byte) (0) | 2023.09.10 |
Cryptohack2(MATHEMATICS) (0) | 2023.09.10 |
Cryptohack1 (0) | 2023.09.10 |
XSS (0) | 2023.09.10 |