SMALL
[문제]
[풀이]
파일을 다운하여 임의의 문자열을 넣을면 오류 메시지가 출력된다.
IDA를 열어 start 함수를 보면 UPX로 패킹되어 있는 것을 알 수 있다.
이에 윈도우 cmd 창에서 upx 언패킹을 하여 ollydbg로 분석해보았다.
ollydbg로 [Searchfor] - [All referenced text strings]를 확인하면 프로그램 속의 문자열만 추출하여 보여준다. 여기서 Enter a Serial! 아래에 Registered User와 GFX-754-IER-954가 위치하였고, 이 다음 성공 메시지를 출력하고 있었다.
해당 값들이 실제 정답인지 확인하고자 코드를 확인하였다.
코드를 보면 Registered User 아래에 조건 분기문으로 00440F8C로 분기하는 것을 볼 수 있는데, 문자열을 비교하여 값이 다르면 Wrong 문자열을 출력하는 코드로 분기한다는 것을 알 수 있다.
시리얼 넘버 또한 같은 방식이다. 문자열을 비교해 값이 다르다면 00440F72로 분기하기 때문에 두 문자열을 정답임을 알 수 있다.
[핵심]
upx 패킹
LIST
'Wargame > CodeEngn' 카테고리의 다른 글
[CodeEngn] Basic RCE L09 (0) | 2021.08.11 |
---|---|
[CodeEngn] Basic RCE L08 (0) | 2021.08.04 |
[CodeEngn] Basic RCE L07 (0) | 2021.07.30 |
[CodeEngn] Basic RCE L04 (0) | 2021.07.22 |
[CodeEngn] Basic RCE L03 (0) | 2021.07.22 |