제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #1 - 이미징 작업
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #1 - 이미징 작업
2025.02.03본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다.해당 블로그에서는 총 6개의 분석 섹션으로 나눠 포스팅을 할 예정이다. 각각 섹션은 다음과 같다. 현재 세션은 굵은 글씨로 표시되어 있다.1. 이미징 작업2. 손상된 파티션 복구3. 파티션 목록4. 아티팩트 분석 1. 운영체제 분석 1.1. PC 정보 분석 1.2. PC 사용자 분석 1.3. 설치된 프로그램 분석 2. 웹 아티팩트 분석 2.1. Chrome 분석 2.2. Edge 분석 2.3. Firefox 분석 3. Email 분석 4. 메신저 분석 4.1. Tel..
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #0 - 대회 소개 및 분석 환경
제 10회 디지털 범인을 찾아라 - 문제 풀이 보고서 #0 - 대회 소개 및 분석 환경
2025.02.03본 글은 요청시 풀이 보고서가 내려갈 수 있으며,만약 저작권 등에 위반된다면, 지체없이 댓글 또는 pental@kakao.com 으로 연락주시길 바라겠습니다.2024년 디지털 범인을 찾아라 경진대회가 열렸다.한국포렌식학회(회장 김영대)와 한국저작권보호원은 올해로 10회를 맞이하는 ‘2024 디지털 범인을 찾아라 경진대회’를 공동으로 개최한다고 밝혔다.‘디지털 범인을 찾아라 경진대회’는 디지털 포렌식 기술을 활용하여 첨단범죄 수사 역량을 강화하고, 디지털 포렌식 분야의 발전을 도모하는 것을 목적으로 한다. 이번 경진대회는 주니어 부문과 시니어 부문으로 나뉘어 진행되며, 주니어 부문은 전국 대학생 이하 학생들을 대상으로, 시니어 부문은 일반인 및 대학원생 이상 전문가를 대상으로 한다.대회 접수는 2024년 ..
백준 2579 - 계단 오르기 (파이썬)
백준 2579 - 계단 오르기 (파이썬)
2025.02.03https://www.acmicpc.net/problem/2579전형적인 DP 문제이다..이 문제의 조건은 다음과 같다.1. 연속된 3개 계단을 모두 밟으면 안된다.2. 마지막 도착 계단은 반드시 밟아야한다.3. 계단은 한번에 한 계단 또는 두 계단씩 오를 수 있다.위 그림의 예제에서는 6개의 계단이 주어진다.S = 10, 20, 15, 25, 10, 201. 마지막 층인 20은 무조건 밟아햔다. 그럼 10을 밟게 되면 25는 못 밟으니까, 10을 버리고 25를 밟는게 최적2. 15를 밟게 되면 10, 20을 못밟으니까, 15를 버리고, 10, 20을 밟는게 이득3. 총 4개를 밟는 것이 최선, 총 75의 값을 가지게 된다.수열로써 값을 나타내면 다음과 같다.1. aN은 N번째, 최대 점수 (바로 전 ..
insightface를 이용한 DeepFake 간단 구현
insightface를 이용한 DeepFake 간단 구현
2025.02.01주의 ) 본 글을 이용하며, 본인이 아닌 다른 누군가를 DeepFake 및 합성하는 경우 법적 책임을 질수 있습니다. 본 글의 작성자는 책임지지 않습니다.BOB 프로젝트를 하면서 Deepfake를 연구하게 되었다. 단순히 소스코드 몇줄로, 사람의 얼굴을 딥페이크 할 수 있다니,, 무서운 세상이다.먼저 Insightface란 무엇인가?InsightFace는 최첨단 2D 및 3D 얼굴 분석을 위한 오픈 소스 딥러닝 라이브러리로, 주로 PyTorch와 MXNet을 기반으로 개발되었습니다. 이 라이브러리는 얼굴 인식, 얼굴 검출, 얼굴 정렬 등 다양한 얼굴 분석 작업을 효율적으로 수행할 수 있도록 설계되었습니다. 또한, ArcFace, SubCenter-ArcFace, VPL, Partial-FC와 같은 최신 ..
백준 11725 - 트리의 부모 찾기
백준 11725 - 트리의 부모 찾기
2025.02.01https://www.acmicpc.net/problem/11725 먼저 예제 1번을 바탕으로 문제를 이해하면, 71 66 33 54 12 44 7 (그리면서 풀면 더 쉽다..)2번 노드 -> 4번3번 노드 -> 6번4번 노드 -> 1번5번 노드 -> 3번6번 노드 -> 1번7번 노드 -> 4번1번부터 N번까지의 노드가 있다. 입력받은 인접한 두 노드를 트리로 완성하고, 각 노드의 부모가 누구인지 확인하는 문제이다.import syssys.setrecursionlimit(10**6)# input = sys.stdin.readline()N = int(input())adj = [[] for _ in range(N)] # 인접리스트for i in range(N - 1) : a, b = list(map(i..
백준 2606 - 바이러스
백준 2606 - 바이러스
2025.02.01https://www.acmicpc.net/problem/2606해당 문제는 그래프로도 풀어봤고, 새로운 풀이인 DFS로 풀이를 진행하였다.N = 컴퓨터의 수, M은 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수그 이후부턴, 한줄에 한쌍씩 네트워크 상에서 직접 연결되어 있는 컴퓨터의 번호 쌍이 주어진다.해당 문제에서 DFS를 적용한 이유는 다음과 같다."단순히 그래프로도 풀이를 할수 있지만, DFS 알고리즘을 사용하면 시간복잡도가 O(2M)이 된다.'먼저 N, M을 입력받고, adj 배열에 각각 컴퓨터를 연결시킨다.N = int(input())M = int(input())adj = [[] for i in range(N)]for _ in range(M) : a, b = list(map(int,..
카카오톡 포렌식 도구 개발 - Windows, iOS, Android, Mac 운영체제 카카오톡 디비 복호화
카카오톡 포렌식 도구 개발 - Windows, iOS, Android, Mac 운영체제 카카오톡 디비 복호화
2025.01.03오랜만에 블로그에 글을 작성하는것 같네요,,아마 전체적으로 만드는데 1년 정도 걸린것 같은데, 개발된 프로그램에 대해 살짝 소개해보려고 합니다.먼저 목적은 아직 상용 포렌식 도구에서 안드로이드, 윈도우, 아이폰, 맥북을 통합적으로 지원하는 도구를 확인하지 못했습니다.(혹시라도 알고 계시다면,, 댓글로 알려주세요)그래서 통합 플랫폼 카카오톡 디비 복호화 도구를 제작해 보는건 어떨까 싶어서 한번 간단하게 제작해본 프로그램입니다.일단 시연 영상먼저,,, 먼저 주요 기능은 다음과 같습니다.1. 윈도우 PC에서 물리 기기 / 논리 폴더 설정 등을 통해 카카오톡 데이터 복호화2. 안드로이드 기기 연결 및 즉시 복호화 / 또는 백업 파일로 카카오톡 데이터 복호화3. 아아폰 기기 연결 및 즉시 복호화 / 또는 백업 ..
카카오톡 PC 버전 포렌식: 민사·내부 감사 맞춤 분석 서비스 의뢰 받습니다
카카오톡 PC 버전 포렌식: 민사·내부 감사 맞춤 분석 서비스 의뢰 받습니다
2024.10.24안녕하세요, 디지털 포렌식 전문가 김도현입니다. 디지털 포렌식 분야에서 다년간의 경험을 쌓아온 저는 민사 사건이나 내부 감사와 같은 상황에서 신뢰할 수 있는 디지털 증거 분석을 제공합니다.디지털 시대가 발전하면서 다양한 플랫폼에서 이루어지는 소통과 활동이 중요한 증거 자료로 활용되고 있습니다. 그중에서도 특히 카카오톡은 대한민국을 비롯한 여러 국가에서 가장 인기 있는 메신저 플랫폼 중 하나로, 개인과 단체 간의 대화, 파일 전송, 사진 공유 등 다양한 디지털 정보가 담겨 있습니다. 이러한 카카오톡의 정보를 분석하는 작업을 포렌식이라고 하는데, 특히 카카오톡 PC 버전 포렌식은 법적, 수사적 목적으로 중요한 역할을 합니다.카카오톡 PC 버전 포렌식의 필요성카카오톡은 스마트폰 기반의 메신저로 잘 알려져 있지..
아이폰 1110 오류 해결 및 무한 부팅 증상 해결 + 데이터 복구 성공
아이폰 1110 오류 해결 및 무한 부팅 증상 해결 + 데이터 복구 성공
2024.10.24이 글은 실제 디지털 포렌식 요청을 받아 작업을 진행한 사례입니다. 해당 의뢰를 원하신다면 메일을 통해 연락 주시길 바랍니다. 최대한 합리적인 금액으로 복구 및 수리를 도와드리고 있습니다.분석 개요분석 목적: 의뢰인으로부터 아이폰 X 디지털 포렌식 의뢰 요청의뢰인이 원하는 항목: 사진, 동영상분석 일시: 2022-08-13 ~ 2022-08-15오류 진단: 아이폰 1110 오류, 용량 꽉참증거물을 안전하게 포장한 후 작업실로 가져와 전원을 인가하니 복구 보드가 발생하여, iOS 15.6 버전으로 업데이트를 진행했습니다. 그러나 업데이트 과정에서 1110 오류가 발생했으며, 이 오류는 널리 알려진 문제로 다양한 복구 방법이 있지만 성공 확률이 매우 낮다고 알려져 있습니다.오류 1110과 무한 부팅 문제오류..
iPhone 오류 1110: 문제 해결과 데이터 복구 여정
iPhone 오류 1110: 문제 해결과 데이터 복구 여정
2024.10.24최근에 iPhone 백업을 복원하려고 하던 중 악명 높은 iPhone 오류 1110에 직면했습니다. 이 오류는 익숙하지 않은 사람들에게는 악몽 같은 일이 될 수 있습니다. 이 블로그 게시물에서는 이 문제를 해결한 경험을 공유하고, 성공적으로 장치를 복원하는 데 도움이 된 유용한 단계와 팁을 제공하려고 합니다.iPhone 오류 1110이란?오류 1110은 보통 iPhone 백업을 복원하는 과정에서 저장 공간 부족과 관련이 있습니다. 이 오류는 iPhone이 업데이트나 복원 과정을 완료하지 못하게 하여 좌절감을 유발합니다. 주로 백업 데이터가 장치의 사용 가능한 내부 저장 공간을 초과할 때 발생합니다.초기의 어려움처음 오류를 만났을 때, 저는 이전 장치의 백업을 새 장치로 복원하려고 했습니다. 처음에는 모든..
디지털 포렌식 전문가 2급 - 실기 복원 문제 (18회)
디지털 포렌식 전문가 2급 - 실기 복원 문제 (18회)
2024.10.08해당 문제는 해당 회차 시험 후 복구로 만든 문제 및 풀이입니다. 만약 해당 글이 문제가 된다면 바로 글이 삭제 될 수 있습니다.만약 해당 글이 위반 사항에 해당하거나, 게시글 중단 요청이 필요하시다면, pental@kakao.com 으로 메일 부탁드리겠습니다.[분석도구]도구명버전용도FTK Imager4.5.0.3이미징 및 데이터 브라우징HxD2.5.0.0이미지 분석 및 복구NTFS Log Tracker1.71타임라인 분석KFolt1.6.33이미지 분석1. USB에 대한 사본 이미지를 생성하시오.이미징 하기전 논리적으로 쓰기 금지를 하기 위해 다음과 같이 진행한다.HKLM\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies 에서 WriteProtect의 ..
윈도우 커널 디버깅을 통해 메모장을 해킹 해보자! with WinDbg
윈도우 커널 디버깅을 통해 메모장을 해킹 해보자! with WinDbg
2024.07.11준비물VMware Workstation 17 Player + Windows 10 isoWinDbg + VirutalKD-Redux-2024.3끈기 + 열정 윈 10 부팅후, VirutalKD-Redux-2024.3 을 통해서 Guest에 붙여준다.해당 압축을 풀고 target64폴더를 Guest환경으로 옮겨준다. (VMware Tools 가 설치되어 있어야, Drag & Drop이 가능)실행 후 게스트를 재시작 하라는 메시지를 통해서 재시작을 진행할때, F8을 통해서 "드라이버 서명 적용 사용 안 함"으로 부팅을 해야 커널 디버깅이 가능하다.Host환경에 WinDbg에서는 자동으로 붙는것을 확인 할 수 있다. int 3이 나온다면 드라이버가 붙은것이다.이상태에서는 Guest 환경에서 사진은 다음과 같다...
[DreamHack] Format string bug
[DreamHack] Format string bug
2024.07.11pwndbg> disass mainDump of assembler code for function main: 0x0000000000001293 : endbr64 0x0000000000001297 : push rbp 0x0000000000001298 : mov rbp,rsp 0x000000000000129b : sub rsp,0x30 0x000000000000129f : mov rax,QWORD PTR fs:0x28 0x00000000000012a8 : mov QWORD PTR [rbp-0x8],rax 0x00000000000012ac : xor eax,eax 0x00000000000012ae : ..
[DreamHack] off_by_one_001
[DreamHack] off_by_one_001
2024.07.11#include #include #include #include void alarm_handler(){ puts("TIME OUT"); exit(-1);}void initialize(){ setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30);}void read_str(char *ptr, int size){ int len; len = read(0, ptr, size); printf("%d", len); ptr[len] = '\0';}void get_shell(){ system("/bin/sh");}int ma..
[DreamHack] cmd_center
[DreamHack] cmd_center
2024.07.11#include #include #include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0);}int main(){ char cmd_ip[256] = "ifconfig"; int dummy; char center_name[24]; init(); printf("Center name: "); read(0, center_name, 100); if( !strncmp(cmd_ip, "ifconfig", 8)) { system(cmd_ip); } else { printf("Something is wrong!\n"); } exit(0);}호호, 이것도 펑펑 취약점이 터지는 문제인데 내가 멍청해서 그런지 조금 해맸다.일단 cent..
[DreamHack] out_of_bound
[DreamHack] out_of_bound
2024.07.11#include #include #include #include #include char name[16];char *command[10] = { "cat", "ls", "id", "ps", "file ./oob"};void alarm_handler(){ puts("TIME OUT"); exit(-1);}void initialize(){ setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30);}int main(){ int idx; initialize(); printf("Admin name: ")..
아이폰 1110 오류 해결 / 아이폰 15Pro & 13Pro / 무한 부팅 증상 오류 해결
아이폰 1110 오류 해결 / 아이폰 15Pro & 13Pro / 무한 부팅 증상 오류 해결
2024.07.09아이폰 1110 오류 해결 및 무한 부팅 증상 해결 + 데이터 복구 성공이 글은, 실제 디지털 포렌식 요청을 받아 작업을 진행하였습니다. 해당 의뢰를 원하신다면 메일 또는 아래 연락처 통해 연락주시길 바라겠습니다.최대한의 합리적인 금액으로 복구 및 수리를 도와드리고 있습니다. 의뢰자 분꼐서는 뽁뽁이로 잘 감싸서 물건을 보내주셨습니다. 일단 먼저 증상을 확인 하는 작업을 진행했습니다.보내주신 물건 위쪽 상단에 액정 손상이 있어 의뢰자분에게 바로 연락을 드렸습니다. 다행히도 원래 부터 있던 필름 손상이라 하셔서 정말 다행이었습니다.!의뢰자 분께서는 15Pro 1TB 모델과 13Pro 1TB 모델, 총 2대의 아이폰을 발송해 주셨는데요, 외관상 손상은 없어보였으며, 물리적으로 1110오류가 발생하는 경우는 드..
[DreamHack] Return Address Overwrite
[DreamHack] Return Address Overwrite
2024.07.09난 포렌식 하는 사람인데 포너블을,,,,? 바이너리 파일을 다운로드 받아, C코드와 바이너리를 확인한다.// Name: rao.c// Compile: gcc -o rao rao.c -fno-stack-protector -no-pie#include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0);}void get_shell() { char *cmd = "/bin/sh"; char *args[] = {cmd, NULL}; execve(cmd, args, NULL);}int main() { char buf[0x28]; init(); printf("Input: "); scanf("%s", buf); return ..
[BOB 교육] 실무로 알아보는 개인정보 안전성 확보조치와 유출사고 대응 - 김두민 멘토님
[BOB 교육] 실무로 알아보는 개인정보 안전성 확보조치와 유출사고 대응 - 김두민 멘토님
2024.07.03이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[BOB 교육] 금융보안 인프라 - 이현정 멘토님
[BOB 교육] 금융보안 인프라 - 이현정 멘토님
2024.07.03이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.