본문 바로가기

드림핵

[드림핵 워게임] rev-basic-1

<문제>

 

 

<풀이>

먼저 파일을 실행하여 동적 분석을 진행해본다.

 

Windows PowerShell을 연다.

 

다운로드한 chall1.exe를 PowerShell 창에 끌어다놓고 Enter를 눌러 실행한다.

입력값을 대기하는 상태가 된다.

 

임의의 값 apple을 입력해보았는데 Wrong 메시지가 뜨고 프로그램이 종료된다.

 

 

이제 정적 분석을 진행해본다.

 

IDA로 chall1.exe를 연다

파일에 대한 정보가 나온다.

확인 후 OK를 클릭한다.

 

심볼을 가져오겠냐는 확인창이다.

심볼 파일이 없으므로 No를 클릭한다.

 

Shift+F12를 눌러 문자열을 찾아본다.

Correct 부분을 더블클릭한다.

 

어셈블리 코드 내에서 Correct 가 있는 부분의 명령어를 찾았다.

Buffer 변수를 참조하는 함수를 찾기 위해 Buffer를 클릭한 후 단축키 x를 누른다.

 

Buffer를 참조하는 함수가 뜬다.

더블클릭한다.

 

main함수를 찾았다.

 

F5를 눌러 디컴파일을 하면 디컴파일된 main함수를 확인할 수 있다.

sub_140001000()의 반환값으로 조건문을 실행하므로 해당 함수를 클릭해본다.

 

입력값 a1을 인자로 받아 한 문자씩 숫자와 비교한다.

모든 문자가 숫자와 같으면 0을 반환한다.

숫자를 아스키 코드로 변환하면 찾고자 하는 문자열을 볼 수 있을 것이다.

 

숫자를 클릭한 후 단축키 r을 클릭하면 IDA가 숫자에 대응되는 아스키 문자로 바꿔준다.

모두 문자로 바꿔보니 다음과 같은 문자열을 찾을 수 있었다.

 

"Compar3_the_ch4ract3r"

 

'드림핵' 카테고리의 다른 글

[드림핵 워게임] rev-basic-3  (2) 2023.11.24
[드림핵 워게임] patch  (2) 2023.11.24
[드림핵 워게임] rev-basic-0  (0) 2023.11.21
[드림핵 Reverse Engineering] Stage 5  (0) 2023.11.14
[드림핵 Reverse Engineering] Stage 4  (0) 2023.11.07