easy 한거 맞는지 잘 모르겠는 크랙미..
굉장히 단순해보인다. check를 누르면 nono..라는 메시지가 뜨는데 우선 이를 검색하면 여기로 향할 수 있다.
실험결과 함수는 messagebox의 역할을 하는 걸로 추측된다.
어디서 왔는지 역추적을 해보면(ctrl + R), 두 가지 갈래가 나온다. 가보면 두 개의 위치가 비슷하다.
위에 jge
구문은 실험 결과 길이를 esi로 받아온다. 길이가 0xE보다 같거나 크면, "nono..."로 향한다.
len(answer) < 0xE
아래 je
구문은 bl이라는 것을 체크하는데, bl
이 이 문제에서 중요하다. bl을 위쪽부터 유심히 살펴보다 보면 flag의 역할을 함을 알 수 있다. bl
을 위쪽에서 1로 세팅해두고, 여러 분기문을 통해 bl
을 0으로 만드려는 시도를 하고 있다.
즉, 대충 이런 코드이다.
flag = True
if something :
flag = False
if something :
flag = False
# something = jg jge jl ...
if not flag:
print("nono....")
그렇다면 bl
을 0으로 만드려는 조건들을 체크해야 한다.