Linux에서 Windows 커널 디버깅
-
12-12-2019 - |
문제
virtualkd , windbg 및 단일 가상 컴퓨터를 사용하여 Windows 커널을 디버깅하는 데 사용했습니다.
최근에 Linux 컴퓨터가 있습니다. 이제 호스트가 virtualkd / windbg * 를 실행할 수 없을 때 Windows 커널을 디버깅하는 가장 쉬운 방법은 무엇입니까?
솔루션에 두 개의 가상 컴퓨터가 필요하지만 다른 가상 인스턴스 안에있는 인스턴스가있는 경우가 아니라 실제 컴퓨터에서 두 개의 인스턴스가 호스팅됩니다 ...
해당 작업을 수행하기 위해 어쨌든 있습니까?
미리 감사드립니다!
* 와인은 안정성 이유를위한 최후의 수단입니다 ...
해결책
해결! 기본적으로, 나는 serial 연결 (null-modem cable)를 UNIX 도메인 소켓 위에 에뮬레이션하는 2 (VirtualBox) (VirtualBox) VMS 을 사용하여 종료되었습니다. (호스트에서). 자세한 정보는 아래를 읽으십시오 :
하드웨어 설정 * :
- debuggee :
- 기기가 꺼져 있고 직렬 포트 설정을 편집합니다.
- 포트 1 을 사용하고 다음과 같이 값을 할당하십시오. 포트 번호 : com1 , 포트 모드 : 호스트 파이프 , 파이프 생성 : <강력한 > 검사되지 않은 (클라이언트), 포트 / 파일 경로 : / tmp / win_link .
- 위와 동일 (동일한 경로 사용),이 시간 만 생성 파이프 만 확인 (서버)이어야합니다.
디버거 설정 :
- WINDBG를 실행하고 CTRL + K를 눌러 커널 디버깅 을 호출하십시오.
- com 에 입력하십시오 : baudrate : 115200, 포트 : COM1, 재설정 : 0 및 파이프 및 재 연결이 를 확인하십시오 (중요 ).
- 다음과 같은 출력으로 표시됩니다.
Opened \\\\.\com1 Waiting to reconnect...
Debuggee 설정 :
- bootcfg / debug on / port com1 / baud 115200 / id 1 을 실행하십시오. 확인하려면 bootcfg 를 실행하십시오. ** **
- 재부팅.
- 상당히 일찍 부팅 단계에서 다른 기계의 windbg는 디버거가 실행중인 것을 탐지해야합니다.
* 가상 상자가 사용됩니다. VMware / KVM 사용자는 유사한 단계에 따라 동일한 결과를 얻을 수 있습니다. 또한 자세한 내용은 VirtualBox 문서 를 참조하십시오.
** 손님이 Windows XP임을 가정합니다. 나중에 버전에는 설명 된대로 여기 .
다른 팁
다음 지침을 따르십시오. http://www.linux-kvm.org/page/windowsguestdrivers/guestdebugging
매우 유용하지만 Windows XP 시스템에 적용됩니다.Linux 호스트에서 2 개의 Windows7 기반 가상 시스템을 구성 해야하는 경우 다음 링크를 참조 할 수 있습니다. http://www.aldeid.com/wiki/category:digital-forensics/computer-forensics/debugger/kernel
다른 옵션은 현재 커널 디버깅을 가능하게하는 것입니다. 여기에는 일부 제한 사항 그러나 VM을 사용하는 동안 커널 데이터에 액세스 할 수 있습니다.
이 방법은 Windows 8.0 및 Windows Server 2012 이상에서만 작동합니다.
- 명령 프롬프트 창을 관리자로 엽니 다.
-
bcdedit /debug on
를 입력하십시오
- 컴퓨터가 디버그 전송의 대상으로 아직 구성되어 있지 않으면
bcdedit /dbgsettings local
를 입력하십시오.
- 컴퓨터를 재부팅하십시오.
시스템이 재부팅되면 WinDBG
를 Administrator
로 실행하거나 ctrl+k
를 누르거나 File -> Attach to kernel -> Local
로 이동하여 OK를 누릅니다.
이 시점에서 커널 전용 명령을 실행하고 커널 구조에 액세스 할 수 있습니다.
Windows 10 및 새로운 WINDBG 버전 (미리보기)에서 테스트를 거쳤습니다.