본문 바로가기

전체 글

ch11 - 상위 계층의 이해 / 연습문제 11장 01 상위 계층 소개 02 세션 계층 03 표현 계층 04 응용 계층 01 상위 계층 소개 02 세션 계층 03 표현 계층 04 응용 계층 연습문제 더보기
ch03 - 디버거의 활용 방법(x64DBG/OllyDBG) 01 프로그램 디버깅 02 디버거의 종류 03 디버거 사용법(x64 dbg) 1. 프로그램 디버깅 1.1 프로그래밍 오류 - 1차이 오류(off-by-one error) : 프로그래머가 간과한 곳에서 발생하는 오류로 주로 아이템 사이의 공간과 아이템 수를 착각할 때 주로 발생한다. 이런 오류를 찾기 위해 c언어에서는 디버깅 과정을 거친다. 문법 오류 - 간단한 문법을 빠뜨린 경우(,) 심볼 오류 - 심볼 테이블에서 변수나 함수 이름을 찾을 수 없을 때 발생한다. 변수 선언 문제 메모리 접근 오류 - 변수나 주소를 사용할 때 프로세스에 허용되는 영역을 벗어날 경우 발생한다. 주소의 문제 잘못된 결과 출력 오류 - 원래 기대했던 값과 다른 값이 나온 경우로 어디서 잘못됐는지 찾기 어려워 수정이 어렵다. 장기.. 더보기
ch02 - 컴퓨터 시스템의 명령어 처리 구조 1. 데이터 표현 방식 2. 프로그램의 생성 3. 프로세스 4. 레지스터의 구성과 역할 1. 데이터 표현 방식 1.1 데이터 표현 단위 - 컴퓨터에선 이진 데이터를 기반으로 데이터를 표현. 바이트는 컴퓨터에서 문자를 표현하는 기본 단위이며, 1바이트로 표현하는 문자의 대표적인 예가 아스키코드이다. 컴퓨터에서 명령어 처리를 하거나 연산을 할 때는 워드 단위가 기반이고 4바이트 이상을 1 워드로 표현. 1.2 숫자의 표현 - 정수의 저장 방식을 엔디언(endian)이라 한다. 빅 엔디언 - 원래의 순서대로 저장하는 방법 큰 숫자가 먼저 나타나며, 주로, IBM, Sun, Sparc, 네트워크 주소 등에서 사용한다. ex) 0x12345678은 저장할 때 원래의 값 순서대로 [12 34 56 78]로 저장(리.. 더보기
ch01 - 리버싱과 해킹의 이해 1. 해킹의 이해 2. 리버스 엔지니어링 1. 해킹의 이해 1.1 해커의 의미 - 해커는 초기에 "컴퓨터를 능숙하게 다루는 전문가"나 "시스템 프로그래밍을 잘하는 사람"인 좋은 인식이었지만 점점 "컴퓨터 시스템이나 네트워크의 문제점을 이용하여 침입하거나 정보를 탈취하는 사람"으로 좋지 않은 인식으로 바뀌었다. 화이트햇(White Hat) - 일반적으로 좋은 사람이며 윤리적 해커로 법을 위반하지 않고 악의적인 활동에 관여하지 않는 해커를 말한다. 블랙햇(Black Hat) - 개인적인 이익을 위해 취약점을 이용해 특정 시스템을 공격하며 '크래커'로 불린다. 그레이 햇(Grey Hat) - 악의적인 행동은 아니지만 해킹 방법이 합법적 또는 윤리적 경계를 넘을 수 있는 해커다. 그린햇(Green Hat) - .. 더보기
책 : x64dbg 디버거를 활용한 리버싱과 시스템 해킹의 원리 김민수 저 ch01 - 리버싱과 해킹의 이해 ch02 - 컴퓨터 시스템의 명령어 처리 구조 ch03 - 디버거의 활용 방법 ch04 - 어셈블리어의 이해 ch05 - 코드 분석과 패치 ch06 - 윈도우 실행 파일 구조 ch07 - 파일 패킹과 언패킹 ch08 - 안티 리버싱 ch09 - 메모리 오염 공격 ch10 - 방패와 창 ch11 - 코드 인젝션 ch12 - 악성코드 분석 시작합니다 더보기
ch 10 전송 계층 / 연습문제 10장 01 UDP 프로토콜 02 RTP 프로토콜 03 OSI TP 프로토콜 01 UDP 프로토콜 (UDP, User Datagram Protocol) - 비연결형 서비스, 헤더와 전송 데이터에 대한 체크섬 기능 제공, Best Effort 전달 방식 지원 - 상위 계층에서 받은 데이터를 IP 프로토콜에 전달하지만, 전송한 데이터그램이 목적지까지 제대로 도착했는지 확인하지 않아 신뢰성이 떨어지지만 빠르다. 1. UDP 헤더 구조 Source Port/Destination Port : 송수신 프로세스에 할당된 네트워크 포트 번호이다. 호스트에서 실행되는 프로세스를 구분하는데 이용. 호스트는 IP 프로토콜의 IP 주소로 구분하므로, 인터넷에서 실행되는 네트워크 프로세스의 교유 구분자는 호스트의 IP 주소와 프로세스.. 더보기
ch09 TCP 프로토콜 / 연습문제 9장 01 전송 계층의 기능 02 TCP 프로토콜 03 TCP 프로토콜을 이용한 데이터 전송 01 전송 계층의 기능 -전송 계층 프로토콜은 오류제어, 흐름 제어, 데이터 순서화 등의 기능 면에서 데이터 링크 계층과 유사하지만 2 계층은 물리적인 전송 선로로 직접 연결된 두 물리적 호스트 사이의 데이터 전송을 담당하고 / 전송 계층은 네트워크 끝단에 위치하는 통신 주체가 중간의 논리적인 선로(라우터로 연결된 컴퓨터 네트워크)를 통해 데이터를 주고받는다. 1. 전송 계층의 주요 기능 1.1 흐름 제어 - 전송 계층의 서비스를 이용해 연결을 설정하면 양 끝단의 호스트에서 실행되는 네트워크 프로세스가 데이터를 주고받는데 이 과정에서 흐름 제어를 사용한다. - 수신 프로세스가 송신 프로세스의 전송 속도보다 느리게 데이.. 더보기
ch08 네트워크 계층 / 연습문제 8장 01 IPv6 프로토콜 02 이동 IP 프로토콜 03 기타 네트워크 계층 프로토콜 01 IPv6 프로토콜 - 32비트의 주소 공간을 지원하는 현재의 IP 프로토콜은 최대 2의 32 승개의 호스트를 수용할 수 있지만 주소가 부족해 IPv6 버전을 사용 주소 공간 확장 헤더 구조 단순화 흐름 제어 기능 지원(Flow Label) 1. IPv6 헤더 구조 - 총 40바이트 중에서 32바이트는 주소 공간으로 할당되고, 8바이트만 프로토콜 기능을 위해 사용. IPv6 기본 헤더 바로 뒤에 확장 헤더를 하나 이상 둘 수 있는데, 확장 헤더의 종류는 다음과 같다. Hop-by-Hop Options Header Routing Header : IPv4의 소스 라우팅과 유사한 기능 제공, 특정 노드를 경유하여 전송되도록 .. 더보기