2010-04-15 8 views
2

Windows XP 시스템을 원격으로 디버깅하고 있습니다. 내 드라이버 중 하나가 주소 0xb2c4c000에서 0xb2cb9680까지로드됩니다. 내가 IDA 내 드라이버를 열 때Windbg + IDA : 모듈에서 주소를 계산하십시오.

는 이제, 내가 효과적으로 내 IDA는 windbg를에 주소를 일치시킬 수 있습니다 어떻게 00017619.

에 있습니다에 중단 점을 설정하려는 오프셋?

나는 0xb2c4c000 + 00017619 = 0xB2C635F7을 합하여 windbg에서 'u'명령을 사용하여 그 주소를 분해하는 명백한 시도를했습니다. 그러나 결과는 IDA의 어셈블리와 일치하지 않았습니다.

측면 질문 : windbg에서 실행중인 명령을 취소 할 수있는 방법이 있습니까? 여러 번 명령을 실행하여 처리하기까지 했으므로 필요에 따라 명령을 취소 할 수 있기를 원합니다. 그래서 나는 계속 일할 수 있습니다.

감사합니다.

+1

을 추가하는 진입 점 올바른 방법으로 만 가정하기 때문에 - 잘 행동 확장 인 (CTRL-휴식 (. ALT CTRL-C)를 처리 너무 오래 걸리는 명령을 취소하는 방법) – deemok

+0

IDA에서 어느 오프셋을 보았습니까? 나는 당신이 파일 오프셋을 보지 않았다고 가정한다 ... 당신은 당신의 드라이버 모듈을위한 기본 주소를 살펴야하고, 그 다음 오프셋에서 그것을 뺀다. –

답변

1

최신 버전의 IDA Pro를 사용하면 WinDbg 디버거 플러그인을 통해 장치 드라이버를 디버깅 할 수 있습니다.

또 다른 대안은로드 된 모듈의베이스와 일치하도록 데이터베이스를 리베이스 할 수 있으며 idb와 windbg 세션 사이에 일대일 매핑이 있다는 것입니다.

1

잘못 추가하는 중입니다. IDA는 당신의 두번째 질문에 대한

0xb2c4c000 + 00007619

(10000 substracted한다)한다