CodeEngn Basic RCE L06 Write-Up
파일 링크: https://codeengn.com/challenges/
CodeEngn.com [코드엔진] - Challenges
코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 비공개 워크숍을 현업 실무자들과 함께 운영하고 있습니다. 리버스엔지니어링이라는 하나의 큰 주제로 소프트웨어 보안에 대한 다양한 시각과 연구주제에 대한 정보공유를 추구하고 있으며, 상업적 이익 없이 작은 예산으로 운영하고 있어 큰 예산으로 운영하는 다른 컨퍼런스에 비해 여러 가지로 부족 할 수 있습니다.
codeengn.com

풀어보자.


파일을 실행하고 "test" 문자열을 입력하면 틀리다고 한다. "Wrong ~~" 문자열이 사용된다.

올리디버거로 실행하면 PUSHAD 명령어를 사용한다. 패킹된 파일이다.

Detect It Easy 도구로 열어보면 UPX로 패킹된 파일임을 알 수 있다.

upx 도구로 언패킹하면 된다.

언패킹된 파일을 올리디버거로 실행하면 OEP부터 디버깅을 할 수 있다. OEP는 0x00401360이다.

code 섹션에서 우클릭 - Search for - All referenced strings 기능을 클릭하면 위와 같이 사용되는 문자열들을 확인할 수 있다. "Wrong ~~" 문자열과 그 위로 "AD46DFS547" 문자열이 사용됨을 알 수 있다.

"Wrong ~~" 문자열이 사용되는 루틴을 보면 내가 입력한 "test" 문자열과 "AD46DFS547" 문자열을 0x00401290 함수의 인자로 전달한다. 즉, "AD46DFS547" 문자열이 Serial일 것이다.

위와 같이 "AD46DFS547" 문자열을 입력하면 성공한다.
Auth Key 값은 OEP+Serial이다.
'Wargame > CodeEngn Basic RCE' 카테고리의 다른 글
| CodeEngn Basic RCE L08 Write-Up (0) | 2019.08.18 |
|---|---|
| CodeEngn Basic RCE L07 Write-Up (0) | 2019.08.18 |
| CodeEngn Basic RCE L05 Write-Up (0) | 2019.08.18 |
| CodeEngn Basic RCE L04 Write-Up (0) | 2019.08.18 |
| CodeEngn Basic RCE L03 Write-Up (0) | 2019.08.18 |