캡스톤 디자인 #10 - codeEngn RCE-BASIC 05

Dreamer_01·2022년 5월 17일
0

문제: 이 프로그램의 등록키는 무엇인가?

우선 나는 혼자 풀어보기 위해서 문자열 검색을 했는데 Serial-Num-Access 라는 문자열만 보았고, 거기서 알려주는 주소로 가봤지만 별게 없었다.
758119BC에 가도 특별한게 없었다.

write-up을 참고해보니 packing 된 문제라고 했다.

PEiD로 살펴보니 UPX로 패킹 됨을 알 수 있다.

패킹이란?

패킹은 단어 자체는 포장이라는 의미를 가지고 있다.
리버싱에서는 실행 압축의 뜻을 가지는데, 이 파일은 압축을 푸는 과정 없이 일반 프로그램 처럼 실행할 수 있는 특징을 갖고 있다.

파일 내부에 압축해제 코드를 가지고 있으며, 해제해서 나온 파일또한, PE파일의 형태를 가지고 있다.

이런 실행 파일은 리버싱 분석하기에 접근해서 포장하기에 어렵고, 디버깅 지점을 찾는데 매우 어렵다.

이런 패킹을 하는 이유는 패킹 후의 어플리케이션은 암호화, 인코딩 상태로 새로운 데이터 영역에 저장되고, 이에 따라 데이터의 크기도 줄 뿐더러, 악성코드의 경우에는 분석에 어려움을 주기 위해서 하기도 한다.

문제 풀이

먼저 upx unpack tool을 설치 해야 한다. 나는 이곳에서 다운 받았다.
그 후, 목표한 파일을 tool과 같은 경로에 놓고 실행한다.

그 후에 디버깅 툴에 다시 넣으면, 이전과는 다른 내용을 보게 된다. 그리고 f9를 누르면서 실행을 하게 되면, 그 위에 정보가 있는것을 볼 수 있다.

정답

손으로 하는 Unpack 과정
https://github.com/codeengn/codeengn-challenges-writeups/blob/master/RCE_Basic/L05/RCE%20Basic%20L05%20Report%20%5BPRIDE%5D.pdf

0개의 댓글