2017-01-10 7 views
2

! ed 명령을 사용하여 커널 디버그 모드에서 실행중인 실제 메모리를 작성하기 위해 WinDbg 스크립트를 작성하고 있습니다.

! ed는 주어진 값으로 수동으로 실행할 때 잘 작동합니다. !ed 9182f084 8

필자는이 값을 의사 레지스터에서 가져 오는 스크립트에서 실행하려고합니다.

r $t0=8 
!ed 9182f084 @$t0 

내가 아주는이 경우에 쓰는 가치를 알아낼 수는 없지만, 그것은 명백히 난을 기대하고있는 정수 값 8되지 않습니다 :하지만 다음은 작동하지 않습니다.

어떤 힌트를 주셔서 감사합니다!

답변

1

나를 위해 작동하지 않습니다. ! ed 명령이 인수를 잘못 구문 분석하는 것 같습니다. 무언가를 완전히 무효로 지정할 수 있으며 단지 명령을 자동으로 무시합니다.

예를 들어, 심지어이 함께 오류가 발생하지 않습니다!의이 별명을 사용하는 것입니다 주위를 제외하고

kd> !ed 4318b20 XYZ 

을 에드의 자신의 버전을 쓰는 유일한 방법은 내가 얻을 생각할 수

kd> r @$t0 = 8 
kd> as /x ${/v:t0Val} @$t0 
kd> !ed 4318b20 ${t0Val} 
kd> !dd 4318b20 L1 
# 4318b20 00000008 

"8"을 지정하는 아주 어리석은 방법이지만 스크립트에 넣으려는 경우 작동합니다.