해킹/개념 정리 - 10

  1. UPX 2015.11.24
  2. file destriptor 2015.11.24

UPX

해킹/개념 정리 2015. 11. 24. 20:24

UPX(Ultimate Packer for eXecutables)는 여러 운영체제에서 수많은 파일 포맷을 지원하는 오픈 소스 실행 파일 압축 프로그램이다. GNU 일반 공중 사용 허가서를 통해 공개된 자유 소프트웨어이다. 압축, 압축 해제의 기능을 모두 담당한다.



UPX는 압축 해제를 위해 두 개의 메커니즘을 지원한다.

  1. 인 플레이스(in-place) 테크닉
  2. 임시 파일로의 해제

실행 파일을 메모리로 해제하는 인 플레이스 테크닉은 모든 플랫폼에서 이용이 가능한 것은 아니다. 나머지 플랫폼에서는 임시 파일로의 압축 해제를 사용한다. 이 과정에는 추가적인 오버헤드와 기타 단점들이 동반되지만, 어떠한 실행 파일 포맷도 압축이 가능하게 한다.

임시 파일로 해제는 방식은 몇 가지 단점이 존재한다:

  • suid와 같은 특수 권한이 무시된다.
  • argv[0]의 의미가 없어진다.
  • 여러 인스턴스로 실행 중인 실행 프로그램들은 공통된 세그먼트를 공유할 수 없다.

수정되지 않은 UPX 압축이 자주 발견되며 바이러스 검사 소프트웨어 스캐너를 통해 압축이 해제된다. UPX 또한 이미 압축된 미수정 실행 파일들의 압축을 해제할 수 있는 기능이 자체 내장되어 있다.



UPX로 압축된 바이너리가 실행되는 대략적인 원리는 실제 실행코드를 data영역에 압축해서 넣고 EP부분에 코드의 복구/실행을 하는 루틴을 넣는 것이라고 합니다. 


이러한 패킹 소프트웨어들은 대부분 패킹과정에서 디버깅을 감지하고 차단하는 기능을 추가한다고 합니다.

'해킹 > 개념 정리' 카테고리의 다른 글

ASLR의 개념  (0) 2016.01.13
함수의 프롤로그와 에필로그에 관한 고찰 + fake ebp(실패)  (0) 2016.01.13
다중 파이프 페이로드  (0) 2015.11.24
GOT overwrite  (0) 2015.11.24
file destriptor  (0) 2015.11.24
Tags
Social

file destriptor

해킹/개념 정리 2015. 11. 24. 18:02

컴퓨터 프로그래밍 분야에서 파일 서술자(file descriptor) 또는 파일 기술자는 특정한 파일에 접근하기 위한 추상적인 키이다. 이 용어는 일반적으로 POSIX 운영 체제에 쓰인다. 마이크로소프트 윈도와 C 표준 입출력 라이브러리환경에서 "파일 핸들"(file handle)이라는 말이 선호되지만 후자의 경우 기술적으로 다른 객체이다.

POSIX에서 파일 서술자는 정수, 곧 C형 int를 말한다. 모든 프로세스가 갖추어야 하는 표준 POSIX 파일 서술자는 다음과 같이 세 개가 있다


출처:https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC_%EC%84%9C%EC%88%A0%EC%9E%90

'해킹 > 개념 정리' 카테고리의 다른 글

ASLR의 개념  (0) 2016.01.13
함수의 프롤로그와 에필로그에 관한 고찰 + fake ebp(실패)  (0) 2016.01.13
다중 파이프 페이로드  (0) 2015.11.24
GOT overwrite  (0) 2015.11.24
UPX  (0) 2015.11.24
Tags
Social