1. 진입 키워드 찾기

sub_409A00()

image.png

Strings를 확인해보면 ‘Hello,admin’이라는 안내문을 확인할 수 있다.

image.png

v8 = strcmp(Destination, Str2); 가 0을 반환해야하므로 DestinationStr2가 동일한 문자열이어야한다.

Str2 은 ‘vssx5448’ 각 문자에서 4를 뺀 값이다.

image.png

s = "vssx5448"
result = ""
for char in s:
    result += chr(ord(char) - 4)
print(result)  # root1004

Destination 은 입력받은 문자열을 복사한 값이므로 root1004 를 입력하면 Hello,admin이라는 안내문이 출력된다.

image.png

2. 정답 순열 찾기

image.png

root1004 입력 후 게임을 진행하면 Invalid order라는 안내문과 함께 게임이 종료된다. 플래그를 획득 하기 위해 특정한 순서가 있음을 알 수 있다.

sub_409A00()

image.png

매턴 실행되는 루프를 보면 플레이어가 선택하는 값 v9가 이전에 선택하는 값보다 작아야함을 알 수 있다.

image.png

키워드가 바르게 입력이 되면 Destination 버퍼가 다시 써지는데 저장된 내용을 보면 다음과 같다.