컴퓨터가 사진을 다루는 방법(1)모니터 화면 상 '점' 하나를 화소(Pixel)이라 한다.여러 점들을 모아 사진을 만들 수 있다. 사진 → 화소의 집합체화소 하나를 표현하는데 8비트, 16비트, 24비트, 32비트 정보(투명도 추가)가 필요할 수 있다.RGB + 투명도(알파 채널) = 24bit + 8bit = RGBA 컴퓨터가 사진을 다루는 방법(2)빛의 3원색은 Red, Green, Blue이다. 이 점에 착안해 RGB 컬러가 등장한다.색상 1개를 표현하는데 8bit를 사용한다.화소가 작을 수록 사진이 매끄럽다.(고해상도) RGB 색상 표현과 픽셀Red, Green, Blue 의 정도는 8bit로 표현되며, 256 가지 정도로 표현된다.그림1의 우측 캐릭터는 화소의 모음으로 볼 수 있다.1칸당 화..
컴퓨터가 글자를 다루는 방법(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는 독립적으로 실행하기 위해 모든 파일이 필요하여 그만큼 용량이 ..