profile image

L o a d i n g . . .

article thumbnail image
Published 2021. 4. 8. 19:50

7번 flag 문제 화면이다.

리버싱 문제임을 알 수 있다.

 

파일을 다운받고 ida로 까보니 뭔가 좀 이상하다..

 

text view를 통해 봐도 어셈블리어가 정상적으로 출력되지 않는 것을 알 수 있었다.

 

일단 프로그램에 포함되어 있는 Strings에 대한 정보를 확인해보자. 따라서 [Quick View(Ctrl + 1)]을 확인하여, [Strings(Shift + F12)]를 열었다.

 

확인해보니 upx라는 것이 보인다.

프로그램이 UPX(Ultimate Packer for eXecutable)를 이용하여 패킹되어 있다는 것을 알 수 있다. UPX는 다양한 파일 포맷을 지원하는 실행 파일 압축 프로그램이다. 실행 파일 압축을 하게 되면, 파일의 크기를 줄일 수 있으며 기본적인 리버싱을 방어할 수 있다.

 

 

exeinfo PE를 통해서도 udx로 패킹된 걸 알 수 있다.

 

 

-> 이와 같이 패킹(Packing) 처리가 된 프로그램을 다시 언패킹(Unpacking)하면 원래의 소스코드를 제대로 확인할 수 있다. 

 

 

github.com/upx/upx/releases

 

Releases · upx/upx

UPX - the Ultimate Packer for eXecutables. Contribute to upx/upx development by creating an account on GitHub.

github.com

upx win-64를 다운받은 뒤, 압축을 푼 파일에 flag 파일을 옮겨준다.

 

cmd 창에서 해당 디렉토리로 이동한 후 "upx -d flag"를 통해 언패킹 해준다.

 

 

파일은 unpacking 한 후, ida로 여니 아까와 달리 코드가 잘 나오는 것을 확인할 수 있다.

 

 

flag 값도 확인할 수 있다!!

'Wargame > Pwnable.kr' 카테고리의 다른 글

[Pwnable.kr] 6번 random  (0) 2021.04.08
[Pwnable.kr] 5번 passcode  (0) 2021.04.08
[Pwnable.kr] 3번 bof  (0) 2021.04.01
[Pwnable.kr] 2번 collision  (0) 2021.04.01
[Pwnable.kr] 1번 fd  (0) 2021.04.01
복사했습니다!