본문 바로가기

분류 전체보기

(267)
리눅스 마스터 오답문제 정리 다음 중 파일 속성에 대한 문자와 의미에 대한 설명으로 틀린 것은?c : 문자 특수 파일 d : 디렉토리 파일b : 배치파일l : 기호링크 답: 3 다음 중 새로 만들어 지는 파일 또는 디렉토리에 대해서 권한을 제한하는 명령으로 알맞은 것은?chownchshchgrpumask chown 소유권,chsh 쉘 변경chgrp 그룹변경답: umask 다음과 같이 사용자 tux1, 그룹 penguin 소유인 디렉토리 /home/tux1 를 포함한 하위 디렉토리, 파일의 소유자를 linus 로 변경하려고 할 떄 알맞은 것은? 보기drwxr-xr-x 3 tux1 penguin 4096 Dec 21 10:17 /home/tux1 chmod -R linus /home/tux1chown -R linus /home/tux1..
Stack Frame Pointer Overflow -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ::: Stack Frame Pointer Overflow 개념 이해하기 ::: written by naska21 in WiseGuys -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- :: 목차 :: 0x00. 준비하기 0x01. 이해하기 0x02. 마무리 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 0x00. 준비하기 이 문서를 공부 하기 이전에 이 문서를 읽는 사람에겐 스택에 관한 배경 지식..
gate -> gremlin (gdb 기초 사용법) 기초 gdb 사용법 메모리 조회 x/[범위][출력형식][범위의 단위] [메모리 주소나 함수명]범위 : 기본 4byte 출력형식t : 2진수 o : 8진수 d : 부호없는 10진수 u : 부호없는 10진수 x : 16진수 (주로 이걸 사용할 듯) c : 최초 1바이트 값을 문자형으로 출력 f : 부동소수점 a : 가장 가까운 심볼의 오프셋을 출력 s : 문자열로 출력 i : 어셈블리 형식으로 출력범위의 단위b : 1 byte 단위 h : 2 byte 단위w : 4 byte 단위g : 8 byte 단위 Ex)x/200x $esp : esp 주소로 부터 16진수로 200바이트 만큼 보기 브레이크 포인트break func : func 함수의 시작부분에 브레이크 포인트 설정 break 10 10번째 줄에 브레이크..
책 원본 소스파일 # -*- coding: cp949 -*- from pydbg import * from pydbg.defines import * import struct import random def printf_randomizer(dbg): parameter_addr = dbg.context.Esp + 0x8 counter = dbg.read_process_memory(parameter_addr,4) #read_process_memeory returns binary string counter = struct.unpack("L",counter)[0] print "Counter: %d" % int(counter) random_counter = random.randint(1,100) random_counter = stru..
Memory Breakpoint 이론, 함수 정리 메모리 브레이크 포인트는,1. 브레이크 포인트를 설정할 메모리 영역의 베이스 주소와 페이지 크기를 구한다.2. 해당 메모리 영역 페이지의 접근 권한을 변경해 보호 페이지 (Guard Page) 로 설정한다.3. CPU가 보호 페이지에 접근하려 하면 GUARD_PAGE_EXCEPTION 가 발생.4. 이 예외를 처리하는 핸들러에서 페이지 속성을 원래대로 바꾸고 실행이 계속되도록 한다. 페이지의 크기를 계산하려면 먼저 운영체제에게 디폴트 페이지 크기를 질의해야 한다.이를 위해 GetSystemInfo() 함수를 이용해 SYSTEM_INFO 구조체 정보를 구한다.SYSTEM_INFO 구조체의 dwPageSize가 시스템의 페이지 크기 값을 나타낸다. 페이지의 접근 권한 정보를 구하고 변경하는 방법은 ,1. 메..
Hardware Breakpoint 까지 이론, 함수 정리 하드웨어 브레이크 포인트는 CPU 디버그 레지스터의 특정 비트 값을 이용한다.하드웨어 브레이크 포인트를 구현 할 때 가장 중요한 점은네 개의 디버그 레지스터 중에서 어느 레지스터가 사용중이고 어느 레지스터가 사용 가능한 상태인지 항상 알고 있어야 한다는 것이다.--> 항상 사용 가능한 디버그 레지스터를 이용해 하드웨어 브레이크 포인트를 설정하는지 확인 해야 함--> 사용 중인 레지스터를 사용할 경우 디버거가 엉킬 수 있음 1. 프로세스 내의 모든 쓰레드 리스트를 구한다.2. 각 쓰레드의 CPU 컨텍스트 레코드를 구한다.3. 구한 쓰레드의 모든 context 레코드의 디버그 레지스터 중 하나 (DR0 ~ DR3 중 사용 가능한 디버그 레지스터) 에 원하는 브레이크 포인트 주소 설정4. DR7 레지스터의 비..
Soft Breakpoint 까지의 이론 정리 소프트 브레이크 포인트를 설정하려면 프로세스의 메모리를 읽고 쓸 수 있어야 하는데, 이를 위해 ReadProcessMemory() 함수와 WriteProcessMemory() 함수를 이용한다.아래는 두 함수의 프로토 타입이다. BOOL WINAPI ReadProcessMemory( HANDLE hProcess , LPCVOID lpBaseAddress, LPVOID lpBuffer‘, SIZE_T nSize, SIZE_T* lpNumber‘OfBytesRead ); BOOL WINAPI riteProcessMemory( HANDLE hProcess , LPCVOID lpBaseAddress , LPCVOID lpBuffer, SIZE_T nSize, SIZE_T* lpNumber OfBytes itten..
14.9 ~ 15.1 모두 수고하셨습니다. 영재원을 처음 갔을 때 인성교육부터라온에서 실시한 방학 집중 교육 까지입학할 때는 그저 설레기만 했는데 지금은 수료하고 나니 뿌듯합니다. 서울여대 정보보호 영재교육원 1기 고등 전문 1반 모두 수고하셨습니다 :)