16.exe -Name이 CodeEngn일때 Serial은 무엇인가?
일단 프로그램을 실행시켜보면
이런 식으로 실패 창이 뜨는 것을 알 수 있다.
그럼 이제 디버거로 실행파일을 열어 분석해보자.
실패 시 뜨는 “You serial is Wrong, try again”를 기반으로 String 검색을 해보면
이렇게 실패부분을 금방 찾을 수 있다.
이 코드부분 위쪽을 분석해보다 보면 성공과 실패로 나뉘는 분기점의 jmp 코드를 찾을 수 있다.
이 부분에 BreakPoint를 걸고 분석해보면
인자값 두개를 넣고 lstrcmpiA() 함수를 돌린 후 반환 값을 or 연산 하는 것을 알 수 있다.
좀 더 자세히 분석해보면
OR EAX EAX 연산에서 EAX 값이 0 이 나와야 JE에서 JUMP를 하므로,
lstrcmpiA() 함수의 리턴 값이 0 이 나와야 한다.
lstrcmpiA() 함수를 MSDN에서 검색해보면
두 string이 똑같을 때 zero를 return 하므로,
Serial 값은 06162370056B6AC0 인 것을 알 수 있다.
작성자 : 고현정
'CTF 중점 스터디' 카테고리의 다른 글
wargame.kr_img recovery_Write up (0) | 2020.01.13 |
---|---|
Suninatas 17 Write-up (0) | 2020.01.13 |
Wargame.kr_type confusion_Write up (0) | 2019.12.21 |
Pwnable.kr cmd1 Write-up (0) | 2019.12.20 |
pwnable.kr bof write up (0) | 2019.12.15 |