뭥미

    GetProcessMemoryInfo 함수

    BOOL WINAPI GetProcessMemoryInfo (_In_ HANDLE hProcess,_Out_ PPROCESS_MEMORY_COUNTERS ppsmemCounters,_In_ DWORD cb); hProcess : 프로세스에 대한 핸들, 이 때 주로 OpenProcess를 통해서 핸들을 통할텐데,dwDesiredAccess에 인자를 PROCESS_QUERY_INFORMATION 또는 PROCESS_QUERY_LIMITED_INFORMATION 액세스 권한을 줘야한다. ppsmemCounter : 프로세스의 메모리 사용에 대한 정보를 받는 PROCESS_MEMORY_COUNTERS 또는 PROCESS_MEMORY_COUNTERS_EX 구조체에 대한 포인터 cb : ppsmemCounters ..

    PROCESS_MEMORY_COUNTERS_EX 구조체

    typedef struct _PROCESS_MEMORY_COUNTERS_EX { DWORD cb; DWORD PageFaultCount; SIZE_T PeakWorkingSetSize; SIZE_T WorkingSetSize; SIZE_T QuotaPeakPagedPoolUsage; SIZE_T QuotaPagedPoolUsage; SIZE_T QuotaPeakNonPagedPoolUsage; SIZE_T QuotaNonPagedPoolUsage; SIZE_T PagefileUsage; SIZE_T PeakPagefileUsage; SIZE_T PrivateUsage; } PROCESS_MEMORY_COUNTERS_EX, *PPROCESS_MEMORY_COUNTERS_EX; MSDN에 보면 이렇게 나와있..

    QueryFullProcessImageName 함수

    BOOL WINAPI QueryFullProcessImageName (_HANDLE hProcess,_In_ DWORD dwFlags,_Out_ LPTSTR lpExeName,_InOut_ PDWORD lpdwSize); hProcess : 프로세스에 대한 핸들, 이 때 주로 OpenProcess를 통해서 핸들을 통할텐데,dwDesiredAccess에 인자를 PROCESS_QUERY_INFORMATION 또는 PROCESS_QUERY_LIMITED_INFORMATION 액세스 권한을 줘야한다.일반적으로 PROCESS_ALL_ACCESS 를 줬지만, QueryFullProcessImageName 함수를 사용한다. dwFlags : 0을 주면, Win32 경로 형식을 사용 PROCESS_NAME_NATIVE..

    OpenProcess 함수

    OpenProcess 함수 HANDLE WINAPI OpenProcess(_In_ DWORD dwDesiredAccess,_In_ BOOL bInheritHandle,_In_ DWORD dwProcessId,); MSDN에서 보면, dwDesiredAccess : 어떻게 접근할 것인가 정하는 옵션인데,주로 PROCESS_ALL_ACCESS 로 사용하여 모든권한을 가질 수 있었다. bInheritaHandle : PID로 접근한 object를 현재 이 함수를 실행하고있는 프로세스에 상속할지 결정하는 인자 dwProcessId : 접근할 목표 Process의 PID 0 or NULL 을 입력하면 모든 Process에 대해 접근한다. 필요 Header 는 WinBase.h 윈도우 8은 Processthread..

    ZeroMemory 와 memset

    ZeroMemory 와 memset 을 자주 본다. void ZeroMemory{PVOID Destination, SIZE_T Length}; Destination : 0 으로 채울 메모리 블럭의 시작 주소를 가리키는 포인터Length : 0으로 채울 크기 Header : WinBase.h (include Windows.h) WINBASE.H 를 보면,#define ZeroMemory RtlZeroMemory WINNT.H 를 보면 #define RtlZeroMemory(Destination, Length) memset(Destination, 0, Length) 근본적으로보면 ZeroMemory는 memset을 사용하고 있다고 볼 수 있지 않을까 생각이 든다. void *memset(void * dest..

    Pwnable.kr 1번문제 fd

    Pwnable.kr 1번문제 fd

    Pwnable.kr 1번 문제 fd Toddler's Bottle Toddler는 걸음마를 배우는 아이란다아마 난이도를 의미하는것같다 먼저 준비물이 있다. 리눅스 계열의 운영체제 및 putty 가 필요하다 나는 우분투를 쓸 예정이며 리눅스계열의 운영체제가 있다면 putty는 그닥 없어도 된다. 리눅스계열이라면 그냥 저대로 치면 된다 당연히 pw 부분을 제외하고Putty를 사용한다면 fd@pwnable.kr Ip칸에 입력해주고, 포트번호를 22번에서 2222번으로 변경해주고 하면된다. 접속이 완료된 후 ls 를 입력하면 파일목록이 뜬다 당연히 flag가 답인 것 같은데flag를 쉽게 보여줄리 없음vi fd.c 소스부터 보면 대충 argument 가 2개 미만이면 종료 시키는 소스부터argument를 입력받..

    pwnable.kr 공부

    시스템 해킹은 pwnable.kr 으로 시작하려고한다. 시스템 해킹 관련 공부에 추천할 책이 있다면 댓글로남겨주세용~ 이제부터 1주일에 1개?에서 풀어볼예정이고, 풀어보면서 헤매는 문제는 일요일까지 도전해서 안되면 풀이과정을 찾아볼예정이다.

    웹보안공부 (Webhacking.kr) 회원가입 및 1번

    오늘은 Webhacking.kr가입 및 1번 문제를 풀어봤다. 정답은 가르쳐주면서 풀고 싶지만, 내가 훗날에 이거 보더라도 힌트만으로 풀고 싶어답 보다는 힌트 및 팁을 쓰고싶다. 먼저 가입절차는, HTML 문법을 볼 줄 알고, Chrome 을 사용한다면 F12(개발자도구 ) 를 사용할 줄 안다면, 가입페이지를 볼 수 있을 것 같다. 가입절차에 보면 인코딩 또는 암호화 된 문장이 보인다. 디코딩 또는 복호화를 하면 되겠지? 가입절차가 마무리가 되며, 이제부터 배점 낮은걸로 풀려고한다..--> 사실 홍길동문제(2번) 를 풀고 블로그 게시하려했는데 그게 1주일이 지났다.. --> 이렇게 팁을 주실 수 있는 분은 팁좀 주세요ㅎㅎ 이제 1번문제는 If문 볼 줄 안다면은 감은 올 것이다. 그러나 , 나는 어떻게 해..

    웹보안 공부 시작

    웹보안 공부 시작

    나와 웹 보안을 같이 공부할 친구이다.책 두께가 어마어마하다.1100쪽 정도 되던데, 현재 2,3장 HTTP 프로토콜에 개념과 세션 등 기본 개념을 공부해봤다.공부 개념은 천천히 정리해서 올려볼 예정이다.이 책을 마무리 할 무렵에는 웹보안에 빠삭한 정보보안학생이 되었으면 좋겠다.

    버퍼오버플로우 공격

    먼저 간단히 요약하자면, 버퍼오버플로우 공격 이란? --> 비정상적인 데이터를 많이 주입하여, 오류를 발생시키거나 임의의 악성코드를 실행하게 만드는 공격 기법 BOF 라고도 불리움 이 부분 공부하면서 어셈블리의 개념이 필요하다고 생각이 들었다필자는 타과 수업에 어셈블리어 수업을 들어 이해가 쉬웠다.--> 추후에 공부할 포멧스트링 공격도 어셈블리 개념이 쪼금 필요한 것 같더라.. 이해하기 쉽게 얘기하면, 함수의 시작위치를 저장하는 역할을 하는 EBP(Extended Base Pointer Register) 의 영역이 입력 값에 의하여 침법을 당하여 EBP의 값이 변하는 것이다. 사실 버퍼오버플로우 공격의 종류는 많다 먼저 가벼운 버퍼오버플로우의 예방법은시큐어 코딩가이드에서도 gets,scanf 등 버퍼의 ..