#------------------------------------------------------- 기존 내용 정리 -------------------------------------------------------------#페이지 테이블 : 각각의 프로세스가 페이지 프레임을 통해 실제 메모리에 어떻게 매핑되는지를 나타내는 매핑 목록페이지 디렉토리 : 페이지 테이블만을 사용하여 페이징을 표현하기에는 너무 양이 어마어마하기 때문에 분담해서 저장하기 위해 한 번 더 쪼개어 페이지 테이블의 엔트리를 저장한 목록, 페이지 디렉토리가 없을 경우 하나의 프로세스마다 대략 1048576(1024*1024)개의 테이블 엔트리를 만들어야 한다. 이 경우 갯수가 너무 많아서 메모리 또한 더욱 복잡해 질거임. 다시 보는..
LOBYTE : 가장 하위 1바이트를 말함, 리틀엔디안으로 들어간 메모리 값 중 가장 오른쪽 값?BYTE1 : 리틀엔디안으로 들어간 메모리 값 중 오른쪽 2번째 값?BYTE2 : 리틀엔디안으로 들어간 메모리 값 중 오른쪽 3번째 값?BYTE3 : 리틀엔디안으로 들어간 메모리 값 중 오른쪽 4번째 값?HIBYTE : 가장 상위 1바이트를 말함, 리틀엔디안으로 들어간 메모리 값 중 가장 왼쪽 값? 복잡하니깐 예제여기서 v13을 예제로 들어보자.v13의 값은 메모리에 리틀엔디안 방식으로 저장되어서 0x64636261로 들어간 것을 볼 수 있다. 이것을 위의 매크로로 표현하면 v13 = 0x61 LOBYTE(v13) = 0x61 BYTE1(v13) = 0x62 BYTE2(v13) = 0x63 BYTE3(v13)..
#------------------------------------------------- 페이징 -----------------------------------------------------------# 여러개의 프로그램을 사용하는데 실제 주소모드와 같이 하나의 물리 메모리에서 모든 프로세스를 매핑할 경우 사용할 수 있는 메모리의 폭이 좁다. 때문에 가상 주소를 사용하여 여러 개의 프로그램이 각각의 메모리 할당을 할 때 혼자만의 메모리 공간을 가지도록 착각하게 되면 효율적이다. 페이징을 할 때 메모리를 일정 크기 단위로 블록을 만드는데 이 페이지 블록을 페이지 프레임이라고 부른다. 그리고 이 페이지 블록은 0번지부터 만들어져 페이지 프레임 0, 1번지는 페이지 프레임 1 같은 식으로 번호를 매긴다. ..
보호되어 있는 글입니다.
DB(데이터베이스) > Table(테이블) > Column(컬럼) DB(데이터베이스) 명령어show databases; => DB 목록 출력create database DB명; => DB 생성use DB명; => 사용할 DB 선택drop database DB명; => DB 삭제 Table(테이블) 명령어show tables; => Table 목록 출력create table table명(column명 자료형(크기)); => Table 생성 ex) create table accounts(id char(20), pw char(20));drop table table명; => Table 삭제 Column(컬럼) 명령어select 가져올 Column명 from 가져올 컬럼이 있는 Table명 where 조건문; =..
Windows ROP(Return Oriented Programming) : Windows 메모리 방어기법 DEP를 우회하기 위한 Overflow 공격기법 DEP에 대한 간략한 내용은 아래 url 참고http://tribal1012.tistory.com/entry/Windows-%EB%B3%B4%EC%95%88-%EA%B8%B0%EB%B2%95 실습 환경Windows XP sp2 영문판 DEP가 보호 중인 상태에서 쉘 코드 실행 접근 오류(Code 0xC0000005)가 발생하여 공격이 실패하는 것을 볼 수 있다. Windows 에서는 Linux와 다르게 특정 API 함수를 사용해서 ShellCode를 실행할 수 있다. 여기서 VirtualAlloc() 함수와 HeapCreate()와 HeapAlloc(..
SEH(Structured Exception Handling) : Windows에서 지원하는 예외처리 중 하나 예외 처리 발생 시 위와 같은 형태로 진행된다.FS라는 Segment Register의 offset[0]의 값을 참조하여 EXCEPTION_REGISTRATION 이라는 녀석을 찾는다.EXCEPTION_REGISTRATION 내부의 Exception Handler가 있는데 이를 통해 예외처리를 하기 위한 예외처리를 호출찾던 예외처리 핸들이 맞을 경우 예외처리 실행, 아닐 경우 prev를 참고하여 다른 EXCEPTION_REGISTRATION를 찾음예외처리가 실행되거나 마지막 EXCEPTION_REGISTRATION에 도달할 때 까지 2~3번 반복 Windows의 SEH 예외처리 방식은 이렇게 진..