Buffer - 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시에 보관하는 메모리의 영역 - Buffer는 항상 일정 크기를 갖고 있음 - 보통 메모리의 Stack, Heap 영역에 존재함 Buffer Overflow vs. Buffer Overrun Buffer Overflow Buffer Overrun - 일정 크기를 갖는 버퍼에 그 크기를 넘는 데이터를 입력할 때 발생 - Stack 영역에 존재하는 버퍼에 대한 공격을 Stack Buffer Overflow라고 하고, Heap 영역에 존재하는 버퍼에 대한 공격을 Heap Buffer Overflow라고 함 - 버퍼에서 할당된 공간을 지나서 데이터 읽기를 계속할 때 발생 스택 기반 버퍼 오버플로우 조건 - 배열로 할당한 공간보다 많은 데이터 입력 ..

메모리(Memory) 정의 - 프로그램 실행을 위한 데이터 및 코드가 들어있는 영역 메모리 구조 개요 - 가장 효율성 있게 정보를 저장하고 검색할 수 있도록 데이터 저장소를 구현하는 방법 - 같은 프로그램일지라도 메모리 관리에 따라 성능 차이 발생 - 메모리 관리가 되지 않은 경우 성능 저하 발생 선형 주소 공간(Linear Address Space) - 분할된 메모리 모델의 핵심 - 주로 가상 메모리로 불리며, 디버깅 할 때 볼 수 있는 주소 - 최대 4GB로 구성 (32비트 CPU에서만 선형 주소 공간을 쓰기 때문) - 낮은 주소부터 높은 주소로 표현 - 하나의 프로그램의 커널, 힙, 스택, 텍스트 등 영역들로 분할 - 커널과 사용자 영역의 크기는 일정한 규칙을 가짐 (일반 모드) 커널 : 사용자 =..
버그(Bug) - 알 수 없는 에러 혹은 소프트웨어 설계상의 실수로 발생 - 예상하지 못한 동작 또는 결과 발생 - 버그로부터 크래쉬(Crash)가 발생 - 버그의 종류 : 논리적인(Logical) 버그, 문법적인(Syntax) 버그, 리소스(Resource) 버그 크래쉬(Crash) 소프트웨어 크래쉬 정상적이지 않은 명령어 실행 (Invalid instruction execution) 특정 권한을 필요로 하는 명령어 실행 (Privileged instruction execution) 정상적이지 않은 메모리 역 참조 (Dereference of invalid memory) 운영체제 / 커널 크래쉬 BSOD (Blue Screen of Death) 복구 불가능한 크래쉬 (Non-recoverable) 취약..

1. Firewall (방화벽) - 어원: 건물에 화재가 발생했을 때 더 이상 주변으로 피해가 가지 않기 위해 연결 경로를 차단하는 벽 - 네트워크를 외부망과 내부망으로 분리시키고 그 사이에 배치시켜 정보의 악의적인 흐름, 침투 등을 방지하는 시스템 - 보안 관리자가 미리 정해 놓은 보안 정책에 따라 차단하거나 허용하는 기능을 수행하는 소프트웨어 또는 하드웨어 기반 시스템 - 허가된 접근, 서비스, 사용자만을 통과시키는 정책을 수립하여 외부망으로부터 내부망 보호 - 주요 기능 접근 통제 (Access Control) : 송신자의 IP 및 포트 번호를 바탕으로 패킷 필터링 수행 주소변환 (Network Address Translation) : NAT 기능을 이용하여 외부망과 내부망 구분 인증 (Authen..

0. IP Spoofing 정의 1. IP Spoofing 공격 2. IP Spoofing 대응 방안 0. IP Spoofing 정의 IP Spoofing은 공격자가 자신의 IP 주소를 변조하거나 속여서 접근 제어 목록(ACL: Access Control List)을 우회하거나 회피하여 공격하는 것을 말한다. 공격자는 변조된 IP 주소를 이용하여 서비스 거부 공격(DoS: Denial of Service)이나 연결된 세션을 차단하며 공격에 대한 추적을 어렵게 만든다. 1. IP Spoofing 공격 1.1. ARP Reply 패킷을 이용하여 MAC 주소 변조 후 Telnet 접속정보 Sniffing 1.2. IP Spoofing을 이용한 IP 접근제어 우회 2. IP Spoofing 대응 방안 2.1. ..

1. 함수 호출 규약 2. reverseMe.exe 분석 1. 함수 호출 규약 cdecl 함수 호출 규약은 [그림 1]처럼 CALL 뒤에 ADD가 나온다. 이는 main 함수가 직접 스택을 정리해준다는 의미를 가진다. [그림 4]에서는 main 함수의 내부 함수에서 RETN 10으로 끝나는 것을 볼 수 있다. stdcall 함수 호출 규약에서는 RETN이 아닌 RETN N 형식이 나타나는데, 이는 각각의 내부 함수가 스택을 정리하기 때문이다. 함수 호출 규약 cdecl stdcall fastcall OS x86 (32bit) x86 (32bit) x86 (bit) 표준 C/C++ Win32 - 인자 전달 방법 스택(Stack) 사용 스택(Stack) 사용 ECX(첫 번째 인자), EDX(두 번째 인자),..

1. Timeattack.exe 분석 2. Timeattack2.exe 분석 1. Timeattack.exe 분석 Timeattack.exe의 main 함수에서 한 줄씩 F8로 실행하다 보면 [그림 2]의 우측하단과 같이 Running이라고 계속 뜨는 부분이 있다. 편의상 첫 번째 Running 지연 부분을 Running_A, 두 번째 Running 지연 부분을 Running_B라고 하겠다. Running_B에서 한 줄씩 F8로 실행하다 보면 또 Running time이 지연되는 부분이 두 군데 나타난다. 편의상 첫 번째 부분을 Running_B1, 두 번째 부분을 Running_B2라고 하겠다. Running_B2에서 한 줄씩 F8로 실행하다 보면 또 Running time이 지연되는 부분이 있다. 편..

1. while2.exe 해석 및 코드 복원 2. for2.exe 해석 및 코드 복원 3. for2_patch.exe 만들기 1. while2.exe 해석 및 코드 복원 [ 명령어의 의미 - while2.exe ] 00231080 /$ 55 PUSH EBP ; 프롤로그 00231081 |. 8BEC MOV EBP,ESP ; 프롤로그 00231083 |. 83EC 08 SUB ESP,8 00231086 |. A1 3C302300 MOV EAX,DWORD PTR DS:[23303C] ; 카나리 (메모리 보호기법) 0023108B |. 33C5 XOR EAX,EBP ; 카나리 0023108D |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX ; 카나리 00231090 |> B8 01000..

1. Switch.exe 해석 및 코드 복원 2. Switch2.exe 해석 및 코드 복원 3. while.exe 해석 및 코드 복원 4. for.exe 해석 및 코드 복원 1. Switch.exe 해석 및 코드 복원 [ 명령어의 의미 - Switch.exe ] 01321040 /$ 55 PUSH EBP ; 프롤로그 - 스택의 처음 위치 설정 01321041 |. 8BEC MOV EBP,ESP ; 프롤로그 - 스택의 마지막 위치 설정 01321043 |. 83EC 08 SUB ESP,8 01321046 |. C745 F8 0100>MOV DWORD PTR SS:[EBP-8],1 ; [EBP-8]의 주소에 1을 저장 0132104D |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ;..

0. 분기 명령어 1. IF.exe 명령어 의미 해석 및 C언어 복구 2. IF_hard.exe 명령어 의미 해석 및 정답(숫자) 찾기 0. 분기 명령어 명령 조건 설명 JE / JZ ZF = 1 결과가 0이면 점프 JNE / JNZ ZF = 0 결과가 0이 아니면 점프 JG ZF = 0 AND SF = OF (부호 있는) 결과가 크면 점프 JGE SF = OF (부호 있는) 결과가 크거나 같으면 점프 JL SF != OF (부호 있는) 결과가 작으면 점프 JLE ZF = 1 OR SF !=OF (부호 있는) 결과가 작거나 같으면 점프 JA CF = 0 AND ZF = 0 (부호 없는) 결과가 크면 점프 JAE CF = 0 (부호 없는) 결과가 크거나 같으면 점프 JB CF = 1 (부호 없는) 결과가 ..

0. Hello.exe 분석 1. 각 프로그램을 한 줄씩 어셈블리어 명령어 행위 작성 2. 어셈블리어 명령어의 의미 작성 3. IN_OUT2.exe 오류 패치 0. Hello.exe 분석 과제 진행에 앞서 수업 시간에 했던 Hello.exe 파일 분석을 정리하려고 한다. 처음 OllyDbg에 들어가서 Hello.exe를 불러오면 [그림 1]과 같은 창이 나타난다. [그림 1]의 OllyDbg는 4구역으로 분리되어 있다. 좌측상단은 메모리 주소, 기계어, 어셈블리어, 주석이 있고, 우측상단은 각종 레지스터들로 구성된다. 좌측하단은 메모리 확인할 수 있고, 우측하단은 스택 영역을 볼 수 있다. [ OllyDbg 사용법 ] - F2 : Break Poi..

0. cmd 명령어 (reg - 레지스트리) 1. NetBIOS 바인딩 서비스 구동 점검 2. 원격 데스크톱 접속 활성화/비활성화 3. wmic, netsh 조사 0. cmd 명령어 (reg - 레지스트리) cmd 창에 "reg /?"라고 치면 [그림 1]과 같이 레지스트리 작업에 대한 설명이 나온다. "reg 작업 /?"을 치면 특정 작업 유형에 대한 도움말을 볼 수 있다. * 레지스트리 (Registry) 윈도우 레지스트리는 마이크로소프트 윈도우 32/64비트 버전과 윈도우 모바일 운영 체제의 설정과 선택 항목을 담고 있는 데이터베이스로, 모든 하드웨어, 운영 체제 소프트웨어, 대부분의 비운영 체제 소프트웨어, 사용자 PC 선호도 등에 대한 정보와 설정이 들어 있다. ..
- Total
- Today
- Yesterday
- Char
- int
- window 객체
- Screen 객체
- Browser Object Model
- Document Object Model
- location 객체
- long
- 변수
- gcc
- 리액트 #React #props #state #javascript
- keyword
- 컴파일
- bom
- History 객체
- DOM
- short
- Navigator 객체
- 자료형
- 키워드
- stdio.h
- c언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |