문제
수비수 비활성화
먼저 Windows Defender를 비활성화하여 exe 파일을 다운로드해야 합니다.
암호
이것이 주요 기능의 모습입니다.
사용자로부터 문자열 입력을 받아 Buf2와 비교하고 일치하는 경우 플래그를 반환합니다.
(memcmp 함수는 두 문자열이 같으면 0을 반환합니다.)
우리가 집중해야 할 것은 루프의 세 가지 작업입니다.
문자열에 사용자가 입력한 각 문자에 대해 연산이 수행됩니다. 먼저 17과 XOR, 27과 XOR, 마지막으로 3을 뺍니다.
결과 문자열이 “?;FJDnv8dw8lRulyRmmt”와 같으면 플래그가 출력됩니다.
역 계산
반전은 연산의 역순입니다.
3을 빼서 이번에는 3을 더하고, 27을 XOR하고, 마지막으로 17을 XOR합니다.
XOR은 덧셈과 뺄셈과 같은 반대 연산이 없으므로 그대로 진행됩니다.
Buf2 = "?;FJDnv8dw8lRulyRmmt"
for i in range(0, 20) :
char = ord(Buf2(i))
char += 3
char ^= 27
char ^= 17
print(chr(char), end="")