![article thumbnail image](https://blog.kakaocdn.net/dn/dSa5qG/btq2gXABqUf/NwkjIDfTQCIdEGmuDnFAk0/img.png)
리버싱 문제임을 알 수 있다.
text view를 통해 봐도 어셈블리어가 정상적으로 출력되지 않는 것을 알 수 있었다.
일단 프로그램에 포함되어 있는 Strings에 대한 정보를 확인해보자. 따라서 [Quick View(Ctrl + 1)]을 확인하여, [Strings(Shift + F12)]를 열었다.
프로그램이 UPX(Ultimate Packer for eXecutable)를 이용하여 패킹되어 있다는 것을 알 수 있다. UPX는 다양한 파일 포맷을 지원하는 실행 파일 압축 프로그램이다. 실행 파일 압축을 하게 되면, 파일의 크기를 줄일 수 있으며 기본적인 리버싱을 방어할 수 있다.
-> 이와 같이 패킹(Packing) 처리가 된 프로그램을 다시 언패킹(Unpacking)하면 원래의 소스코드를 제대로 확인할 수 있다.
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 |