분류 전체보기
-
[정보보안기사] 디스크 관리Certificate/정보보안기사 2022. 10. 1. 13:12
1. 디스크란 - 레코드판을 여러 개 중첩해 놓은 것과 비슷한 보조기억장치 2. 디스크 접근 시간 - Seek Time(탐색시간) : 디스크 헤드가 특정 실린더로 이동하는 시간 - Rotation Delay Time(회전 지연시간) : 디스크 헤드가 트랙 내에서 원하는 섹터까지 도달하는 시간 - Transfer Time(전송시간) : 원하는 섹터를 읽는 데 걸리는 시간 * 섹터 : 디스크에 정보가 저장되는 최소 단위 * 헤드 : 디스크로부터 정보를 읽어 들임 * 실린더 : 수직으로 연속되는 트랙의 집합 * 트랙 : 디스크 표면의 원형 경로 3. 디스크 Scheduling - FCFS(First Come First Serve) : 가장 먼저 도착한 요청을 먼저 처리 - SSTF(Shortest Seek T..
-
[정리] 22.09.../정리 2022. 10. 1. 12:31
블로그에 작성한 글을 토대로 22년 9월, 한 달 동안 공부한 내용을 정리해보자. [Wargame] Bandit : Level 17 ~ Level 33(완) F.T.Z : Level 1 ~ Level 16 (Level 17은 9/30에 풀었지만, 글 작성은 10/1) Webhacking.kr : Level 1 (맛보기) [Programming] Python : split, chr, ord, enumerate 함수 정리 [Penetration Test] Information Gathering : Google Hacking, Ping Sweep, Port Scanning, Nessus, Brute Force & Dictionary Attack [Certification] 정보보안기사 : CPU의 이해, OS..
-
[F.T.Z] Level 17Wargame/F.T.Z 2022. 10. 1. 00:27
Level 17을 풀어보자. Level 17도 그리 어렵지는 않고, Level 16을 풀 때와 비슷하게 풀이를 진행하면 된다. hint를 살펴보면, Level 16처럼 call의 포인터에 printit 함수의 주소를 넣는다. Level 16과 다른 점이라면 이번에는 Shell 함수가 없다. 풀이를 위해서는 main 함수의 제일 아래 call 함수가 호출될 때 직접 쉘을 실행하도록 해야 한다. gdb를 이용해 분석을 해보자. printit 함수의 주소는 0x8048490인 듯하다. (이번에는 printit 함수는 분석하지 않고 넘어가자.) 이번에도 buf와 call 사이에 40 바이트의 크기가 있다. 이것을 NOP 으로 채우고, 앞의 Level들에서 했었던 환경변수를 선언해 그 주소값을 call에 넣어주도..
-
[정보보안기사] CPU SchedulingCertificate/정보보안기사 2022. 9. 30. 22:57
1. 스케줄링이란 - 작업을 처리하기 위해서 프로세스들에게 CPU 자원을 효율적으로 할당하는 정책을 계획하는 것 2. 프로세스 스케줄링의 목적 - CPU의 유휴 시간 최소화 - 프로세스 평균 응답 시간 단축 - 자원 사용 효율화 - Multi Tasking 효율화 3. 스케줄러 역할에 의한 구분 - 장기 스케줄러 : Job 스케줄링, 어떤 작업이 시스템의 자원들을 차지할 것인지 결정(큐에 적재) - 중기 스케줄러 : 어떤 프로세스들이 CPU를 할당받을 것인지 결정 - 단기 스케줄러 : CPU 스케줄링, 프로세스에 CPU 할당 4. 스케줄러 점유 방식에 의한 구분 - 선점형 : 프로세스가 CPU 점유 중에도 다른 프로세스가 강제로 CPU 점유 가능 - 비선점형 : 프로세스의 종료 또는 이벤트가 있을 때까지..
-
[정보보안기사] 프로세스 관리Certificate/정보보안기사 2022. 9. 30. 21:43
1. Process(프로세스)란 - OS로부터 CPU를 할당받고 프로그램이 실행되고 있는 상태 - OS로부터 자원을 할당받는 작업의 단위 - 실행 중이거나, 곧 실행 가능한 PCB(Process Control Block)를 가진 프로그램 * PCB : OS가 프로세스를 제어하기 위해 정보를 저장해 놓는 저장 장소 * PCB에서 유지되는 정보 : PID, 포인터, 상태, Register 정보, Priority, Account, Momory Pointers 등 2. Thread(스레드)란 - 프로세스 내에서 실행되는 흐름의 단위 - 프로세스의 실행 부분을 담당하며, 할당 받은 자원을 이용하는 실행의 기본 단위 - 한 프로세스 내에 여러 개 생성 가능 3. Multi Process란 - 하나의 프로그램을 여러..
-
[F.T.Z] Level 16Wargame/F.T.Z 2022. 9. 30. 11:42
Level 16을 풀어보자. Level이 올랐지만, 생각보다 Level 16은 쉽게 풀렸다. hint를 보고, 소스 코드를 분석해보자. 먼저 shell, printit 이라는 두 개의 함수가 선언되어 있다. 함수의 내용은 간단하니 넘어가도록 하자. main 함수 안을 보면, call 포인터에 printit 함수를 저장한다. 그리고 buf 배열을 선언한 후, fgets 명령어를 통해 buf에 값을 넣는다. 끝으로 call 함수를 불러내는 것으로 소스 코드가 끝나는데, printit 함수가 실행될 것으로 보인다. gdb를 통해 더 분석을 해보자. main 함수에 대해서 먼저 보도록 하자. 을 보면 0x8048500이라는 주소값을 ebp-16 주소에 넣는다. 그리고 을 보면 그 주소값을 eax에 넣고 에서 저..
-
[F.T.Z] Level 15Wargame/F.T.Z 2022. 9. 29. 23:38
Level 15를 풀어보자. Level 15는 Level 14와 유사하기 때문에 쉽게 풀 수 있다. Level 15까지 오면서 하지 않은 딱 한 가지만 해주면 된다. Level 15의 hint를 살펴보자. Level 14의 소스 코드와 같다. 아니, Level 14와는 다르게 if 문의 check가 포인터로 되어 있다. 이번 문제를 해결하기 위해서는 0xdeadbeef의 주소값을 알아내 check의 포인터에 넣어야 한다. 먼저 gdb를 실행해보자. 를 보면 eax의 주소값과 0xdeadbeef를 비교해 같은지 확인한다. 0xdeadbeef의 주소를 알아보기 위해 cmp가 실행되는 0x080484b0 주소에 break를 걸어서 동작을 확인하자. 그런데, 홈디렉터리에서는 break가 되지 않는다.. /tmp..
-
[F.T.Z] Level 14Wargame/F.T.Z 2022. 9. 28. 00:12
Level 14를 풀어보자. 이번에는 새로운 개념을 알 필요는 없고, 앞의 Level 들에서 했던 풀이를 잘 적용하면 된다. 먼저, hint를 살펴보자. Level 14부터는 mainsource에서 문제를 그대로 가져왔다는 안내 문구가 있다. 뭔가 새로운 문제가 나오는 것 같아 떨리지만, 이번 Level은 다행히 쉬운 편이다. crap 과 check 라는 int 형의 변수가 선언된다. 그리고 20 바이트 크기의 char 형의 buf 변수가 선언된다. fgets로 45 바이트 크기만큼 buf에 표준 입력을 한다. (overflow) 그리고 선언했던 check가 0xdeadbeef 이면, Level 15의 권한을 얻은 상태로 쉘을 실행한다. 힌트 해석은 여기까지인데, check만 변형하면 쉘이 실행되므로 쉘..