목록분류 전체보기 (55)
맨땅에 코딩

*화이트햇 스쿨 2기에서 이수한 이론교육 내용을 바탕으로 작성되었습니다. 1. DevOps란 무엇인가 DevOps란?- 'Development(개발)'과 'Operation(운영)'의 합성어- 개발팀과 운영팀이 협력하여 애플리케이션/서비스를 더욱 빠르고 안정적으로 사용자에게 제공하기 위한 문화, 프로세스, 도구들의 집합 DevOps Life Cycle - Plan: 비지니스적 요구사항을 확인하고 고객들의 피드백을 수용하여 새로운 프로젝트를 기획하고 이를 선보이기 위한 로드맵을 구성하는 시점- Code: 실질적인 개발 단계로, 여러 플러그인을 이용하여 개발을 효율적으로 할 수 있도록 환경을 구성하고 개발을 진행함- Build: 개발이 마무리되면 코드를 Repository에 commit하고, 빌드를 진행함..

*화이트햇 스쿨 2기에서 이수한 이론교육 내용을 바탕으로 작성되었습니다. 1. Digital Forensics and Definition of Artifacts Forensic : 법의학, 법과학, 범죄수사, 증거능력Digital Forensic : Digital + Forensic / 디지털 장치에서 발견된 정보를 복구, 조사, 분석 하는 것Artifact : Digital Forensic 과정에서 증거로 사용할 수 있는 “모든” 데이터 2. Adversarials and Attack Procedures in General 사이버 공격과 공격자- 사이버 공격: 악의적인 목적으로 타인의 컴퓨터 시스템, 네트워크, 인프라스트럭쳐를 공격 또는 침투하는 행위- 공격자: 위의 사이버 공격을 행하는 자 / ..

*화이트햇 스쿨 2기에서 이수한 이론교육 내용을 바탕으로 작성되었습니다. 1. 파일 포랜식 개요 및 프로세스 파일 포렌식의 의미를 설명할 수 있다.휘발성 파일과 비휘발성 파일을 구분 지을 수 있다. 파일 포렌식 의미와 개념 소개- 개념: 디지털 디바이스와 저장 매체에서 발견 된 파일과 데이터를 수집, 분석, 복구하고, 범죄와 관련된 정보를 찾아내어 법적인 증거로 활용하는 과정- 목적 - 범죄 조사 지원: 범죄 수사나 기업 내의 부정행위 조사 - 데이터 보호 및 회복: 데이터 손실, 손상 또는 삭제에 대응하여 데이터를 복구/보호 - 디지털 보안 강화: 디지털 환경에서의 보안 위협을 탐지하고, 예방 / 파일 시스템의 취약성을 식별하고 보완 - 개인 정보 보호: 민감한 데이터의 유출을 방지 휘발성 데..

*화이트햇 스쿨 2기에서 이수한 이론교육 내용을 바탕으로 작성되었습니다. 1. 리버스 엔지니어링- 역공학- 치킨집을 먼저 차려버리는 것~??~?~~~?~? 컴파일러와 언어- 컴퓨터는 0과 1로 소통하는 계산기- 인간이 알아 볼 수 없기 때문에 기계어를 고안- 기계어를 어셈블리로 매칭- 그 이후로 고급언어로 발전 칼큘레이터와 컴퓨터의 차이- 수행 능력의 차이- 해석 능력이 없는 계산기는 단순 칼큘레이터- 폰노이만의 Stored-Program Computer- 버그는 진짜 벌레였다~~~!!~!~!~~~! 컴파일 과정 gcc- 전처리: cpp- 컴파일: ccl- 어셈블: as- 링크: id 디스어셈블- add rax, rbx -> 4803c3- 리눅스에서는 objdump를 이용해 확인이 가능함 2. 분석방법..

*화이트햇 스쿨 2기에서 이수한 이론교육 내용을 바탕으로 작성되었습니다. 1. Memory Layout Memory Layout(메모리 레이아웃)이란 프로그램이 실행될 때 프로세스가 사용하는 메모리 공간의 구조를 의미함운영체제(OS)는 프로세스마다 독립적인 가상 메모리 공간을 할당하며, 이를 특정 영역으로 나누어 관리함 2. Stack Overflow Stack Frame- 스택 프레임이란 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위하여 생성되는 공간임- 이 공간에는 함수와 관계되는 지역 변수, 매개 변수, 복귀주소가 저장되며, 함수 호출 시 할당되며, 함수가 종료되면서 소멸함 Shellcode- 시스템의 특정 명령을 실행하는 작은 사이즈의 프로그램으로 일반적으로 어셈블리어로 작성되어 있음..

*화이트햇 스쿨 2기에서 이수한 이론교육 내용을 바탕으로 작성되었습니다. 1. 컴퓨터의 기본 구조 컴퓨터 언어- 단위와 용어 1. Human language(C)2. Assembly3. byte4. bit (Binary) - 컴퓨터가 이해할 수 있는 언어 체계가 있음- 번역기가 필요함- 외국어 배우듯이 배우면 됨 어셈블리 언어 기초- 사람이 해석할 수 있는 가장 낮은 수준의 컴퓨터 언어- 내 프로그램을 컴퓨터가 처리하는 수준으로 해석- 번역이 필요함 API- 컴퓨터나 컴퓨터 프로그램 사이의 연결 - 내가 구현하지 않아도 기능을 사용할 수 있음- 대신 서로 잘 알려줘야 함 컴파일과 링킹- 소스코드를 기계어로 만듦- 기계어들을 잘 연결함- 외부 코드도 잘 연결함 2. 컴퓨터 메모리 구조 포인터- 메모리 공..

*화이트햇 스쿨 2기에서 이수한 이론교육 내용을 바탕으로 작성되었습니다. 1. 어셈블리 개요 CPU 아키텍쳐- CPU 내부 동작 방식과 구성 요소를 정의하는 설계 개념- CPU 아키텍처에 따라 명령어, 레지스터 구조 등이 다름- x86, arm, mips, Power PC 등이 있음 x86- 32bit 아키텍쳐- 64bit 버전으로 x64(amd64, x86_64)가 있음- Windows, Linux, Mac OS 등에서 사용됨 arm- 32bit 아키텍쳐- 64bit 버전으로 arm64(AArch64)가 있음- 모바일 기기 및 임베디드 시스템에 사용됨 어셈블리어- 어셈블리어: 기계어와 일대일 대응이 되는 저급 언어- 기계어: 0과 1로 이루어진 컴퓨터가 이해할 수 있는 언어- 저급언어: 컴퓨터가 이해하..

연구실에서 Duumviri Reproduce 시도 중인데, 도커를 사용하더라구요......?저는 도커를 2학년 때 "오픈소스SW입문" 전공 과목에서 정말 잠깐 접했던 경험이 다라..지금 도커를 다루려다보니 명렁어고 뭐고 다 잊어버려서자꾸 구글링하게 되길래 귀찮아서 정리합니다 : ) 기본 명령어docker --version # Docker 버전 확인docker info # Docker 시스템 정보 확인docker help # Docker 명령어 도움말 확인 이미지 관련 명령어docker images # 로컬에 저장된 이미지 목록 조회docker search # Docker Hub에서 이미지 검색doc..