section 2
디스크 이미징, 디스크 마운트, 메모리 덤프
[Digital Forensics Basics] 디지털 증거(디스크 이미징, 메모리 덤프, 해시함수)
[Digital Forensics Basics] 디지털 증거(디스크 이미징, 메모리 덤프, 해시함수)
1. 디스크 이미징디스크 이미징이란?:디지털 저장매체의 복제본인 디스크 이미지를 생성하는 과정=> 원본 디지털 저장매체에서 복제본인 디스크 이미지를 생성하는 과정 디지털 저장매체: 하드
amy06s.tistory.com
해당 강의 실습을 아래 글에서 완료
기초 도구 다운로드 및 설명
Hxd
everyting
7zip
sysinterals suite
ftk imager
autopsy
notepadd++
===============================
Volatility
Windows terminal
시스템 환경 변수 설정
Volatility Cridex

volatility -f <이미지> imageinfo: 메모리 덤프를 보고 운영체제 확인
Suggested Profile: 제시하는 것으로 가정

pslist: 프로세스의 리스트를 시간 순서대로 출력

pslist > pslist.log: pslist의 리스트 값들을 pslist.log 파일에 생성
Notepad++로 열어보기
PID: 프로세스 ID
PPID: 부모 프로세스 ID


psscan: 프로세스의 리스트를 숨김 프로세스를 포함하여 출력
pstree: PID와 PPID를 기반으로 구조화해서 프로세스의 리스트를 출력
psxview: pslist와 psscan을 한눈에 볼 수 있는 도구
*pslist: False이고 psscan:True인 경우 숨긴 프로세스일 가능성이 있음(모두 그런 건 아님)
smss: 윈도우 세션 관리자
winlogon: 마이크로소프트의 필수 시스템 프로세스
wuaucit: 윈도우 업데이트 확인 및 다운로드
explorer: 파일 탐색기
reader_sl: Adobe의 소프트웨어 구성 요소
adobe => PDF => PDF 문서를 통한 악성 코드가 매우 많음
=> 검색을 통해 안전한지 알아보기
*이름을 똑같이 쓰는 악성코드들도 존재(svchost로 많이 위장)


cmdscan: 프로세스가 실행될 때 인자값
=> 경로 말고 얻은 정보가 없음
consoles
cmdline
=> consoles, cmdline는 비어있음

filescan: 파일 내에 존재하는 모든 파일에 대한 정보
Crtl +F: 찾기

첫번째 ofset값 복사해서 사용


명령어를 통해 reader_sl.exe 추출 후 virustotal에 넣어 검사

61개의 백신 중에 7개가 의심 => 좀 애매함

connections: 연결된 TCP(일반 통신)에 대해 출력

PID가 1484라는 프로세스에서 Local Address와 Remote Address가 통신 중

1484인 reader_sl.exe가 의심스러움
=> explorer(파일탐색기)에도 1484가 있지만 크기가 커서 reader_sl부터

명령어로 덤프 파일 생성

시스템 환경 변수 설정을 통해 strings사용 가능하게 설정

strings_1640.log에서 41.168.5.140 주소를 검색하기
=> 이때 strings.exe 처음 사용이라 약관이 내용으로 나와서 -accepteula를 넣어서 다시 로그를 생성함

=> IP 주소들이 나옴 => 해커의 웹사이트 주소로 추정
예상 시나리오
악성 PDF 문서를 통해 reader_sl.exe가 악성 PDF문서를 읽음
=> 취약점으로 인해 해당 URL로 접속

인터넷 접속 흔적
=> bank가 많음 => 은행 관련 피싱

procdump: 프로세스의 exe 파일 추출
windows 보안에 걸리면 실시간 보호를 끄고 다시 추출해야 함
추출한 exe 파일을 virustotal 사이트에 넣으면 악성파일인 것을 알 수 있음
CTF-d, GrrCon 2015 풀이

imageinfo, Suggested Profile 확인
pslist, psscan, pstree, psxview 로그 생성
filescan, connections, sockets(응답받기를 기다리는 모든 프로토콜에 대한 소켓 정보) 도 생성
=> 이 둘은 Windows xp이면 netscan을 쓰면 됨
cmdline, cmdscan(콘솔에 입력한 값들을 실제로 볼 수 있음), consoles(콘솔에서 입력&출력 값을 실제로 볼 수 있음) 로그 생성
*cmdscan과 consoles는 검색방법이 달라서 결과가 다를 수 있음
처음 볼 때 pstree가 가장 좋음(의심가는 것 찾기)


Teamviewer: 팀 회의
mstsc: 원격 데스크톱
OUTLOOK: 메일 관련
=> 의심스러움: TeamViewer, cmd, mstsc, OUTLOOK, explorer-cmd

=> TeamViewer의 PID 4064로 메모리 덤프 생성
wce.exe와 w.tmp 추출하기


같은 방법으로 w.tmp도 추출

=> w.tmp는 열어서 보면 됨

wce.exe virustotal에 넣어보기

=> 악성코드
해커 IP로 의심스러움: 10.1.1.21, 180.76.254.120
1. OUTLOOK //메일 => 메모리덤프 => 메일 원본
덤프파일 3169.dmp 생성 후 strings 사용
보통 http://로 검색(URL) => 1000개 넘음
.exe, .pdf 등으로 검색
.exe로 검색 중
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr">Hello Mr. Wellick,<div><br></div><div>In order to provide the best service, in the most secure manner, AllSafe has recently updated our remote VPN software.
Please download the update from the link below.</div><div><br></div>
<div><a href="http://180.76.254.120/AnyConnectInstaller.exe">http://180.76.254.120/AnyConnectInstaller.exe</a></div><div><br></div>
<div>If you have any questions please don't hesitate to contact IT support.</div><div><br></div>
<div>Thanks and have a great day!</div>
<div>AllSafe IT Support Desk</div></div>
라는 내용의 html이 있음
내용의 AnyConnectInstaller를 검색해 다운로드 경로의 exe 추출해 virustotal에 넣기

2. tv_w32.exe
filescan에서 tv_w32를 찾아 exe파일로 덤프 파일 추출
virustotal에 넣어봤는데 아무것도 없음 (깨끗)
3. iexplorer
IP 2996으로 메모리 덤프 추출
strings사용
180.76.254.120 검색하니까 다운로드 흔적만 보임

OUTLOOK메일 => AnyConnectInstaller.exe => wce.exe, w.tmp(관리자 패스워드) => mstsc.exe
악성 exe => 리버싱
Volatility 정리
Volatility
메모리 포렌식 도구, 오픈소스, CLI 인터페이스
버전3까지 있으나 주로 2사용
Volatility 명령어 정리
운영체제 식별
imageinfo: 메모리 덤프의 운영체제 식별
프로세스 검색
pslist: 시간 순서대로 보여줌
psscan: 숨겨진 프로세스 출력 가능
pstree: PID, PPID 기준으로 구조화하여 보여줌
psxview: pslist, psscan을 포함한 도구들의 결과를 한눈에 볼 수 있음
네트워크 분석
netscan
- Windows7 이상
- TCP, UDP / IPv4, IPv6에서 통신하는 모든 것 조회
- Listening, Established, Closed
Connections
- Windows 7 미만
- 현재 연결된 TCP 통신에 대한 정보
Sockets
- Windows 7 미만
- TCP, UDP 포함한 모든 프로토콜
- 현재 Listening 상태의 모든 소켓 출력
CMD 분석
cmdscan, consoles: 콘솔에 입력한 값들 출력 (consoles: 입&출력값)
cmdline: 프로세스가 실행될 때의 인자값 확인 가능
파일 분석 및 덤프
filescan: 메모리 내에 존재하는 모든 파일들의 리스트 출력
dumpfiles: 파일을 덤프. 옵션으로 메모리 주소, 프로세스 줄 수 있음
프로세스 세부 분석
memdump: 특정 프로세스의 메모리 영역을 덤프 => strings 사용
procdump: 프로세스의 실행 파일 추출
악성 프로그램 식별
virustotal 주로 사용
Windows Defender이 정확한 편
Volatility Cridex 정리 & 추가 분석
운영체제 식별: WinXPSP2x86
프로세스 검색: reader_sl.exe(1640)이 수상
네트워크 분석
- 공격자 IP: 41.168.5.140:8080
- PID: 1484(explorer.exe)
CMD 분석: 결과x
파일 분석 및 덤프
- filescan 결과에서 read_sl.exe 추출
- dumpfiles로 추출 => virustotal로 검색 => 애매함
프로세스 세부 분석
procdump로 read_sl.exe 실행 파일 추출
=> virustotal 검색 => 악성
memdump로 read_sl.exe 메모리 영역 덤프
=> strings 명령어 => 수상한 URL 발견, 은행과 관련된 문자열들
분석결과
침입경로: 확인 불가
악성 행위
- 악성 프로세스 reader_sl.exe(1640) 식별
- 외부 통신 IP 41.168.5:8080 발견
- 프로세스 덤프 후 virustotal 검색 결과 => 악성 프로세스
- 프로세스 메모리 덤프 내부에서 수상한 단서 확보
+추가 분석 가능한 부분
- explorer.exe 프로세스 분석
- IP 추적 => Whois 조회
- 레지스트리 추출: 자동 실행 관련 분석
- explorer.exe 메모리 덤프 내부 웹페이지 소스코드(html) 분석
CTF-D, GrrCon 2015 정리 & 추가 분석
운영체제 식별: Win7SP1X86
프로세스 검색
- TeamViewer 관련된 프로세스(tv_w32.exe)
- explorer 하위 프로세스(mstsc.exe, OUTLOOK.exe)
- iexplorer.exe, cmd.exe
네트워크 분석
- 공격자 IP: 180.76.254.120:22
- PID: 2996(iexplorer.exe)
CMD 분석
- cmdline: tv_w.32 수상 => 정상 프로세스
- cmdscan, consoles: 악성 실행 파일 발견(wce.exe)
파일 분석
- wce.exe: 관리자 계정을 포함해 패스워드를 가져오는 실행파일
- w.tmp: wce.exe의 실행결과 출력 파일
- AnyConnectInstaller.exe: Outlook 메일로부터 출력된 실행파일
프로세스 세부 분석
- Outlook.exe의 메모리 덤프로부터 피싱 메일 발견, AnyConnectInstaller.exe의 URL 확보
- iexplorer.exe 메모리 덤프로부터 공격 흔적 발견
- TeamViewer 관련 프로세스는 정상 프로세스로 판단됨
분석 결과
침입 경로: Outlook 피싱 메일로 AnyConnectInstaller.exe 다운로드 유도
악성행위
- AnyConnectInstaller.exe 실행파일 발견
- iexplorer.exe 내부에서 공격 흔적 발견
- wce.exe로 관리자 패스워드를 가져오고 w.tmp 파일로 저장
+추가 분석 가능한 부분
- iexplorer.exe 추가 분석: -procdump로 실행파일 살펴보기
- Outlook 메모리 덤프로부터 공격자 이메일, 피해자 이메일 찾아보기
- 공격자가 사용한 도구들과 구체적 행위 파악(hint: consoles.log 살펴보기)
- 공격자의 추가 공격 행위 파악(hint: mstsc, gideon 살펴보기)
메모리 포렌식
1. 물리 메모리 이해
메모리 포렌식 목적
- 프로세스의 행위 탐지
- 네트워크 연결 정보
- 사용자 행위
- 복호화, 언패킹, 디코딩된 데이터
- 패스워드와 암호 키 획득
메모리 포렌식 지속성

메모리 포렌식 대상

- 물리 메모리
- 페이지 파일
- 하이네이션 파일
물리 메모리 확인 방법

: 시스템 등록 정보를 통해 확인 가능
물리 주소 확장
- 운영체제 버전, 하드웨어 플랫폼, 접근 방식에 따라 접근 가능한 메모리 크기

물리 주소 확장이란?
- 물리적 주소 지정 비트를 32비트에서 36비트로 확장
- 접근 가능한 물리 주소 공간 증가
주소 윈도잉 확장(AWE)
- 확장된 메모리 접근 API
- 물리 주소 확장(PAE)에 의해 확장된 메모리에 접근하기 위한 API
- Lock pages in memory
- 사용자 응용프로그램인 경우, 가상 메모리를 페이징하지 않도록 "Lock pages in memory" 설정되어야 함

데이터 실행 방지
데이터 실행 방지
- 스택, 데이터 세그먼트, 힙과 같은 메모리 페이지를 실행 불가능하도록 설정
- 버퍼 오버플로우 등의 공격 방지

하드웨어 방지
- CPU의 NX/XD 비트로 설정하며 OS와 사용자 애플리케이션 모두에서 사용 가능
NX/XD 비트를 지원하는 CPU에서만 동작 - PAE가 동작할 때만 설정 가능 (NX/XD 비트를 사용할 경우 자동으로 PAE로 부팅)
소프트웨어 강제
- 비주얼 스튜디오의 /SafeSEH 링커 옵션
주소 공간 배치 랜덤화(ASLR)
- 실행 오브젝트의 가상 주소 공간을 실행마다 랜덤
가상 메모리 소개
- Win32 시스템의 모든 프로세스는 4GB의 연속된 주소 공간 사용
- 사용자 영역(0x00000000 ~ 0x7FFFFFFF)
- 커널 영역(0x80000000 ~ 0xFFFFFFFF)
- 가상 메모리 기법으로 대용량 메모리를 사용하는 프로그램 수행 가능

x86 주소 공간


가상 주소 => 물리 주소 변환

프로세스 생성 과정
- 실행 파일 실행
- 서브시스템(POSIX, MS-DOS, Win32 등) 확인
- EPROCESS, KPROCESS, PEB, 초기 주소 공간 설정
- 기본 스레드 생성
- 윈도우 하위 시스템에 새로 생성된 프로세스와 스레드 알림
- 기본 스레드에 의해 프로세스 환경 설정과 스레드 자원 할당
- 새로운 프로세스와 스레드의 컨텍스트 내부 주소 공간 초기화 완료
2. 물리 메모리 덤프
하드웨어를 이용한 덤프
PCI 장치를 이용한 덤프 - Tribble
PCI 장치를 이용해 물리 메모리를 외부 저장장치로 덤프
추가적인 하드웨어/소프트웨어의 설치 없이 무결성 최대한 보장
사전에 미리 설치되어 있어야 함
FireWire를 이용한 메모리 덤프 – FireWire Attack
• FireWire 인터페이스를 이용해 DMA에 접근하여 메모리 덤프
• 윈도우, 리눅스, 맥 OS에서 가능
장점
악성 프로그램에 영향을 받지 않음
빠른 메모리 덤프
무결성 최소화
단점
간혹 시스템 크래시 발생
안정성 문제로 현재 연구로만 진행
소프트웨어를 이용한 덤프
- Win(32|64)dd: 기능제한된 커뮤니티 버전은 무료 / 윈도우7까지 덤프 지원
- Memorize: 맨디언트의 무료 메모리 이미징/분석 도구 / 윈도우8까지 지원
- FD(FastDump)Pro: 무료 버전은 64비트와 일부 운영체제 미지원 / 매우 빠른 이미징 및 대용량 이미징 가능
크래시 덤프
시스템 크래시 특징
• “[시스템] ➔ [고급] ➔ [시작 및 복구] ➔ [설정]”에서 크래시 덤프 설정
• 작은 메모리 덤프, 커널 메모리 덤프, 전체 메모리 덤프
• 윈도우 7에서 전체 메모리 덤프가 사라짐
• BSOD(Blue Screen of Death) 발생 시 자동 생성
• WinDbg, Kernel Memory Space Analyzer 등을 통해 디버깅 가능
• 물리메모리에 가장 최소한의 영향을 미치는 방법
• 윈도우만 지원하며 수동 크래시를 발생시키려면 시스템 재부팅 필요
절전모드 덤프
절전모드 특징
• 절전 모드(Hibernation)로 진입 시 메모리를 압축하여 C:\hiberfil.sys 파일로 저장
• 부팅 과정에서 NTLDR에 의해 메모리로 로드 된 후 이전 상태로 복귀
• 노트북과 같은 휴대용 시스템에서는 절전모드가 기본적으로 설정
• 조사 시 강제로 절전모드 설정 후 실행
• 추가적인 프로그램이나 장비 불필요
• 전체 메모리 영역의 덤프가 아닌 사용 중인 영역만 덤프
최근 메모리 덤프 방식
• 하드웨어 방식은 미리 설치되어 있어야 하거나 안정성 문제
• 절전 모드, 크래시 덤프는 제한된 환경에서만 동작
• 따라서, 주로 소프트웨어 방식을 이용해 메모리 덤프
고려 사항
• 덤프한 메모리는 외장저장장치에 저장
• 외장저장장치 인터페이스에 따라 수집 속도 차이
3. 물리 메모리 분석
초기 메모리 분석 방법
문자열 추출
- 특정 패턴의 문자열 검색
- 이메일, 계정, 비밀번호, 메신저 등
파일 카빙
- 그래픽 이미지, HTML, 레지스트리 등 파일 카빙 기법으로 파일 획득
오브젝트 검색
물리 메모리상의 오브젝트 탐색 방법
- 리스트 워킹
- 패턴 매칭
리스트 워킹
EPROCESS 프로세스 이름을 이용한 프로세스 탐색 기법
EPROCESS 구조체 내부의 프로세스 이름을 검색해 주요 프로세스 확인(system, smss 등)
이름이 확인되면 해당 위치를 기준으로 앞뒤에 EPROCESS 구조가 존재하는지 검증
EPROCESS 구조가 존재하면 ActiveProcessLinks를 이용해 프로세스 탐색
KPCR(Kernal Processor Control Region)을 이용한 프로세스 탐색 기법
KPCR은 XP, 2003, Vista에서 가상 주소 0xFFDFF000 위치, 확장 버전인 KPCRB는 0xFFDFF120
KPCR에서는 EPORCESS의 KTHREAD 구조체 포인터 값이 저장됨
KTHREAD를 이용해 EPROCESS의 위치 확인 가능
DKOM과 같은 프로세스 은닉 기법 탐지 불가능!
패턴 매칭
- 프로세서 구조체의 패턴을 통해 메모리 영역 전체 검색
- 은닉 프로세스라도 동일한 프로세스 구조체를 가짐
매칭 기준 ex)
- 프로세스와 스레드는 오브젝트로 존재, 모든 오브젝트는 OBJECT_HEADER를 포함
- 프로세스와 스레드는 동기화 필요, 하부 구조체로 DISPATCHER_HEADER를 포함
- 프로세스와 스레드는 중요 오브젝트, page pool이 아닌 non-paged pool에 기록
물리 메모리 분석 도구

비교


Volatility 사용법
- 이미지 프로파일 확인
$> vol.py -f [image] imageinfo
- 플러그인 확인
$> vol.py --info
- 플러그인 옵션
$> vol.py [plugin --help]
- 외부 플러그인 로드
$> vol.py -plugins=[path] [plugin]
- 프로세스 목록
$> vol.py -f [image] --profile=[profile] plist
$> vol.py -f [image] --profile=[profile] pscan
$> vol.py -f [image] --profile=[profile] psxview
$> vol.py -f [image] --profile=[profile] pstree
- 프로세스 관련 정보
$> vol.py -f [image] --profile=[profile] dlllist
$> vol.py -f [image] --profile=[profile] vadinfo
$> vol.py -f [image] --profile=[profile] handles
$> vol.py -f [image] --profile=[profile] privs
$> vol.py -f [image] --profile=[profile] threads
- PE 관련 정보 추출
$> vol.py -f [image] --profile=[profile] -D [dir] moddump
$> vol.py -f [image] --profile=[profile] -D [dir] procexedump
$> vol.py -f [image] --profile=[profile] -D [dir] procmemdump
$> vol.py -f [image] --profile=[profile] -D [dir] dlldump
- 인젝션 코드 확인
$> vol.py -f [image] --profile=[profile] -D [dir] malfind
$> vol.py -f [image] --profile=[profile] ldrmodules
$> vol.py -f [image] --profile=[profile] impscan
- 네트워크 관련 정보
$> vol.py -f [image] --profile=[XP/2003 profile] connections
$> vol.py -f [image] --profile=[XP/2003 profile] sockets
$> vol.py -f [image] --profile=[XP/2003 profile] connscan
$> vol.py -f [image] --profile=[Vista/2008/7 profile] netscan
- 로그 확인
$> vol.py -f [image] --profile=[profile] cmdscan
$> vol.py -f [image] --profile=[profile] consoles
$> vol.py -f [image] --profile=[profile] svscan
- SID 확인
$> vol.py -f [image] --profile=[profile] getsids
- 환경 변수
$> vol.py -f [image] --profile=[profile] envars
- 커널 메모리
$> vol.py -f [image] --profile=[profile] modules
$> vol.py -f [image] --profile=[profile] modscan
$> vol.py -f [image] --profile=[profile] timers
$> vol.py -f [image] --profile=[profile] callbacks
$> vol.py -f [image] --profile=[profile] ssdt
$> vol.py -f [image] --profile=[profile] idt
$> vol.py -f [image] --profile=[profile] gdt
$> vol.py -f [image] --profile=[profile] devicetree
- 커널 오브젝트
$> vol.py -f [image] --profile=[profile] driverscan
$> vol.py -f [image] --profile=[profile] muutantscan
$> vol.py -f [image] --profile=[profile] filescan
$> vol.py -f [image] --profile=[profile] symlinkscan
- 레지스트리 관련
$> vol.py -f [image] --profile=[profile] hivelist
$> vol.py -f [image] --profile=[profile] printkey
$> vol.py -f [image] --profile=[profile] userassist
$> vol.py -f [image] --profile=[profile] shellbags
$> vol.py -f [image] --profile=[profile] shimcache
- 패스워드 관련
$> vol.py -f [image] --profile=[profile] lsadump
$> vol.py -f [image] --profile=[profile] hashdump
$> vol.py -f [image] --profile=[profile] dumpcerts
- YARA 관련
$> vol.py -f [image] --profile=[profile] yarascan
--yara-file= /path/to/rules/yar
$> vol.py -f [image] --profile=[profile] yarascan -D [dump file]
--yara-rules = "simpleStringToFind"
4. 챌린지

상황: X 회사가 최근 발생한 사고 때문에 당신에게 포렌식 조사를 의뢰했습니다. 내용: 한 직원이 동료가 보낸 이메일의 링크를 눌러 PDF 파일을 열었습니다. 그 당시에는 아무 문제 없어 보였지만, 최근 그 직원의 은행 계좌에서 이상한 거래가 발견되었습니다. 의뢰 사항: 회사는 감염 의심 시점의 가상 머신 메모리 이미지를 확보했습니다. 이 메모리를 분석해서 의심스러운 활동들을 보고해 주세요.

- 실행 중이었던 프로세스 목록을 뽑으세요. 최초 침투(Exploit)에 사용된 프로세스는 무엇인가요?
- 감염 당시 열려있던 소켓(네트워크 연결) 목록을 뽑으세요. 수상한 연결이 있는 프로세스는?
- 의심되는 프로세스의 메모리 안에 수상한 URL 주소가 있나요?
- 은행 계좌 문제와 관련된 URL을 포함하는 다른 프로세스가 또 있나요? 있다면 프로세스 이름과 URL은?
- 최초 프로세스에서 파일을 추출할 수 있었나요? 어떻게 추출했나요?
- 만약 파일을 추출했다면, 어떤 기술을 써서 침투(Exploit)를 수행했나요?
- 로딩된 수상한 파일들을 나열하세요. 직원의 은행 계좌에 영향을 준 실제 '페이로드(공격 코드)'는 무엇인가요?
- 추출한 수상한 파일을 백신(Anti-virus)에 돌려봤을 때 결과가 어떤가요?
- 이 공격 코드와 관련된 레지스트리 기록이 있나요?
- 다른 프로세스에 코드를 삽입(Inject)하기 위해 어떤 기술이 사용되었나요?

imageinfo로 메모리 덤프 보고 운영체제 확인
WinXPSP2x86 of WinXPSP3x86 사용

dlllist에서 xpsp2 가 들어간 것만 검색

피해자 PC에서 실행 중인 프로세스 목록을 나열하세요. 최초 침투(Initial Exploit)에 가장 책임이 있는 프로세스는 무엇인가?"
AcroRd32.exe: PDF를 여는 프로그램
문제에서 PDF를 여는 데 AcroRd32.exe를 활용
=> 1. AcroRd32.exe(PID: 1752)
'SWUFORCE > 인프런 강의' 카테고리의 다른 글
| section3 ~ 바로가기(.LNK) 개념 및 실습 & 바로가기 파일 포렌식(LNK Forensics) (0) | 2026.05.16 |
|---|---|
| section 3 ~ Windows Registry 실습 (0) | 2026.05.10 |
| 디지털 증거 획득 & 디지털 증거 수집 방안 (0) | 2026.05.05 |
| 부팅과 데이터 저장/전송 & 부팅 절차 (0) | 2026.03.28 |
| [인프런 강의] section 0, 1 & 디저털 포렌식 개요 (0) | 2026.03.21 |