악성코드 분석 이해악성코드 분석 = 바이너리 분석 = 컴파일된 파일들을 분석악성코드 분석을 위해 실행 파일의 구조를 알아야 한다.윈도우: EXE, DLL리눅스: ELF, 바이너리 파일 PE 란?PE는 윈도우에서 사용하는 실행 파일(EXE), DLL 파일 등을 위한 파일 형식PE 파일 포맷은 Portable Executable File Format의 약자로, 파일이 이식 가능한 다른 곳에 옮겨져도(Portable) 실행 가능하도록(Executable) 만든 포맷(Format)이다. PEview 기능 및 사용법그림1의 아이콘을 더블클릭하여 실행 후, 분석할 파일을 불러온다.PEview 실행 시, 좌측에 4D 5A, 우측에 MZ 라는 문자열이 확인된다.4D 5A는 ASCII 문자열(16진수)로 MZ를 의미하..
Bin Text 기능 및 사용법Binary 파일에서 ASCII 및 유니코드 등이 문자열 정보를 추출하여 보여주는 분석 도구.파일 내 사용하는 메시지, URL, DLL, API 등을 확인할 수 있어 악성코드 정적 분석 시 유용하다.다운로드 URL: https://www.majorgeeks.com/files/details/bintext.html그림1의 아이콘을 더블클릭하여 파일을 실행한다.BinText 실행 후 Browse를 클릭하여 파일 경로를 불러온 후 Go를 누르거나, 파일을 드래그 앤 드랍하여 분석한다. 그림3과 같이 파일을 불러온 후, Text 항목에서 해당 파일의 Strings 값을 확인할 수 있다.특정 문자열 검색 하기 위해 하단의 검색창에 문자열 입력 후 Find를 눌러 검색한다. kernel..
도구를 이용한 패킹 여부 확인PEiD와 Exeinfo PE는 파일의 컴파일 언어와, 패킹 여부를 확인할 수 있는 정적 분석 도구이다.UPX는 압축 도구로 패킹과 언패킹이 가능한 도구이다. 패킹(Packing)이란?기존의 파일들을 압축, 기존 파일들의 주소값, 데이터 크기, 문자열 정보 등이 변경됨패킹을 하면 Import Adress Table, String 정보가 어느정도 감춰져 있다.도구를 사용하여 패킹 여부를 확인하고 파일이 패킹되어있는 경우 언패킹하여 상세하게 분석을 한다. PEiD 기능 및 활용법그림1의 PEiD 아이콘을 더블클릭 후 파일을 불러온다.그림2의 우측 상단의 빨간 박스에서 파일 경로를 불러오거나, 파일을 드래그 앤 드랍하여 파일을 가져온다.파일을 불러오면 파일의 경로와, 어떤 언어로..
악성코드 정적 분석 방법기초 정적 분석이란?악성코드 분석 시 가장 먼저 진행악성코드 연구의 시작 단계프로그램의 기능을 파악하기 위해 코드나 프로그램의 구조를 분석프로그램을 실행시키지 않음분석 방법악성 여부를 판단하는 안티바이러스 도구 사용(Virstotal 등)악성코드 판별 해시 사용파일의 문자열, 함수, 헤더에서 개략적인 내용 확인 (PEview, pestudio, Bin Text, Strings) Virustotal 이란?바이러스 토탈은 구글의 자회사로, 바이러스나 웜 트로이 등을 검사하고 막는 사이트이다. 여러 개의 백신 엔진으로 검사하여 그 결과를 투명하게 보여주며, 여러 개의 파일 검사도 가능하다. 파일 형식에 따라 해당 파일을 분석한 결과를 보여주기도 한다. 인터넷에 바이러스 토탈 또는 vir..
16진수 표기가 사용되는 예시색상 표현 → RGB컴퓨터 하드웨어 주소 표현 메모리 값 표현 RGB 색상 표현과 픽셀Red: 255-0-0Green: 0-255-0Blue: 0-0-255 Yellow: 255-255-0Magenta: 255-0-255Cyan: 0-255-255White: 255-255-255 Red 색상을 표현하는데 8bit를 사용한다.8bit → 2⁸ → 256 ( 0~255 ) → 256개의 빨간색 종류가 있다. 컴퓨터 RGB 컬러 색상 표현 CSS에서도 16진수로 색상을 표기한다.16진수 한 자리는 4bit 이다. 두 자리는? 8bitB7 1C 1C → 8bit 8bit 8bit → RGB 값 → 총합 24bit 컴퓨터 하드웨어 주소 표현 그림3 처럼 대부분 16진수로 표기한다..
2진수, 16진수, 진법 변환1bit = 2¹4bit = 2⁴ = 16컴퓨터의 모든 정보는 0과 1로 표현되는 디지털(Digital)이다.컴퓨터에서는 대부분 16진수로 바꿔서 표기한다. 2진수(4비트)16진수000000001100102001130100401015011060111710008100191010A1011B1100C1101D1110E1111F4비트는 16진수 한 자리 숫자다.16진수는 0 ~ F (십진수 15)까지 한 자리에 쓴다.C언어에서 '0xF4' 로 표현한다.(0x는 16진수를 의미) → 16진수 F4 = 10진수 244 = 2진수 1111 0100 0xF4는 4bit + 4bit = 8bit16진수를 사용하는 MAC 주소MAC 주소 예시: 11:32:FF:2C:4B:ABMAC 주소는 16..