컴퓨터가 글자를 다루는 방법(1)십진수 65 = 영문 대문자 'A' = 16진수 0x41컴퓨터 내부에 글자는 없다. → 2진수만 존재한다, 숫자를 받으면 해당 숫자에 맞는 문자를 그려준다.ASCII(American Standard Code for Information Interchange)는 미국에서 사용하는 표준 코드체계이다.숫자와 글자를 구별하지 않고 정보를 말 할 때는 바이너리(Binary)라고 한다.숫자 1과 문자 '1'은 다르다. ASCII 코드 참고https://ko.wikipedia.org/wiki/ASCII 컴퓨터가 글자를 다루는 방법(2)빈칸도 문자다. = 20엔터도 문자다. = 0D 0A 참고https://www.inflearn.com/course/%EB%84%93%EA%B..
리버싱 기초리버싱은 통상적으로 컴파일된 바이너리(exe, dll, sys 등)를 디스어셈블(disassemble) 도구를 이용하여 어셈블리 코드로 변환하여 필요한 작업을 수행하는 것이다. 어셈블리 코드에서 소프트웨어의 동작 방식을 알아낸다거나 일정 부분만 수정하는 것도 리버싱이라 한다. ex) 악성코드 분석은 해당 파일 또는 프로그램에서 악성 행위를 하는 부분을 분석한다.프로그램을 디스어셈블 하지 않고도 그 실행 파일이 만들어내는 데이터 파일이나 패킷 등을 분석하여 그 프로그램을 재현하는 것도 리버싱이라 볼 수 있다.ex) 서버와 통신을 수행하는 기능이 있는 게임 프로그램이 디버거나 에디터를 활용하여 게임 프로그램을 조작하지 않고 패킷 분석 프로그램을 이용하여 패킷을 분석 및 동작을 흉내 내는 프로그램을..
악성코드 동적 분석 방법기초 동적 분석이란?프로그램을 직접 실행하며 분석(프로그램 실행에 의한 변화들을 확인, 로그 수집)악성코드 분석에서 가장 프로그램의 영향을 쉽게 파악프로그램의 기능을 파악하기 위해 악성코드 실행 전후 상태를 조사 및 분석분석 방법악성코드 실습 시 발생하는 호스트/네트워크 환경 구성(본 글은 win7 32bit 환경 구성)파일, 프로그램 실행, 레지스트리, 서비스 등 관련 항목 변경 사항 확인실행 시 발생하는 네트워크 트래픽 분석(Wireshark, Network Miner 등 활용)Windows 유틸 도구 다운로드 URL (Process Monitor, Process Explorer, Autoruns 포함)https://learn.microsoft.com/ko-kr/sysinter..
외워야 할 단위 체계(1)8비트(bit) 를 하나로 묶어 1바이트(byte)라고 한다. 8bit → 1byte1바이트는 영문자 한 글자가 저장될 수 있는 메모리 크기이며 관리의 최소단위이다.한글 한 글자를 저장하려면 2바이트가 필요하다. → 인코딩 체계에 따라 달라질 수 있다.Computer ≒ CPU + RAM(Memory) 이며, Memory 용량의 최소 단위가 1byte이다. 외워야 할 단위 체계(2)4비트는 16가지, 8비트는 256가지, 16비트는 65536가지 경우의 수가 있다.2의 10제곱은 1024이다. 2¹⁰ → 1024비트경우의 수특징4 bit1616진수 한 자리8 bit2561 Byte16 bit6553664 KB → 관리 가능한 메모리 최대 크기 (RAM 용량)32 bit약 42억..
DLL(Dynamic Link Library) 이란?MS 윈도우에서 구현된 동적 라이브러리이다. 내부에는 다른 프로그램이 불러서 쓸 수 있는 다양한 함수들을 가지고 있다.자주 사용되는 표준적인 함수를 매번 직접 작성해서 사용하는 것은 지나치게 시간 소모적이므로 표준화할 수 있는 함수를 미리 만들어서 모아 놓은 것.DLL 파일 → 함수 모음, 1개의 EXE 파일로 볼 수 있다.DLL → 동적 링킹, EXE → 정적 링킹EXE와 DLL의 차이:가장 큰 차이점은 실행 시점이다. EXE(독립적 실행)는 필요한 모든 라이브러리들을 갖고 있다. DLL은 프로그램 실행 도중에 갖고 오거나 가져다 준다.EXE와 DLL 파일의 크기도 연관이 있으며, EXE는 독립적으로 실행하기 위해 모든 파일이 필요하여 그만큼 용량이 ..
악성코드 분석 이해악성코드 분석 = 바이너리 분석 = 컴파일된 파일들을 분석악성코드 분석을 위해 실행 파일의 구조를 알아야 한다.윈도우: 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를 의미하..