일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 8086CPU레지스터
- 백준
- 파이썬신경망
- 딥러닝
- 머신러닝
- 신경망파이썬
- 스트림암호
- C언어알고리즘
- 딥러닝파이썬
- 항등함수
- C알고리즘
- C언어 알고리즘
- 파이썬
- 신경망
- 정보보안
- 백준알고리즘
- 신경망구현
- 신경망 학습
- BOJ
- FTZlevel10
- 활성화함수파이썬
- 달고나bof
- 소프트맥스함수
- 버퍼오버플로우
- 밑바닥부터시작하는딥러닝
- 알고리즘
- 보안
- c언어
- BOF
- 인공지능
- Today
- Total
목록분류 전체보기 (235)
HeeJ's
1. 메모리 구조 8086 Memory Architecture 인텔 8086이란? 인텔사에서 개발한 16비트의 CPU이다. 8086은 20비트의 메모리 주소 버스를 갖고 있어 총 1MB의 물리 메모리를 다룰 수 있다. '세그멘테이션'이라는 방식을 통해 메모리에 접근하도록 되어있다. High address Available Space Kernel Low address 시스템이 초기화되기 시작하면 시스템은 커널을 메모리에 적재시키고 가용 메모리 영역을 확인하게 된다. 운영에 필요한 기본적인 명령어 집합을 커널에서 찾기 때문에 커널은 반드시 본인의 위치에 있어야 한다. 커널은 64kByte 영역에 자리잡지만 이를 확장하여 요즘 운영체제는 더 큰 영역을 사용한다. 운영체제는 하나의 프로세스를 실행시키면 이 프로..
스트림 암호 대칭키 암호의 구조 중 하나로, 평문과 같은 길이의 키 스트림(유사 난수)를 연속적으로 생성하여 암호화한다. 유사난수; 난수를 흉내내기 위해 알고리즘으로 생성되는 값 평문과 키를 비트단위로 XOR하여 암호문을 얻는다. 하드웨어 구현이 간편하고, 속도가 빠르기 때문에 무선통신에서 주로 사용한다. 종류 1) 동기식 스트림 암호 2) 비동기식 스트림 암호 / 자기동기 스트림 암호 동기식 스트림 암호 암호화할 비트와 같은 위치의 결과 비트가 변경된다. 그렇기 때문에 전송 도중 비트가 변조되어도 후속 암호문에 오류의 영향이 끼치지 않는다. 전송 오류에서 비트가 사라지거나, 잘못된 비트가 추가될 경우 오류가 난 시점 이후의 복호화가 실패되므로, 암호화 및 복호화에서 상호 동기화가 필수적이다. 변조를 하..
공유메모리? 프로세스는 자신의 업무를 수행하기 위해 필요한 자료를 저장하기 위한 메모리 공간을 갖게 된다. 이러한 메모리 공간에는 CPU에 의해 수행되는 명령어들, 프로그램 시작 시 정의되고 초기화된 데이터, 프로그램 시작 시 정의되었지만 포기화되지 않은 데이터, 함수호출에 필요한 정보, 동적할당이 이루어지는 데이터 등이 들어가게 된다. 이러한 데이터를 저장하게 사용하기 위한 메모리 공간을 커널에 요구해 할당받아 사용하게 되는데, 이러한 메모리 공간은 기본적으로 메모리를 요청한 프로세스만이 접근가능하도록 되어있다. 하지만 가끔은 여러개의 프로세스가 특정 메모리 공간을 동시에 접근해야할 필요가 있을 때가 있다. 공유 메모리는 이러한 작업을 위한 효율적인 방법을 제공한다. 공유 메모리는 여러 IPC 중에서 ..
엔트로피란 정보량 또는 정보의 불확실도를 측정하는 수학적 개념이다. 확률이 낮을수록, 어떤 정보일지는 불확실해지고, 이때 '정보가 많다', '엔트로피가 높다.'라고 표현할 수 있다. ex) 주사위 던기지의 엔트로피가 동전 던지기의 엔트로피가 크다고 할 수 있다. 정보이론의 기본은 어떤 사람이 정보를 더 많이 알수록 새롭게 알수있는 정보는 적어진다는 것이다. 보안에서의 정보 엔트로피 문자 배열로 간주되는 영어 텍스트의 경우, 한 메시지에 들어갈 수 있는 정보량의 비트 수를 구해보려한다. a~z까지의 알파벳 100글자가 적혀있는 txt파일이 있다. 이 파일은 100byte(=800bit)의 크기를 가진다. 하지만, 이 파일은 26가지의 글자(a~z)만 담을 수 있기 때문에 실제 담을 수 있는 정보량은 26^..
머신러닝은 데이터 가공/변환, 모델 학습/예측, 평가의 프로세스로 이루어져있다. 머신러닝; 판단력을 기계에게 부여하는 기술 -> 여기서, 판단력을 '모델'이라고 한다. (판단력을 인간으로 치면 '뇌'에 해당한다고 볼 수 있다.) 러닝 모델은 커다란 함수로 구성되어있다고 할 수 있다. 일반적인 머신러닝의 형식은 모델 정하기 -> 모델 수식화하기 -> 모델 학습하기 -> 모델 평가하기 로 볼 수 있는데, 이 말은 즉, 모델이 머신러닝의 핵심이라고 볼 수 있다. 모델은 크게 간단한 모델, 복잡한 모델, 구조화된 모델로 볼 수 있다. 간단한 모델 데이터 구조가 간단하다는 뜻 데이터 구조가 간단하려면, 모델은 아주 강력한 가정을 해야한다. 대부분 선형모델을 이야기하며, 이해하기 쉽다. 단점: 복잡한 관계는 학습할..
bof, 버퍼오버플로우 문제이다. level10의 권한을 얻으려면 buf2의 앞부분이 go가 되어야 한다. 하지만 입력받는 부분은 buf[10]이 되는데, buf의 공간은 10인데, 40만큼 입력받아 이 부분이 문제가 되는 것 같다. /usr/bin/bof를 실행시켜보면 특정 문자열을 입력받고, 그대로 종료된다. 이제 buf와 buf2의 위치를 확인해보기 위해 gdb로 컴파일해주었다. Permission denied.로 위 파일은 권한이 거부되었다. 그래서 bof.c라는 파일을 tmp에 만들어주었다. 이제 gdb를 이용해 컴파일해주었다. 어셈블리언어로 확인해주었다. buf은 ebp-40, buf2는 ebp-24로, buf에서 16바이트를 채우면 buf2로 버퍼가 채워지는 것 같다. 이렇게 코드에서 Goo..
Rekall에서의 dlllist 플러그인은 Volatility보다 훨씬 많은 dll 목록이 있었다. 그 중 ntdll.dll를 Volatility과 동일한 방법으로 _LDR_DATA_TABLE_ENTRY 구조체의 InLoadOrderLinks 값과 InMemoryOrderLinks 값을 우회해보고 Rekall에서 dlllist 영역 은닉을 시도해보았다. _LDR_DATA_TABLE_ENTRY 구조체의 InLoadOrderLinks 값과 InMemoryOrderLinks 값을 변조해주었다 Volatility와 같은 방법으로 진행해주었지만, Rekall에서는 은닉되지 않았다. ldrmodules에서도 은닉된 흔적을 찾을 수 없었다. Rekall에서 dlllist의 은닉 흔적을 발견할 수 없다.
[18] dlllist 우회하기(2)(DLL/THREAD) :: Anti Memory Forensics/Volatility 이어서 ldrmodules 앞서 dlllist가 은닉되는 것을 확인해주었지만, dlllist가 은닉되었다고 DLL이 전부 은닉된 것은 아니다. ldrmodules라는 플러그인으로 확인해주면 dlllist에서 숨겨진 영역을 확인할 수 있다. 따라서 InInitializationORderModuleList영역도 우회를 진행해주어야 한다. 이 주소(0x174E67F0)에는 InInitializationOrderModuleList의 Flink값인 0x00372F60은 다음 dll인 wow64.dll을 가리킨다. 이 값을 _PEB_LDR_DATA의 InInitializationOrderMod..