- 참치군
- ?
- stalk.io
- :: 2013년, 스리는 여섯살
- 웹 강좌
- 점프 투 파이썬
- 요니나의 대학생 재테크
- This is CS50
- 애자일 이야기
- isao의 IT,게임번역소
- 소프트웨어 이야기
- Color Scripter
- 어디를 가든지 마음을 다해 가라
- VisuAlgo
- 서울대 평생교육원
- 몽환
- RegExr: Learn, Build, & Test R…
- Hello, Stranger :D
- I Like Exploit
- Z3alous Security Story
- Project Euler
- Blog
- pieces of code
- window 쪼물딱 거리기
- IT - Informatics Alphabet
- rop
- 국제 정보교육센터 I2sec 대구 1기
- This is the moment. :)
- blackmoon
- z3alous는 세상에 소리 z3alous~
- Acord
- FORENSIC-PROOF
- 어셈블리
- Outsider's Dev Story
- Open Tutorials
- 코드라이언
- 컴퓨터 그래픽스와 3D 프린팅
- HACKABILITY
- Lee, Jae-Hong
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Calling Convention
- 레지스터
- 오지총
- 탈색
- 공간복잡도
- 시간복잡도
- 염색
- 추상데이터타입
- 버퍼오버플로우
- Wireshark
- 컴파일러
- 발표
- 디버깅
- 피보나치
- 블루블랙
- 동대구
- Hello World
- 알고리즘
- 파이썬
- 창의공학설계
- 호출규약
- Debug
- Visual Studio
- BOF
- ubuntu
- 소켓
- 베이스
- Packet
- C언어
- 펌
- Today
- Total
목록분류 전체보기 (40)
c0smicb0y
1. 문제의 힌트 확인level13(darkknight)에 접속하여 ls 명령어로 디렉토리의 파일 목록을 살펴보자 [그림1]darkknight 계정의 디렉토리 목록 suid가 걸려있는 bugbear에서 쉘을 실행시켜야 할 것이다. vi를 통해 bugbear의 소스코드를 살펴보자. [그림2]bugbear의 소스 코드 RTL1이라고 힌트가 제시되어 있다. RTL에 대해 알아보자 2. RTL (Return To Libc)이 기법은 일반적인 BOF로 스택에서 코드가 실행되는 것을 막은 non-executable stack 보호기법이 나오고 나서 제안된 방법이다. return address를 libc 영역(공유라이브러리)으로 점프시켜서 원하는 libc함수를 실행한다. 예를 들어 printf함수를 사용했다고 하면 ..
1. 문제의 힌트 확인level12(golem)에 접속하여 ls명령어로 디렉토리의 파일 목록을 살펴보면 [그림1] golem 계정의 디렉토리목록 darkknight 파일에 suid가 걸려 있는 것을 확인할 수 있다. 이 파일을 이용하여 쉘을 획득해야 할 것이다. vi를 통해 darkknight의 소스를 살펴보자. [그림2] darkknight.c의 내용 힌트에 FPO라고 적혀있다. 그럼 우선 FPO에 대해 알아보아야 할 것이다. 2. FPO (Frame Pointer Overflow/Overwrite)FPO는 간단하게 설명하여 서브루틴이 있는 프로그램에서 서브루틴의 SFP를 조작하여 main의 ebp를 다른 곳으로 보내버려서 main의 leave가 수행될 때 다른 곳으로 보내진 ebp로 esp가 이동하여..
정보보안 스터디를 시작했다. 간단한 면접 후 합격을 통보해준댔는데 다행히도 합격했다. 면접이라고 했는데 사실상 Hackerschool FTZ Level11을 Format String Bug로 풀어오라는것이였다. 아는게 아무것도 없는데 매우 당황했다. 다들 FTZ 로컬서버를 구축해서 풀던데 나는 그냥 텔넷으로 직접 접속해서 풀었다. 접속방법은 이러하다 텔넷을 열고, o ftz.hackerschool.org 라고 입력하면 ftz 서버에 접속할 수 있다. login에 level11을 적고, Password에 what!@#$? 라고 적으면 level11에 접속할 수 있다. 파일과 폴더의 목록을 볼 수 있는 명령어인 ls를 입력하여 뭐가 있는지 살펴보자. -l 이나 -al 옵션을 주어서 좀 더 자세하게 살펴볼 수..
구조체배열은 같은 타입의 데이터의 모임인데 반해 타입이 다른 데이터를 그룹화할 수 있는 방법 중 하나가 구조체(structure)이다.예를 들어 다음과 같은 선언은1234struct { char name[16]; int age;} person;cs이름이 person이고 2개의 필드를 갖는 변수를 생성한다. char형 배열 nameint형 변수 age 이러한 필드에 아래와 같이 값을 할당할 수 있다.12strcpy(person.name,"Jang");person.age = 20;cs typedef명령문을 사용하여 구조체 데이터 타입을 생성할 수도 있다.1234typedef struct human { char name[10]; int age;};cs혹은1234typedef struct { char name[..
컴파일러정의 : 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 번역하는 컴퓨터 프로그램. 원시 언어(Source Language)로 작성된 프로그램을 입력받아서, 목적 언어(Target Language)로 작성된 동일한 의미의 프로그램을 출력으로 가진다. 원시언어란 C나 C++같은 사람이 이해하기 쉬운 고급 언어(High-Level Language)이고, 목적 언어란 목적 컴퓨터에서 실행되는 기계 명령들로 작성된 코드인 목적 코드(Object Code) 또는 기계 코드(Machine Code)이다. 역사초기 컴퓨터 프로그램들은 기계에 의해서 실제로 수행될 연산을 표현하는 숫자로 된 코드인 기계어로 작성되었다. 하지만 기계어는 작성하는데 시간이 많이 걸리고 지루하기 때문에, 명령과 메모리..
배열정의 : 인덱스와 값 의 쌍으로 구성된 집합. 배열의 추상 데이터 타입(ADT)Object : 집합 (아무 자료형)에 속한 값이 존재하는 쌍의 집합. Fuctions : 모든 , , , 에 대하여 = return 차원의 배열. = if () return 배열 의 인덱스 값에 포함되어 있는 항목. else return 에러. = if () return 새로운 쌍 가 삽입된 배열 . else return 에러. C 언어에서의 배열1. 1차원 배열C언어에서 1차원 배열을 선언하는 방법은 두가지가 있다.12int array[5];int *parray[5];cs첫 번째 배열은 5개의 정수를 선언한것이고,두 번째 배열은 정수에 대한 5개의 포인터를 정의하였다. C에서는 모든 배열의 인덱스는 0에서 시작하므로 첫..
백트래킹정의 : 여러 해들 중에 조건에 맞는 모든 해를 찾는 알고리즘. 알고리즘1. 후보 해를 선택한다.2. 조건에 따라 후보 해에 적절성 검사를 시행한다. 통과하지 못하면 지금 현재 선택한 후보 해를 버리고 1로 돌아가 후보 해를 다시 선택한다.3. 적설성 검사가 통과한 경우 이 후보 해가 문제의 해가 되는지 검사한다. 검사를 통과하면 이것이 문제의 해이고, 검사를 통과하지 못하면 1로 돌아가 후보 해를 계속해서 선택한다. 백트래킹의 활용1. 미로 탈출로 찾기재귀함수를 통해 백트래킹으로 미로 탈출로를 찾아보자. 알고리즘1. 시작점을 현재 위치로 지정하고, 이동방향을 북으로 설정한다.2. 현재 위치에서 가고자 하는 이동 방향으로 이동이 가능한지 확인한다. 벽과 이미 지나온 길은 이동가능한 길이 아니다.3..
탐욕 알고리즘정의 : 미리 정한 기준에 따라서 매번 가장 좋아 보이는 답을 선택하는 알고리즘 동적 계획법과 마찬가지로 최적화 문제를 푸는데 사용한다.근시안적으로 해를 구할 당시에 가장 최적인 해를 구한다.탐욕 알고리즘은 동적 계획법보다 효율적이긴 하지만 동적 계획법처럼 반드시 최적의 해를 구해준다는 보장을 하지 못한다. 알고리즘1. 해 선택 (Selection Procedure) : 지금 당시에 가장 최적인 해를 구한뒤, 이를 부분해 집합에 추가한다.2. 적절성 검사 (Feasibility Check) : 새로운 부분해 집합이 적절한지 검사한다.3. 해 검사 (Solution Check) : 새로운 부분해 집합이 문제의 해가 되는지 검사한다. 아직 문제의 해가 완성되지 않았다면 1번부터 다시 시작한다. ..