
현대 암호학의 방식 중 하나이며, 대칭 암호이다. 대칭 암호란, 암호에 사용하는 암호화 하는 키와 복호화 하는 키가 동일한 것 64비트의 크기의 블록을 암호화하는 방식이다. 현재는 하나의 키를 사용하는 것이 아닌 3DES를 널리 사용 특징 혼동 : 키와 암호문 사이의 관련성을 모호하게 하는 암호화 연산, 오늘날 혼동을 만족시키기 위한 일반적인 요소는 환자(평문 : 암호문 1대1 대응)이고, DES와 AES에서 발견됨. 확산 : 평문의 통계적 특성을 숨기기 위한 목적으로 하나의 평문 기호의 영향이 많은 암호문 기호에 퍼지도록 하는 암호화 연산, 단순한 확산 요소는 비트 전치로 DES에서 빈번히 사용됨. 곱 암호 : 두 연산을 혼합한 암호 보안 : 분석적 공격에는 안전하나 소모적 키 탐색에는 안전하지 않음...
정말 간단한 키보드 후킹 프로그램을 만들었습니다. 작동 원리는 간단합니다. 1. SetWindowsHookEx() API를 통해서 클라이언트 측 키보드 값을 후킹합니다. 2. 서버 측에 입력받은 키보드 값을 DWORD 형태로 전달합니다. 3. 서버 측에서는 입력받은 키보드 값을 출력해줍니다. SetWindowsHookEx의 형태는 검색을 해보시면 다양한 자료들을 얻으실 수 있겠지만, 간단하게만 말씀드리면 _hook = SetWindowsHookEx(WH_KEYBOARD_LL, UseFunction, hInstance, NULL); 이런 형식으로 됩니다. 사용할 함수에는 키보드를 입력받았을 때 행동할 함수를 작성하여 넣어주시면 됩니다. 아래는 기본형태입니다. LRESULT CALLBACK AnyName(i..

범용 레지스터 x64 rax : 함수의 반환값 rdx : x64에서는 주된 용도 없음 rbx : x64에서는 주된 용도 없음 rcx : 반복문의 반복 횟수, 각종 연산의 시행 횟수 rsi : 데이터를 옮길 때 원본을 가르키는 포인터 rdi : 데이터를 옮길 때 목적지를 가르키는 포인터 rsp : 사용중인 스택의 위치를 가르키는 포인터 rbp : 스택의 바닥을 가르키는 포인터 rip : 명령어 포인터 레지스터 8bit 세그먼트 레지스터 cs, ds, ss : 코드영역과 데이터, 스택 메모리 영역 나머지 레지스터는 운영체제 별로 용도를 결정할 수 있도록 범용적인 용도로 제작 플래그 레지스터 CF : 부호없는 수의 연산 결과가 비트의 범위를 넘을 경우 설정됨 ZF : 연산의 결과가 0일 경우 설정됨. SF :..

먼저 Canary에 대해 설명하겠습니다. Canary란 일종의 스택가드입니다. 아래의 사진과 같이 Buf 영역 뒤에 Canary 라는 특정한 값이 들어가게 되고, 이 값은 main이 실행될 때 생성이 됩니다. 따라서 프로그램을 실행할때 마다 바뀌는 값입니다. 프로그램 익스플로잇을 위해서 통상 데이터를 입력할 때 Buf를 초과해서 값을 넣게 됩니다. 그러나 Buf를 뒤집어 쓰다가 Canary자리에 다른 값이 들어갈 경우, 프로그램은 Stack오류가 발생했다는 에러를 발생시키고 프로그램을 강제종료 시키게 됩니다. 이 방식이 Canary 방식입니다. ASLR이란 바이너리가 실행될 때마다 스택, 힙, 데이터, 코드 영역등의 주소를 할당할 때 임의의 주소에 할당하는 보호 기법입니다. 아래의 그림을 보시면 이해가 ..

DreamHack에 있는 SystemHakcing 트랙의 Stage 7의 문제인 ROP 실습의 설명을 보고 정리해보았습니다. ※ 로컬영역에서는 아래 전체코드가 실행이 되지 않을 수 있습니다. puts 다음, read함수가 실행이 될때, edx값이 0이 되면 안되는데 0이 되면서 read함수가 오류를 일으킬 수 있습니다. 이는 Ubuntu 버전에 따라 다릅니다. 물론 저도 로컬에서는 아직 실행하지 못해서 방법을 찾고 있습니다. 만약 찾아지게 되면 추가적으로 올리겠습니다. 먼저 간단하게 메모리 보호 기법에 대해 정리해보면, 프로그램이 실행될 때 왼쪽과 같이 프로그램이 실행되면서 메모리에 적제되는데, 이 메모리에 할당되지 않는 영역의 메모리에 접근하는 것을 막기 위해 사용된다. 먼저 코드를 살펴보면, puts..
- Total
- Today
- Yesterday
- 링크드 리스트
- 인제대학교
- queue
- c++
- BFS
- 워셜알고리즘
- 멀티쓰레드
- 스레드풀
- 더블버퍼링
- 개발
- 레지스터
- STL
- 자료구조
- Dreamhack
- 알고리즘
- 정보보안
- 고양이
- 시스템보안
- 학교
- 드림핵
- 지뢰찾기
- 백준
- Select모델
- 컨퍼런스
- 야경
- 보안
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |