분석 1
Name의 값이 5글자보다 작으면 "Name must be at least 5 chars or more..." 문자열이 뜬다.
일치하지 않은 Serial 값을 입력하면 위와 같이 "You serial is Wrong, try again" 메시지가 뜬다.
분석 2
x32dbg에 올린 후 문자열 검색 기능을 통해 문자열들을 확인하면 위와 같이 나온다.
그 중 "You serial is Wrong, try again" 문자열이 보인다.
해당 문자열은 4011FF 주소에서 참조하고 있다.
4011F6 주소에서 조건 분기를 하는데 40120E 주소는 올바른 Serial 값을 입력했을 때 출력되는 "Your serial is correct\r\n now you know what 2 do :p" 문자열이 참조된다.
조건 분기문 위를 보면 4011EF 주소에서 lstrcmpiA 함수를 호출한다.
4011EF 주소에 BP를 걸고 실행한다.
위와 같이 입력하고 Check 버튼을 누르면
스택에 4080F0 주소와 407EF0 주소가 쌓이는데
각각의 값은 위와 같다.
입력한 serial 값 12345와 Name의 값이 seansean 일 때 serial 값이다.
풀이
그렇다면 Ctrl + F2 키를 눌러 재실행 후 위와 같이 입력한 다음 디버거를 보면
위와 같이 codeengn일 때의 serial 값은 06162370056B6AC0 이다.
인증
위의 링크로 이동하여
Key에 위와 같이 입력하면 된다.
'전쟁 > codeengn' 카테고리의 다른 글
[codeengn] Basic RCE 20 (0) | 2022.10.17 |
---|---|
[codeengn] Basic RCE 19 (1) | 2022.10.14 |
[codeengn] Basic RCE 17 (0) | 2022.10.12 |
[codeengn] Basic RCE 16 (0) | 2022.07.31 |
[codeengn] Basic RCE 15 (0) | 2022.07.30 |