[iOS Forensics] iPhone 연락쳐 포렌식
[iOS Forensics] iPhone 연락쳐 포렌식
2021.02.09오늘은 iPhone에 저장되어있는 연락쳐를 포렌식 해보도록 하겠습니다. 먼저 아이폰의 백업 파일을 추출해서 사용하겠습니다. 상황에 따라 본인에 맡게 사용하시면 될거 같습니다. 백업 파일 추출에 관해서 연락이 많은데, 이 부분에 대해서는 현재 아이폰 포렌식 도구를 만들고 있습니다. github.com/kim-do-hyeon/iphone-forensics kim-do-hyeon/iphone-forensics iPhone Forensics Tool. Contribute to kim-do-hyeon/iphone-forensics development by creating an account on GitHub. github.com 해당 도구를 사용하시면 추출이 가능합니다. 먼저 연락쳐가 저장되어 있는 데이터베이스..
[ios Forensics] 아이폰 카카오톡 포렌식 - 멀티프로필 분석하기
[ios Forensics] 아이폰 카카오톡 포렌식 - 멀티프로필 분석하기
2021.02.04오랜만에 블로그에 포스팅을 하게 되었습니다 :) 너무 오랜만이네요 ㅎㅎ 오늘은 카카오톡 멀티 프로필에 대해서 알아보려고 합니다. 먼저 카카오톡 멀티 프로필에 대해서 설명하겠습니다. 카카오가 1월 28일 대화 상대별로 프로필을 다르게 설정할 수 있는 '멀티프로필'을 출시했습니다. 카카오톡 멀티프로필 기능은 기본 카카오톡 프로필 외에 복수의 프로필을 추가할 수 있는 기능으로, 친구별로 표시되는 프로필을 다르게 설정할 수 있습니다. 현재 이 서비스는 카카오톡 지갑 이용자에 한해서만 베타 버전이 제공됩니다. 그럼 이 멀티 프로필은 어떻게 작동이 되는가? 먼저 이렇게 A와 B가 카카오톡을 주고 받고 있습니다. 이때 A의 userid값은 12082****, B의 userid값은 32927**** 입니다. 그런데 B..
[디지털포렌식전문가2급] 제 3장 - 디지털 기기 및 저장매체 기출문제 변형 #2
[디지털포렌식전문가2급] 제 3장 - 디지털 기기 및 저장매체 기출문제 변형 #2
2020.10.29컴퓨터 구조 ) 1편 : blog.system32.kr/233 2편 : blog.system32.kr/234 디지털 데이터의 표현 ) 1편 : blog.system32.kr/235 디지털 기기 및 저장 매체 ) 1편 : blog.system32.kr/236 2편 : blog.system32.kr/237 11번. SDRAM에 관한 설명으로 옳은 것은 무엇인가? DDR SDRAM의 발전 형태가 SDRAM이다. 클록에 따라 비동기적으로 작동한다. 클록 사이클 당 3번의 데이터 전송이 수행된다. 어드레스 입력과 데이터 입출력에 외부와의 동기를 위한 동기 레지스터가 존재한다. 더보기 정답 : 4. SDRAM은 Synchronous Dynamic Random Access Memory 로써 DRAM의 발전 형태이다...
[디지털포렌식전문가2급] 제 3장 - 디지털 기기 및 저장매체 기출문제 변형 #1
[디지털포렌식전문가2급] 제 3장 - 디지털 기기 및 저장매체 기출문제 변형 #1
2020.10.26컴퓨터 구조 ) 1편 : blog.system32.kr/233 2편 : blog.system32.kr/234 디지털 데이터의 표현 ) 1편 : blog.system32.kr/235 디지털 기기 및 저장 매체 ) 1편 : blog.system32.kr/236 2편 : blog.system32.kr/237 1번. 휘발성 메모리가 아닌 것은 무엇인가? RAM Register Temporary File Cache 더보기 정답 : 3. Temporary File의 경우 임시파일로써 %temp% 폴더에 저장된다. 해설 : RAM과 Register, Cache는 휘발성 메모리로써, 포렌식의 수집 과정에서 까다로운 수집이 요구된다. 2번. 휘발성 메모리는 무엇인가? 실행 중인 프로그램을 저장하는 메모리 전원이 공급되는..
[디지털포렌식전문가2급] 제 2장 - 디지털 데이터의 표현 기출문제 변형
[디지털포렌식전문가2급] 제 2장 - 디지털 데이터의 표현 기출문제 변형
2020.10.23컴퓨터 구조 ) 1편 : blog.system32.kr/233 2편 : blog.system32.kr/234 디지털 데이터의 표현 ) 1편 : blog.system32.kr/235 1번. 디지털카메라의 파일 포맷으로 옳지 않은 것은 무엇인가? RAW JPEG BMP MOV 더보기 정답 : 3. BMP는 윈도우에서 사용되는 비트맵 데이터를 표현하기 위해 비트맵 그래픽 파일 포맷이다. 해설 : JPEG, GIF, RAW, MOV 파일 포맷들은 디지털카메라의 파일 포맷이다. BMP는 일반적으로 데이터를 압축하지 않고 사용되기 때문에, BMP파일로 이미지를 저장할 때 다른 형식으로 저장하는 경우에 비해서 파일크기가 매우 커서, 디지털카메라에서는 사용되지 않고 있다. 2번. MP3에 관한 설명으로 옳지 않은 것은..
[디지털포렌식전문가2급] 제 1장 - 컴퓨터 구조 기출문제 변형 #2
[디지털포렌식전문가2급] 제 1장 - 컴퓨터 구조 기출문제 변형 #2
2020.10.221편 : blog.system32.kr/233 2편 : blog.system32.kr/234 11번. 높은 콜록 주파수로 고속 전송을 수행하기 위해 단일 신호선을 이용한 직렬 전송이 채택되고 있다. 각 장치를 전송로에 연결하기 위해 포인트 투 포인트를 사용하는 하드디스크 인터페이스는 무엇인가? SAS PATA SCSI AGP 더보기 정답 : 1. SATA처럼 직렬 인터페이스를 가진 SCSI 인터페이스로써 기존 SCSI의 병렬구조를 SATA처럼 직렬방식으로 바꾸어 데이터 전송속도와 안정성을 대폭 증가시킨 인터페이스이다. 일반 HDD 보다 성능은 높지만, 가격이 비싸, 개인용보다는 서버용으로 많이 사용되는 추세이다. 1. Serial Attached SATA 2. Paralled ATA 3. Small Co..
[디지털포렌식전문가2급] 제 1장 - 컴퓨터 구조 기출문제 변형 #1
[디지털포렌식전문가2급] 제 1장 - 컴퓨터 구조 기출문제 변형 #1
2020.10.22디지털 포렌식 전문가 2급을 준비하면서 기출문제들이 별로 없다는 사실을 알게 되었고, 기출문제들을 각색해서 문제를 제작해 보려고 합니다. 아직 서툴지만 이해해주시고 봐주시면 감사하겠습니다. (저도 공부 목적입니다..) 1편 : blog.system32.kr/233 2편 : blog.system32.kr/234 1번. 컴퓨터 발전의 방향에 관한 설명으로 옳지 않은 것은 무엇인가? 통합된 환경에서 개발하는 도구가 많아지고 있는 추세이다. 저전력 소모를 위한 설계를 고려하지 않아, 전력 소모에 관한 문제가 점점 커지고 있는 추세이다. 통신을 위한 하드웨어 기능이 계속해서 향상되고 있는 추세이다. GPU 기능이 많이 사용되는 추세이다. 더보기 정답 : 2. 저전력 소모를 위한 설계가 굉장히 많아지고 있으며, 대..
MAGNET Axiom - User Guide (Korean) #14 맞춤형 아티팩트
MAGNET Axiom - User Guide (Korean) #14 맞춤형 아티팩트
2020.10.21[ Magnet Axiom Process ] (Reference : Magnet Axiom Korean User Guide) // Thanks Magnet Forensics Company! 참고 ) 본 Magnet Axiom Korean User Guide를 참고해도 된다고 허락을 구했습니다! 새로운 애플리케이션과 서비스가 시장에 출시되는 빈도와 함께 사용자 지정 아티팩트를 사용하면 Magnet AXIOM에서 지원되지 않을 수 있는 아티팩트를 최신 상태로 유지할 수 있습니다. 기업 환경에서 맞춤형 아티팩트를 사용하여 독점적 응용 프로그램의 데이터를 복구할 수 있습니다. 고유 아티팩트를 만드는 것 외에도, 아티팩트 교환을 사용하여 다른 조직에서 작성하고 업로드한 맞춤형 아티팩트를 다운로드하고 설치할 수 있..
[Ubuntu] Cloud9 설치 에러
[Ubuntu] Cloud9 설치 에러
2020.10.13apt install node-pre-gyp 해당 패키지를 설치하면 된다. pental.tistory.com/83?category=834154 [Ubuntu] Cloud9 설치하기 Ubuntu에 Cloud9 설치하기. 필자의 조건 Ubuntu 16.04 # apt-get update # apt-get upgrade # apt-get install git Git 설치 # git clone https://github.com/c9/core.git [저장폴더] ex) git clone https://gith.. blog.system32.kr
[프로그래머스] 행렬의 합
[프로그래머스] 행렬의 합
2020.10.12def solution(arr1, arr2): result = [] temp = [] for i in range(len(arr1)): for j in range(len(arr1[i])): temp.append(arr1[i][j] + arr2[i][j]) result.append(temp) temp = [] return result for문에서 사실 애먹었다;; for i in range(len(arr1)): #arr1의 요소 2개 (2번 돈다.) for j in range(len(arr1[i)) # arr1의 요소 안의 요소 temp.append(arr1[i][j] + arr2[i][j] result.append(temp) temp = []#요소를 묶기 위해
[프로그래머스] 두 개 뽑아서 더하기
[프로그래머스] 두 개 뽑아서 더하기
2020.10.12def solution(numbers): numbers = sorted(numbers) result = [] for i in range(len(numbers)): for j in range(i + 1, len(numbers)): result.append(numbers[i] + numbers[j]) print(result) result = set(result) print(result) result = list(result) return (result) 처음 시도는 result를 list로 놓고, 5번을 도는 동안, i+1에서는 i값과 j값을 동시에 추가한다. 하지만 이 방법은 실패로 돌아갔고, set을 미리 지정해 주어야한다. def solution(numbers): numbers = sorted(numb..
[프로그래머스] 이상한 문자 만들기
[프로그래머스] 이상한 문자 만들기
2020.10.12def solution(s): s = s.split() temp = [] for i in s: idx = 0 for j in i: if idx % 2 == 0: temp.append(j.upper()) print(idx, j.upper()) else : temp.append(j.lower()) idx += 1 temp.append(" ") temp.pop() print(temp) print("".join(temp)) idx를 사용해서, idx의 위치에 맞는 문자를 대소문자로 변경해준다.
[프로그래머스] 정수 제곱근 판별
[프로그래머스] 정수 제곱근 판별
2020.10.11def solution(n): import math num = math.sqrt(n) if math.sqrt(n) == int(math.sqrt(n)) : #정수값이 나온다 => 제곱근의 존재 return pow(num+1, 2) #num+1 * num+1 return -1
[프로그래머스] 자연수 뒤집어 배열로 만들기
[프로그래머스] 자연수 뒤집어 배열로 만들기
2020.10.11def solution(n): return list(map(int, reversed(str(n)))) map에 대해서 자세히 공부하자
[프로그래머스] 정수 내림파순으로 배치하기
[프로그래머스] 정수 내림파순으로 배치하기
2020.10.11def solution(n): print(n) a = list(str(n)) # a라는 변수를 지정해, n의 값들을 list형태로 저장 print(a) # ['1', '1', '8', '3', '7', '2'] intList = list(map(int, a)) #intList라는 리스트를 지정해, str형태의 원소를 int형태로 지정 print(intList) #[1, 1, 8, 3, 7, 2] intList.sort(reverse=True) print(intList) #[8, 7, 3, 2, 1, 1] a = ''.join(map(str,intList)) #join을 사용하기 위해서는 다시 str형태로 지정해야한다. return int(a)