분류 전체보기 289

소프트웨어 공학 개요

이제 우리가 사는 세상은 소프트웨어가 없으면 질높은 삶을 영위하기가 힘들다. 점점 더 많은 시스템들이 s/w에 의해 제어되고, 대부분의 선진국들에선 s/w에 대한 지출비용이 GNP의 상당한 부분을 차지한다. 이런 시대에서 IT분야를 공부하는 우리는 소프트웨어 개발에 대한 전문적인 지식이 필요하다. 소프트웨어 공학은 그런 취지에서 시작한다. 소프트웨어는 시스템 비용 대부분을 차지할 정도로 비용이 많이 든다. 요즘은 하드웨어보다 소프트웨어가 비용이 더 많이 들때가 있다. 그리고 개발보다는 유지보수에 비용이 더 많이 든다. (긴 수명을 가진 시스템인 경우 개발비용의 5~6배 정도 든다.) 이렇게 비싼 비용이 드는 소프트웨어로 인해 소프트웨어 공학은 cost-effective 즉, 가격대 성능비를 추구한다. 이..

윈도우 UserAssist를 통한 파일실행 흔적 분석

Windows 파일 실행 흔적 분석이다. PC점검 과정 중에서 V3 등의 AV에서 악성파일 탐지내역을 확인했다면, 해당 파일의 실행흔적을 분석할 필요가 있다. 여러가지 방법들이 있지만 그 중 몇가지를 알아본다. UserAssist 를 통한 실행흔적 분석 UserAssist 란, 레지스트리 키의 일종이다. 이 레지스트리 키에는 최근에 실행한 프로그램의 목록, 마지막 실행날짜, 실행 횟수 등이 기록되어 있다. HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer \UserAssist\ 경로는 위와 같다. (USER) 부분은 확인하고자 하는 계정의 SID이다. (SID는 #wmic useraccount name, sid 로 확인이 가능하다. 다른방법도 ..

NTFS (New Technology File System)

파일시스템 자체에 대한 설명은 FAT 파일시스템 알아보면서 언급한 부분이니까 NTFS에선 따로 설명하지 않겠습니당. 일단 NTFS를 디테일하게 알아보기 전에.. NTFS 이게 무엇인지, 어떤 특징을 갖고 있는지 간단하게 작성할 거예요. 1. NTFS 소개 New Technology File System의 약자로, Microsoft에서 만든 Windows용 파일시스템이다. NTFS는 최초에 서버용 파일시스템으로 등장했다. FAT 파일시스템이 용량의 한계가 있어서 대용량 서버 운영체제(e.g. Windows NT 계열)에 적합하지 않았기 때문이다. 처음 나왔을 때는 다양한 기능, 뛰어난 확장성, 대용량장치 지원 등으로 인해 획기적인 파일시스템으로 평가받았다.(받았다! 과거형이다.) 어쨋든 대부분의 Windo..

FAT (File Allocation Table) 32

FAT16에 대해 알아봤으니, 이제 마지막으로 FAT32 파일시스템에 대해 알아보고 NTFS로 넘어가야겠다. (exFAT도 있지만.. 이건 추후에 다룰게요.) FAT32은 FAT12, FAT16 과 구조가 좀 다르다. (뭐 사실 달라봐야 거기서 거기이긴 함;;) FAT32 내용을 작성하면서 FAT16과 동일한 부분은 간단하게 언급하고.. 그 외 부분에 대해 상세히 기술하겠습니당~ 아 그리고 FAT16 구조분석 포스팅 2개를 다 보고 왔다는 가정하에 작성할 것이니 안보셨음 보고 오셈 먼저 전체적인 구조를 그림으로 살펴보자. 1. FAT32 전체 구조 FAT16과 비교하면, 비슷한 듯 다른 구조를 지니고 있다. 가장 두드러진 차이를 보이는 영역은 예약된 영역인데, 기존에 CPU Jump ~ Signature..

FAT (File Allocation Table) 16

FAT(File Allocation Table)란 무엇인가 FAT 파일시스템은 1976년 MS에서 개발한 파일시스템이다. 빌 게이츠가 플로피디스크를 관리하기 위해 처음 고안하였는데 이것이 FAT의 시초이다. 이 때만 해도 FAT이 파일시스템으로써의 기능을 하진 않았고, 1980년대에 MS-DOS가 나오면서 운영체제에 탑재되어 FAT12 라는 이름으로 파일시스템의 기능을 하게 된다. 그 이후에 HDD의 사용이 점점 증가하자 MS-DOS 4.0 버전에 처음으로 FAT16 개념이 등장한다. 그러나 2GB가 넘는 HDD를 사용하고자 한다면 어쩔 수 없이 파티션을 나누어야 했다. 그래서 1995년 Windows 95 에서 처음으로 FAT32 가 등장한다. 용량의 한계 때문에 어거지(?)로 계속 확장시키다가.. 이..

파일시스템(File System) 이란 무엇인가

# 파일시스템의 개념 파일시스템 이란, 파일의 이름을 정하고 저장, 검색을 위해서 논리적으로 어디에 위치 시켜야 하는지에 대한 방법을 구성한 시스템이다. 저장 매체의 공간이 증가 할수록 보관하는 파일의 수 또한 점점 증가하게 되어 별도의 관리 시스템이 필요하게 되었다. 그래서 개발된 것이 파일시스템 널부려져 있는 문서들을 캐비넷에 저장하고 해당 문서의 제목 첫글자를 테그로 사용해 검색이 가능하도록 하는 것과 같은 맥락이다. 파일시스템 종류에는 FAT16, FAT32, NTFS, ext2, ext3, ext4, HFS+ 등등 굉장히 다양하다. 파일시스템에 대해서 왜 알아야 하는 걸까? 디지털 포렌식에서 디스크 분석은 반드시 필요한 부분이다. 일측에서는 디스크 포렌식 = 디지털 포렌식 이라고 인식하는 경우도..

VBR (Volume Boot Record)

VBR(Volume Boot Record), BR (Boot Record) 다양한 이름으로 쓰이는 VBR에 대해서 알아봅시다. VBR, BR, 파티션 부트 레코드, 부트 섹터 등의 이름으로 불리는데... 이들 중, Boot Sector(부트 섹터)는 구별을 좀 해야한다. 볼륨의 가장 첫번째 1개의 섹터는 반드시 부트 섹터가 오게 되어 있는데, VBR의 크기가 1섹터이면 부트섹터=VBR이라고 할 수 있다. 하지만 VBR의 크기가 1섹터보다 큰 경우, 부트섹터는 VBR에 종속된다고 보아야 한다. 1섹터는 부트 섹터이고, 그 뒷부분은 VBR 이지만 부트섹터는 아니니깐, 결론은 (부트섹터 ⊂ VBR) MBR 영역의 부트코드에서.. 마지막 루틴이 "부팅 가능한 파티션의 첫번째 섹터를 메모리 0x0000:7C00에..

GPT(GUID Partition Table) 디스크 _내용보강 예정

MBR 디스크에 이어 GPT 디스크에 대해 알아보자. GPT 디스크는 MBR 처럼 BIOS 와는 동작하지 않는다. EFI(현재는 UEFI, 통합 EFI) 인터페이스와 함께 동작함. 인텔에서 BIOS 에 이은 차세대 펌웨어로 EFI(Extensible Firmware Interface)를 내놓으면서 MBR -> GPT 로 변화하는 추세이다. 기본 골격은 BIOS - MBR / UEFI - GPT 인데.. 여기선 되고 저기선 안되고 또 이럴 땐 되고 저럴땐 안되고... 케이스가 너무 많아 모두 정리할 필욘 없을 것 같다. 대신 어떤 디스크를 분석할 때, 이것이 GPT 파티션으로 돼있는가, MBR 파티션으로 돼있는가 그리고 BIOS 기반이냐 UEFI 기반이냐, 인지하면 될듯 하다. 참고로 Windows 운영체..

슬랙 공간 (Slack Space Area)

'슬랙 공간' 이라는 단어는 많이 들어봐서 익숙하긴 하지만 정확하게 의미를 모르는 경우가 많다. 한마리도 정의하자면, 논리 데이터와 물리적인 저장공간의 간극 이라고 볼 수 있다. 슬랙 공간은 총 4가지로 나뉘는데, 램 슬랙(RAM Slack), 드라이브 슬랙(Drive Slack), 볼륨 슬랙(Volume Slack), 파일시스템 슬랙(File System Slack) 으로 종류가 나뉜다. - 램 슬랙 (RAM Slack) 메모리(RAM)에 저장된 데이터가 저장매체(디스크)에 기록될 때 발생되는 낭비 공간이다. 메모리에 있는 데이터가 저장될 때 512 byte 즉, 1섹터 단위로 저장되기 때문에.. 남는 공간은 0x00 으로 채워진다. Windows 95 이전 운영체제에서는 남는 공간에 랜덤데이터를 채워..

EBR(Extended Boot Record)

MBR 디스크가 최대 4개의 파티션 테이블밖에 못가지는 한계점이 있다는 걸 알아보았다. 그럼 파티션을 5개 이상 쪼개고 싶을 땐 어떻게 해야되나.. 그래서 나온 개념이 EBR(Extended Boot Record)이다. 간단하게 말해, 하나의 파티션 테이블을 확장 파티션 테이블로 사용하여 추가적으로 파티션을 추가할 수 있다는 말. 기존에 MBR에 속한 파티션은 주 파티션(Primary Partition)이고 이 중 하나가 EBR 영역의 주소를 담고 있다. 원래 VBR로 점프해야될 녀석이 EBR로 점프한다. (VBR은 다음에 설명) "테이블 엔트리 (Table Entry)" 라는 놈은 해당 영역의 주소를 담고 있으며, 부팅 과정 진행 시에 주소를 참조하여 거길 가르킨다. 여기서 "테이블 엔트리"를 한번 더..

반응형