PWN flag
http://pwnable.kr/index.php
(이번 pwn 은 윈도우에서 했다. 리눅스에서 하려 했는데 도저히 프로그램이 정상적으로 설치할 수가 없었다. )
먼저 써진 주소를 입력해서 flag파일을 다운 받는다. 이 파일을 실행시키려 했더니 불가능했다. writeup에 나온 것처럼 리버싱을 하기로 했다.
리버싱이란 reverse와 engineering을 합친 단어로 실행 프로그램을 소스코드로 변환해 분석하는 작업을 의미한다.
먼저 IDA프로그램을 다운 받는다. IDA는 컴퓨터 소프트웨어용 디스어셈블러로 기계어 코드로부터 어셈블리어 코드를 생성한다.
IDA에 flag함수를 넣어 확인했다.
찾기 기능을 통해 info를 검색했는데 flag프로그램에 대한 정보가 나와있었다.
This file is packed with the UPX executable packer
여기서 나온 UPX는 오픈소스 실행 파일 압축 프로그램이다. 즉, flag파일은 UPX압프로그램을 통해 압축된 상태이다. 이 압축을 풀어주기 위해 UPX를 다운 받았다.
근데 압축이 해제가 되지 않아서 읽어보니 구버전 upx랑 호환되지 않는 다고..... 최신버전의 upx를 다시 다운 받았다. (http://upx.sourceforge.net/download/00-OLD-VERSIONS/ : 이곳에서 버전 별 upx를 다운받을 수 있다. )
최신 버전의 upx를 사용해 flag파일의 압축을 해제했다.
이 상태로 다시 IDA로 가져가 코드 분석을 했다. 처음과 다르게 아는 함수가 여럿 나와있었다.
아까와 마찬가지로 검색기능을 이용해 flag를 찾았다.
성공!!
참고:
https://ko.wikipedia.org/wiki/UPX
https://ko.wikipedia.org/wiki/IDA_%ED%94%84%EB%A1%9C
http://noisivohees.tistory.com/13
http://pwnable.kr/index.php
(이번 pwn 은 윈도우에서 했다. 리눅스에서 하려 했는데 도저히 프로그램이 정상적으로 설치할 수가 없었다. )
먼저 써진 주소를 입력해서 flag파일을 다운 받는다. 이 파일을 실행시키려 했더니 불가능했다. writeup에 나온 것처럼 리버싱을 하기로 했다.
리버싱이란 reverse와 engineering을 합친 단어로 실행 프로그램을 소스코드로 변환해 분석하는 작업을 의미한다.
먼저 IDA프로그램을 다운 받는다. IDA는 컴퓨터 소프트웨어용 디스어셈블러로 기계어 코드로부터 어셈블리어 코드를 생성한다.
IDA에 flag함수를 넣어 확인했다.
찾기 기능을 통해 info를 검색했는데 flag프로그램에 대한 정보가 나와있었다.
This file is packed with the UPX executable packer
여기서 나온 UPX는 오픈소스 실행 파일 압축 프로그램이다. 즉, flag파일은 UPX압프로그램을 통해 압축된 상태이다. 이 압축을 풀어주기 위해 UPX를 다운 받았다.
근데 압축이 해제가 되지 않아서 읽어보니 구버전 upx랑 호환되지 않는 다고..... 최신버전의 upx를 다시 다운 받았다. (http://upx.sourceforge.net/download/00-OLD-VERSIONS/ : 이곳에서 버전 별 upx를 다운받을 수 있다. )
최신 버전의 upx를 사용해 flag파일의 압축을 해제했다.
이 상태로 다시 IDA로 가져가 코드 분석을 했다. 처음과 다르게 아는 함수가 여럿 나와있었다.
아까와 마찬가지로 검색기능을 이용해 flag를 찾았다.
성공!!
참고:
https://ko.wikipedia.org/wiki/UPX
https://ko.wikipedia.org/wiki/IDA_%ED%94%84%EB%A1%9C
http://noisivohees.tistory.com/13


댓글
댓글 쓰기