
보면 call sub_140001000 함수에서 입력값이 올바른지 확인하는 거 같다.

해당 함수에서는 위에서 연산을 하는 거 같다.
디컴파일 한 결과는 아래와 같다.
__int64 __fastcall sub_140001000(__int64 a1)
{
int i; // [rsp+0h] [rbp-18h]
for ( i = 0; (unsigned __int64)i < 0x18; ++i )
{
if ( byte_140003000[i] != (i ^ *(unsigned __int8 *)(a1 + i)) + 2 * i )
return 0i64;
}
return 1i64;
}

해당 함수에서 비교하는 값들을 확인할 수 있고
해당 비교하는 값들을 활용하여 플래그를 추출하는 코드를 파이썬으로 작성해보자.