카테고리 보관물: 프로그래밍/참고자료

WDK build 버그???

그동안 2003 DDK 를 설치해서 사용하다가 WDK 6000(Vista DDK)를 설치하고 사용하고 있었는데 이런 버그가 있었네요. (물론 버그인지 아닌지는 확실히 모르겠지만)

2003 DDK 이전까지는 드라이버가 있는 소스 디렉토리 경로에 한글이 있어도 상관이 없었는데 Vista DDK 에 있는 build 는 에러가 나네요. 그것도 아래와 같이 세가지 경우가 납니다.

1. 경로명에 한글User inserted image이 있을 경우

즉.. SOURCES 파일을 찾지 못하는 에러가 나타나서 허무하게 끝나버립니다.

2. 경로명에 ‘숫자+한글’ 이 있는 경우
User inserted image

즉, 위와 같이 ‘1드라이버’ 와 같은 경우에는 프로그램 오류창이 뜹니다.

3. 위 두가지가 혼합 된 경우
User inserted image

‘XXX ignoring second instance of XXX’ 에러가 발생하네요. 문자열 비교 에러 같긴 한데..

아무튼 위와 같은 문제가 있는데 정확히 버그인지, WDK 오면서 이와 관련된 설정이 더 생겼는데 제가 모르는 것인지는 모르겠습니다.

WDK 6000 의 XP x86 Checked Build Environment 에서 테스트 하였습니다.

정보보호 관련 웹사이트

한국정보보호진흥원(KISA)에서 매달 발행되는 정보보호뉴스(Vol.103 April 2006)에 ‘선수’들이 즐겨찾는 진짜배기 웹사이트(정보보호관련)라는 기사가 기재되었네요. 기사에 기재된 내용을 발췌해 보았습니다.

FIRST Newsroom : http://www.first.org/newsroom/globalsecurity
국제침해사고대응협력팀(Forum of Incident Response and Security Teams)에서 제공하는 뉴스룸 서비스로 일반인들에게 정보보호와 관련된 사소한 뉴스부터 전문적인 기술정보까지 제공한다.

Security NNOV : http://www.security.nnov.ru
러시아 사이트로 범용적인 운영체제와 애플리케이션의 새로운 공격 및 대응 방법론이 소개되고 있다.

OWASP : http://www.owasp.org
웹 애플리케이션 및 웹 보안과 관련된 사이트로 웹 보안 분야에 대한 많은 정보가 망라되어 있다.

HITBSecConf : http://conference.hackinthebox.org
HITBSecConf 는 말레이시아에서 해마다 개최되는 컨퍼런스로 아시아의 데프콘으로 불릴 만큼, 많은 발표자료(PPT, 동영상)들이 공유돼어지고 있다.

Metasploiit : http://www.metasploit.com
모의해킹 전문 소프트웨어 metasploit framework 를 개발하고 있는 사이트로 취약점을 빠르고 편하게 테스트하고 연구 할 수 있다.

EU Data Protection : http://europa.eu.int/comm/justice_home/fsj/privacy
유럽연합이 시행하고 있는 개인정보 보호에 대한 정보를 제공한다.

Xcon : http://xfocus.org
새롭게 강력한 해킹 진원지로 떠오른 중국에서 매년 개최되는 컨퍼런스 사이트로, 중국만이 가지고 있는 해킹기술의 색깔을 확인할 수 있다.

Shmoo : http://Shmoocon.org
새로운 보안 위협 중 하나로 떠오른 무선 네트워크 취약점에 대한 정보 및 기술을 연례 컨퍼런스 개최와 발표 자료를 통해 공유하고 있다.

대학 CERT 연합 : http://u3certs.org
국내 대학들의 CERT 구축을 돕기 위한 사이트로, 대학 내 CERT 기구들의 기술정보가 비교적 활발하게 교류되고 있으며, 국내 CERT 구축에 많은 도움을 줄 수 잇을 것으로 보인다.

NIST : http://csrc.nist.gov
미국 NIST(National Institute Stnadard and Technology)가 제공하는 자료를 모아놓은 사이트로, 기업내에서 정보보호 정책과 관련된 내용을 정리해야 할 경우 많은 도움을 얻을 수 있다.

Packetstorm : http://packetstorm.linuxsecurity.com
보안에 필요한 코드를 작성하는데 큰 도움을 줄 수 있는 사이트 중 하나로 보안 포털 사이트에 가깝다고 볼 수 있다.

예전에 정보보호뉴스를 신청하여 우편으로 매달 받아보고 있지만.. 가입 페이지를 소개해 드리고 싶은데, 찾지 못하겠네요. 원하시는 분은 잘 찾아보시기 바랍니다.

Windows Vista 5308 드라이버 테스트 팁

처음 Windows Vista 베타버전을 설치했을때는 스크린 샷만 찍고 NDIS 버전 확인하고 그냥 지웠는데.. 물론 빌드 넘버도 확인하지 않았었다.
그래서 그 이전부터 그랬는지, 5308 버전 부터 그런지는 확인할 수가 없다는… T_T.

우선 Administrator 계정이 없고.. 로그인도 안된다는데.. 그리고 커널 디버깅 설정을 하기 위한 boot.ini 도 없어졌다네요. 체크드 빌드 버전 설치 방법도 바뀌고.. DbgPrint 출력이 보이지 않는다고… (대체 어떻게 드라이버를 테스트 하라는 거야…)

그래서 OSR Online에서 이 네가지 문제에 대한 팁을 소개하고 있는 기사를 실었네요.(물론 이 기사를 보고 그러한 문제가 있었는줄 알게되었습니다. ㅋㅋ)

1. Administartor 계정 활성화
– 드라이버 테스트시에 Administrator 계정으로 로그인 해야할 필요가 있습니다. 이때를 위한 계정 활성화 방법 : http://windowsconnected.com/blogs/jerry/archive/2006/02/22/1028.aspx

2. 커널 디버거 활성화
– boot.ini ASCII 파일이 없어지고 XML 파일로 대체되었다는 군요. bcedit 유틸리티를 이용해서 편집 해야 한다네요 : http://www.microsoft.com/whdc/driver/tips/debug_vista.mspx

3. 체크드 빌드 버전 인스톨
– 이것도 bcedit를 이용해야 한다고…

4. DbgPrint 출력 보이기
– Vista에는 DbgPrint 출력이 안되도록 디폴트로 설정되어 있음. 그래서 레지스트리와 커널 디버거에 필터 설정 : http://www.osronline.com/article.cfm?article=295

이 전체 글의 원문은 http://www.osronline.com/article.cfm?article=440 여기서 볼 수 있습니다.

Sparse File

Windows Live Messenger Beta를 설치하면

“C:\Documents and Settings\로그온계정\Local Settings\Application Data\Microsoft\Messenger\메신전계정\SharingMetadata\Working\” 디렉토리에 숨겨진 시스템 파일로 “SimilarityTable_1” 이 있다.
등록정보를 보면 아래와 같이 나타난다.파일크기 8G… 헉…
그러나 자세히 보면 디스크 할당 크기는 1M 남짓이다.

이러한 파일을 Sparse File 이라고 하는데 즉.. NTFS5 에서만 지원하는 파일 타입으로, 아래 첫번째 그림과같이 영역만 크게 잡혀있고.. 실제 파일I/O 요구시에는 두번째 그림과 같이 실제 데이타만 사용되어진다.

[NTFS.com 에서 발췌한 그림]

더많은 정보를 원하시면..
NTFS Spase Files : http://www.ntfs.com/ntfs-sparse.htm
Sparse File Operations : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/sparse_file_operations.asp

XP SP2에 추가되었다는 netstat의 -b 옵션

잠도 안오고 해서 집 PC에 VMWare를 설치하고 Windows XP를 설치하는 동안 Command Prompt 띄우고 끄적대다가 발견한 사실.. (다 알고 있었던 건가 ^^;)

네트워크 상태를 확인 하는 용도로 많이 사용하는 명령어중에 netstat 명령어가 있다.. (참 유용한 툴이고 자주(?) 사용하는 툴중 하나이다.)
그런데, XP SP2 의 netstat에는 ‘-b’ 옵션이 있는게 아닌가.. 분명 예전엔 없었던것 같은데.. 찾아보니 SP2 부터 추가되었다는…

‘-b’ 옵션은 각 연결에 관련된 프로그램 정보를 보여주는 옵션이다. 물론 프로세스 ID도 포함해서 말이다..그럼 기존의 ‘-o’ 옵션은(프로세스 ID를 보여주는) 이제 쓸 필요가 없게되었다는…

프로세스ID 와 프로그램명이 표시되는게 보이죠 (그림을 클릭하시면 원래 사이즈로 보입니다.)

추가로 또하나 알게된 명령어(나만 몰랐었나..)
tasklist : 작업관리자와 거의 같은 기능을 수행하죠.
‘tasklist -svc’는 각 프로세스에 있는 서비스를 표시해 줍니다.
작업관리자에는 이러한 기능이 없죠…아마도..

프로세스와 관련 서비스가 표시되는게 보이죠 (그림을 클릭하시면 원래 사이즈로 보입니다.)

netstat -b tasklist -svc 만 조합해도 꽤 괜찮은 툴이 되겠죠…..

메모리 관리 : 드라이버 개발자가 반드시 알아야 하는..

MS WHDC (Windows Hardware and Driver Central) 에 있는 드라이버 개발자가 알아야 하는 메모리에 대해 정리된 문서.. 올라온지는 꽤 됐지만.. 꼭 읽어봐야할 내용입니다.

User Mode 에서 Win32 어플리케이션을 개발할때야 잘못된 메모리 사용이야 그냥 에러창에 어플리케이션이 죽을(?) 뿐이지만.. Kernel Mode 에서는 왠만하면 BSOD(Blue Screen of Death)를 일으키고.. 버그 잡기에도 골치가 아픈 부분이죠..

정확한 메모리에 대한 이해를 통해서 좀 더 안전한(?) 드라이버를 개발할 수 있도록 노력은 필수겠죠.

문서 다운로드/보기

[#M_ 내용.. | 닫기.. |
? Virtual and Physical Memory

? Virtual Address Space

? Physical Address Space

? Memory Descriptor Lists

? Pool Memory

? Kernel Stack

? Memory Allocation Techniques

? Accessing Device Registers

? Accessing Memory for I/O Buffers

? Mapping Device Memory and Registers into User Space

? Shared Memory and Synchronization

? Testing and Troubleshooting_M#]