Packing

 

  실행 압축(Packing)은 말 그대로 실행 파일을 압축하는 것을 말한다. 수많은 실행 파일 압축 프로그램이 존재하며 이러한 프로그램들은 MS-DOS 시절부터 존재해왔다.

  소프트웨어 개발자들이 실행 파일 압축을 사용하는 까닭은 많은데, 주로 소프트웨어의 기억 장치의 용량을 줄이는 것이 목적이다. 실행 압축 프로그램의 목적은 실행 코드를 압축하는 것이며 표준 데이터 압축 프로그램 기능보다 더 나은 압축률을 보이고 있다. PE 포멧으로 되어 있는 실행 파일을 압축할 때의 한 가지 장점으로는 보안을 들 수 있다. 어떠한 프로그램 안의 데이터를 분석하는 프로그램을 사용하여 프로그래머가 짠 내용을 분석하지 못하게 막을 수 있다. 한글 패치를 만들때에도 이러한 프로그램이 이용되기도 한다. 압축된 실행 파일은 파일 시스템의 공간을 덜 차지하기 때문에 파일 시스템으로 부터 데이터가 메모리에 전송되는 시간이 덜 걸린다.

 

실행 압축 프로그램의 종류

 

  1) ASPack

  2) CExe

  3) exe32pack

  4) NeoLite

  5) PKLite32

  6) PEtite

 

출처 : 위키 백과 

 

'0x012 Etc' 카테고리의 다른 글

[Term] Code Obfuscation  (0) 2017.12.29
[Term] Debugging | Anti-Debugging  (0) 2017.12.29
[Term] Hooking  (0) 2017.12.29
[Term] Malware  (0) 2017.12.29
[Term] Exploit  (0) 2017.12.29

Hooking

 

  후킹(Hooking)은 소프트웨어 공학 용어로 운영체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말한다. 이때 이러한 간섭됩 함수 호출, 이벤트 또는 메시지를 처리 하는 코드를 후크(Hook)라고 한다. 크래킹(불법적인 해킹)을 할 때 크래킹 대상 컴퓨터의 메모리 정보, 키보드 입력 정보 등을 빼돌리기 위해서 사용되기도 한다. 일반적으로 후크는 소프트웨어가 이미 실행중일때 삽입되지만, 후킹은 응용 프로그램이 실행되기도 전에 쓰일 수 있는 전략이다.

 

 1) 물리적 수정 : 응용프로그램이 실행되기 전에 리버스 엔지니어링 기법으로 실행 또는 라이브러리를 물리적 수정함으로써 후킹을 할 수 있다. 이러한 기법은 일반적으로 다른 모니터로 함수 호출을 가로채거나 기긋덜이 완전히 다른 함수로 대체하는데 사용된다.

 

  2) 런타임 수정 : 운영체제와 소프트웨어는 후크를 삽입하는 프로세스에 충분한 권한이 부여된 경우 런타임 도중 이벤트 후크를 쉽게 삽입할 수 있다. 예를 들어, Microsoft Windows 에서는 대화상자, 스크롤바 및 메뉴뿐만 아니라 다른 항목에 대한 시스템 이벤트와 응용 프로그램 이벤트를 처리하거나 수정하는데 사용될 수 있는 후크를 삽입 할 수 있다. 또한 후크는 키보드 및 마우스 이벤트를 삽입, 제거, 수정이 가능하다. 리눅스에서는 후크가 넷필터를 통해 커널 내의 네트워크 이벤트를 처리 하기 위해 비슷한 방식으로 사용될 수 있는 또 다른 예를 제공한다.

 

 - 출처 : 위키 백과 

 

'0x012 Etc' 카테고리의 다른 글

[Term] Debugging | Anti-Debugging  (0) 2017.12.29
[Term] Packing  (0) 2017.12.29
[Term] Malware  (0) 2017.12.29
[Term] Exploit  (0) 2017.12.29
[Term] Zero-Day Attack  (0) 2017.12.29

Malware

 

  악성 코드 또는 멀웨어(Malware)는 컴퓨터에 악영향을 끼칠 수 있는 모든 소프트웨어의 총칭이다. 예전에는 단순히 컴퓨터 바이러스만이 활동하였으나, 1990년대 말 들어서 감염 방법과 증상들이 다양해지면서 자세히 분류를 나누기 시작했다. 과거에는 디스크 복제 등 저장매체를 따라 전파되었으나 네트워크가 발달하면서 이메일이나 웹으로 감염되는 경우가 훨씬 많아졌다.

  악성코드를 분석하는 방법은 크게 정적 분석과 동적분석으로 나눌 수 있다.

 

   1) 정적 분석 : 프로그램을 디스어셈블하는 디버깅 프로그램들을 이용하는 방법으로 디스어셈블된 프로그램의 코드를 실행시키지 않고 분석하는 기법이다.

  

   2) 동적 분석 : 런타임 디버깅 기법을 이용하여 통제된 상황 하에서 악성코드를 직접 실행시키며 이후에 발생하는 변화들을 분석하는 형태로 이루어진다.

 

출처 : 위키백과 

'0x012 Etc' 카테고리의 다른 글

[Term] Packing  (0) 2017.12.29
[Term] Hooking  (0) 2017.12.29
[Term] Exploit  (0) 2017.12.29
[Term] Zero-Day Attack  (0) 2017.12.29
[Term] Buffer Overflow  (0) 2017.12.29

+ Recent posts