- 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
- 건국대토익스피킹
- 소프트웨어개발 및 협업도구
목록전체 보기 (340)
kisoo
비스타 x64(64비트)버전에서 발생한 덤프를 분석해 보았다. 이미 알고 있으시겠지만 xp 에서는 디폴트로 설치된 drwtsn32.exe가 비스타에서는 없어졌다. 개인적으로 많이 아쉽다. 대신 오류가 발생하면 작업관리자에서 오른쪽 버튼 누르고 덤프를 생성해야 한다.(구찮아~) 안좋은점이 있다면 좋아진 점은 꼭 있다.(세상은 공평한가?!) 좋은점은 Hang(CPU 100%)가 되었을 때 기존에는 adplus를 이용해만 했다. 그러나 윈도우 비스타, 윈도우 2008 서버에서는 작업관리자에서 오른쪽 마우스를 클릭해서 바로 덤프를 생성하면 된다. 어제 DUMP를 하나 분석했는데 특이하게 !analyze -v extension 명령을 통해 분석한 오류 결과가 스레트 call stack이 실제 오류가 난 스레드 c..
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월 31일 오후 1시에 비트교육센터 본관 지하2층에서 코아시스 WDM 세미나에 참석 했다. 사전 등록을 하지 않아서 현장 등록을 한 후 자리에 앉아서 강사가 누굴까?? 하며 기다리고 있었다. 드뎌 시작된 세미나.... 시작 부터 끝날때까지 느낀점은.... 내가 확실하게 알고 싶었던 부분을 조금은 알게 되었고 왠지 자신감이 생기게 되었다. 먼가 풀리는 느낌을 가지게 되어서 그런것 같다. 파일 필터 드라이버에 대한 기본 함수 부터 드라이버 스택 , IRQL , THREAD , 동기화 , PNP 드라이버에 대한 실습도 하면서 좋은 정보를 얻을 있었다. 드라이버 교육의 기회가 부족한 국내 실정 이지만 이렇게 좋은 세미나를 자주 찾다보면 정말 드라이버 교육의 오아시스를 찾는 기회가 될 것 같다. 6시에 끝..