JPG 이미지 파일을 가지고
몇가지 포렌식 테스트를 하기 위해
먼저, C#으로 32(pixel) × 32(pixel)의 JPG 파일을 만들도록 한다.
0,0 픽셀부터 32,32 픽셀까지 픽셀의 데이터값이 순차적으로
증가되는 형태로 만든다.
Code는 C#이며, 코드는 아래에 첨부한다.
단, 코드를 Copy & Paste하기 전에 nuget에서 System.Drawing.Common을 설치하기 위해
이 패키지를 사전에 설치해주도록 한다.
각 패키지는 해당 소유자에 의해 사용이 허가되었습니다. NuGet은 타사 패키지에 대해 책임을 지지 않으며 라이선스를 부여하지도 않습니다. 일부 패키지에는 추가 라이선스에 의해 관리되는 종속성이 포함되어 있을 수 있습니다. 패키지 소스(피드) URL로 이동하여 종속성을 확인하십시오.
패키지 관리자 콘솔 호스트 버전 6.7.0.127
사용 가능한 모든 NuGet 명령을 보려면 'get-help NuGet'을 입력하십시오.
PM> Install-Package Systehttp://m.Drawing.Common -Version 7.0.0
C:\Users\sampl\source\repos\ConsoleApp2\ConsoleApp2.csproj의 패키지를 복원하는 중...
GET https://api.nuget.org/v3-flatcontainer/system.drawing.common/index.json
OK https://api.nuget.org/v3-flatcontainer/system.drawing.common/index.json 633밀리초
GET https://api.nuget.org/v3-flatcontainer/system.drawing.common/7.0.0/system.drawing.common.7.0.0.nupkg
OK https://api.nuget.org/v3-flatcontainer/system.drawing.common/7.0.0/system.drawing.common.7.0.0.nupkg 36밀리초
GET https://api.nuget.org/v3-flatcontainer/microsoft.win32.systemevents/index.json
OK https://api.nuget.org/v3-flatcontainer/microsoft.win32.systemevents/index.json 645밀리초
GET https://api.nuget.org/v3-flatcontainer/microsoft.win32.systemevents/7.0.0/microsoft.win32.systemevents.7.0.0.nupkg
OK https://api.nuget.org/v3-flatcontainer/microsoft.win32.systemevents/7.0.0/microsoft.win32.systemevents.7.0.0.nupkg 37밀리초
콘텐츠 해시 2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ==을(를) 사용하여 https://api.nuget.org/v3/index.json에서 Microsoft.Win32.SystemEvents 7.0.0을(를) 설치했습니다.
콘텐츠 해시 KIX+oBU38pxkKPxvLcLfIkOV5Ien8ReN78wro7OF5/erwcmortzeFx+iBswlh2Vz6gVne0khocQudGwaO1Ey6A==을(를) 사용하여 https://api.nuget.org/v3/index.json에서 Systehttp://m.Drawing.Common 7.0.0을(를) 설치했습니다.
NuGet 패키지 Systehttp://m.Drawing.Common 7.0.0을(를) 설치하고 있습니다.
자산 파일을 디스크에 쓰는 중입니다. 경로: C:\Users\sampl\source\repos\ConsoleApp2\obj\project.assets.json
C:\Users\sampl\source\repos\ConsoleApp2\ConsoleApp2.csproj을(를) 3.29초 동안 복원했습니다.
ConsoleApp2에 'Microsoft.Win32.SystemEvents 7.0.0'을(를) 설치했습니다.
ConsoleApp2에 'Systehttp://m.Drawing.Common 7.0.0'을(를) 설치했습니다.
Nuget 작업 실행 시간: 146밀리초
경과 시간: 00:00:03.4765250
PM>
설치가 끝나면 아래 코드를 복사해서 실행한다.
using System;
using System.Drawing;
using System.Drawing.Imaging;
class Program
{
static void Main()
{
int width = 32;
int height = 32;
using (Bitmap bitmap = new Bitmap(width, height))
{
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
// 순차적으로 RGB 값을 증가시켜 픽셀 설정
Color pixelColor = Color.FromArgb(x, y, 0);
bitmap.SetPixel(x, y, pixelColor);
}
}
// JPG 파일로 저장
bitmap.Save("output.jpg", ImageFormat.Jpeg);
Console.WriteLine("이미지가 생성되었습니다.");
}
}
}
실행하면 Output.jpg 파일이 생성된다.
(Ref. 나는 ConsoleApp2로 파일을 생성했다.)
생성된 Output.jpg 파일을 View로 보면 아래와 같다.
(민감하게 보지 않으면 Gray Color로만 보인다.)
32×32이므로 작게 보인다.
확대해서 다시 붙여보면 아래와 같다.
이미지 파일을 Hex Editor로 열어보면 아래와 같은 파일 구조가 나오는데.
이 구조에 대해서는 Next Chapter에서부터 구조를 천천히 분석해보도록 하자.
'디지털포렌식(Digital forensic) > 그림' 카테고리의 다른 글
[파일] full body detection code (0) | 2024.03.01 |
---|---|
JPG 파일 구조 분석 #1 (0) | 2023.11.14 |
[파일] 태영호 영사 사진에 숨겨진 '주소추적보고' (1) | 2023.09.09 |
[파일]퍼즐맞추기 암호, (1) | 2023.09.03 |
[파일] WaterMark 암호, Top Secret (2) | 2023.09.03 |