- lumenFC 축구 동호회
- 마샤블
- 웍스프레소
- 소셜@나눔<소셜미디어나눔연구소>
- 리버스코어
- LAIN
- LAIN 이사한 블로그
- TeamCR@K
- Sunnyday
- 보안 걱정이
- 리버싱 학습
- securityfirst_jo
- Practical Security Blog
- 세상, 그 유쾌한 전장
- 악성코드관련블로그
- Back to the Mac
- 패킷분석입문
- PacketInside / 네트워크 패킷 분석 블로그
- 침해사고분석 :: 네이버 블로그
- 소프트웨어 기술자경력관리시스템
- JK.Moon
- 자바 온라인학습
- Ezbeat의 도서관
- Dreams of a Final Journey
- IT eBooks - Free Download - Bi…
- Index of /madchat/coding/rever…
- Security Insight
- Reversing war game
- 고길고기
- clamav
- zerowine
- FORENSIC-PROOOF
- jquery 예제
- 조대협의블로그
- 국가과학기술인력개발원 교육포털 사이트
- 빅데이터, splunk
- 지식을 연주하는 사람
- malware analysis system
- 건국대토익스피킹
- 소프트웨어개발 및 협업도구
목록01.About Programming (134)
kisoo
PAGE_FAULT_IN_NONPAGED_AREA (50) 미니필터 드라이버를 가지고 장난좀 치다가 위 오류가 발생했습니다. 덤프를 WinDBG로 열어보면 아래와 같이 메세지가 나옵니다. 올바르지 않은 시스템 메모리를 참조했다. 이 오류는 try-except로 막을수 없다. 철저하게 코드를 조사해서 오류가 나지 않도록 해야 한다. 일반적으로 잘못된 메모리 주소를 접근하거나 이미 지운 메모리를 접근할때 발생하는 오류이다. Invalid system memory was referenced. This cannot be protected by try-except, it must be protected by a Probe. Typically the address is just plain bad or it is p..
Windows 2000은 32bit 주소 공간을 기반으로 하는 메모리 방식인데 이를 관리 하기위해 Virtual Memory Management(VMM)시스템을 사용한다. -> 이미 64비트 윈도우도 나와있다. 이는 실제 메모리에서 처리 될 수 있는 것 보다 더 많은 프로그램을 동시에 처리할 수 있으며, 각 프로세스 별로 독립된 보호모드의 메모리 공간을 할당하기 때문에 한 프로세스에서 일어나는 에러나 문제가 다른 프로세스에 영향을 줄 수 없도록 설계되어 있다.->그러나 커널 프로그램밍은 다르다. 자세한 이유는 나중에 따로 커널 프로그램밍에 대해서 블로그에 정리할 예정입니다. 그때까지 기둘려 주셈^8^ 물리적 메모리 주소는 설치된 메모리의 양에 따라서 한계가 있지만 가상 메모리 주소는 32 bit 이기에 ..
1)!vm 명령을 사용해서 현재 컴퓨터의 메모리 사용량을 살펴 보았습니다. kd> !vm *** Virtual Memory Usage *** Physical Memory: 655234 ( 2620936 Kb) Page File: \??\C:\pagefile.sys Current: 2095104Kb Free Space: 1999612Kb Minimum: 2095104Kb Maximum: 4190208Kb Available Pages: 130442 ( 521768 Kb) ResAvail Pages: 577917 ( 2311668 Kb) Modified Pages: 749 ( 2996 Kb) NonPagedPool Usage: 65522 ( 262088 Kb) NonPagedPool Max: 69378 ( 2..
typedef struct _CHILD_RESULT { DWORD dwDepth; LPVOID lpLeftContext; LPVOID lpRightContext; }CHILD_RESULT, *PCHILD_RESULT; typedef struct _CHECK_RESULT { DWORD dwFlags; DWORD dwCheckResult; CHILD_RESULT stChildResult; TCHAR szResult[SZ_MAXSIZE]; LPVOID lpContext; }CHECK_RESULT, *PCHECK_RESULT; 1) 구조체 형태 파악하기 0:000> dt _CHECK_RESULT WinDbg_dt_test!_CHECK_RESULT +0x000 dwFlags : Uint4B +0x004 dwChe..
커널 스택 사이즈가 12KB로 인해서 커널 모드 (드라이버)개발 할때 주의할 사항에 대해서 알아보겠습니다. [커널 스택 (Kernel Stack)] 커널 모드 루틴은 유저 모드 스택과 동일한 방식으로 동작하는 스택을 가지고 있다. 그러나 커널 스택의 최대 사이즈는 매우 작고 커지지 않기 때문에 아껴서 사용해야 한다. (User Mode Stack : 1MB->부족할 경우 자동으로 사이즈가 커진다. Kernel Mode Stack : 12KB->부족해도 커지지 않는다.) 아래 3가지 TIP은 커널 스택사용할때 주의 사항이다. 1) 재귀 루틴은 커널 스택 사용에 있어 특히 주의를 해야 한다. 보통 드라이버는 재귀적 루틴을 사용하면 안된다. 2) 디스크 I/O 경로는 깊은 계층적 경로를 가지고 하나 이상의 페..
pack 지시자는 이후부터 선언되는 구조체의 정렬 방식을 지정한다. 프로젝트 설정 대화상자에서 구조체 정렬 방식을 각 모듈별로 조정할 수 있지만 pack 지시자는 소스의 중간에서 원하는 구조체에 대해 정렬 방식을 변경할 수 있도록 한다는 점이 다르다. 이 지시자를 사용하면 같은 소스에 있는 두 구조체를 다른 방식으로 정렬할 수 있다. 다음 선언문을 보자. #pragma pack(2) struct st1 { short s; int i; }; #pragma pack(4) struct st2 { short s; int i; }; 이렇게 선언하면 st1 구조체는 2바이트 정렬되므로 6바이트를 차지하며 st2는 4바이트 정렬되므로 8바이트를 차지한다. 프로젝트 설정에 지정된 정렬값을 다른 값으로 바꾸고 싶을 때 ..
윈도우의 스레드는 실행 스레드(EThread-executive thread )에 정의된다. ETHREAD 블록과 여기에서 가리키는 구조체들은 시스템 주소 공간에 위치한다. 예외로 스레드 환경블록(thread environment block (TEB) 만은 프로세스 주소 공간에 위치한다. lkd> dt nt!_ethread nt!_ETHREAD +0x000Tcb : _KTHREAD +0x1c0CreateTime : _LARGE_INTEGER +0x1c0NestedFaultCount : Pos 0, 2 Bits +0x1c0ApcNeeded : Pos 2, 1 Bit +0x1c8ExitTime : _LARGE_INTEGER +0x1c8LpcReplyChain : _LIST_ENTRY +0x1c8KeyedWai..
1 닥터 왓슨은 무엇인가? 유닉스 계열에서는 애플리케이션이 다운되었을 때, 코어 파일이 기본적으로 남지만, 윈도우에서는 그렇지 않다. 코어 파일이 남지 않는다고 해서, 클라이언트는 물론이고 서버도 애플리케이션을 돌리는 컴퓨터에 일일이 디버깅을 위해 비주얼 스튜디오를 깔 수도 없는 일이다. 바로 이럴 때 크래쉬 덤프를 남겨주는 프로그램이 닥터 왓슨이다. 즉 닥터 왓슨은 애플리케이션이 다운되었을 때, 크래쉬 덤프를 남겨주는 프로그램이란 말이다. 닥터 왓슨은 기본적으로 활성화 되어 있지 않다. 활성화하기 위해서는 명령창에서 drwtsn32 -i라고 입력하면 된다. 이는 닥터 왓슨을 기본 디버거로 설정한다. 닥터 왓슨이 생성하는 drwtsn32.log 파일이 어디 생성되는가는 세팅을 통해서 바꿀 수 있다. 명령..
키보드를 이용하여 원하는 시점의 메모리 덤프를 생성하는 방법입니다. 개발 하시다가 이상하게 System Hang이 걸렸거나 할 때 사용하시면 유용하며 실제로 이 TIP 을 사용 하실 일이 꽤 있습니다. ^^ I. 적용 가능 OS: Windows 2K, XP, 2K3 II. 적용 방법: 1. 레지스트리 편집기(Regedt32.exe)를 시작합니다. 2. 레지스트리에서 다음 값을 찾습니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\i8042prt\Parameters 3. 편집 메뉴에서 값 추가를 누른 후 다음 레지스트리 값을 추가합니다. 값 이름: CrashOnCtrlScroll 데이터 형식: REG_DWORD 값: 1 4. 레지스트리 편집기를 끝냅니다..
루트킷 책을 보다가 우연히 검색을 통해서 알게된 API 후킹 라이브러리 입니다. 아직 분석을 다 안해봐서 저도 잘 모릅니다만 루트킷 책을 보면 이해가 되실 것이라 생각 합니다. 그렉 과 제임스가 저자인 '루트킷' 한글판 을 보면 API 후킹 기술과 커널 오브젝트 조작에 대한 기술이 설명 되어 있습니다. 시스템 프로그램을 하시는 분들 이라면 추천 해주고 싶은 책 입니다. MS 자료 는 아래의 주소에 링크 되어 있습니다. http://research.microsoft.com/sn/detours/ 현재 버전은 2.1 이고 Express 버전과 Professional 버전이 있습니다. Express 버전은 비상업용, 연구용으로 공개되어 있으니 다운로드 받으시면 되고 Professional 버전은 돈 주고 구입해..