1

Dr Watson 로그에 다음 항목이 있습니다. "ds : 0023 : 003a3000 = ??"의 의미는 무엇입니까? FAULT 라인의 오른쪽에있는 입구의 일부입니까?ds : 0023 : 003a3000 = 무엇입니까 ?? 드워트 슨의 마지막에 물건?

*----> State Dump for Thread Id 0xdfc <----* 
eax=00000000 ebx=00390320 ecx=0854ff48 edx=09e44bfc esi=00012ce1 edi=0854ff61 
eip=00465c51 esp=0854ff30 ebp=00000000 iopl=0   nv up ei pl zr na po nc 
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000    efl=00010246 

function: sysman 
     00465c37 49    dec  ecx 
     00465c38 eb02    jmp  sysman+0x65c3c (00465c3c) 
     00465c3a 33c9    xor  ecx,ecx 
     00465c3c 8d542428   lea  edx,[esp+0x28] 
     00465c40 52    push edx 
     00465c41 51    push ecx 
     00465c42 8d4c2418   lea  ecx,[esp+0x18] 
     00465c46 e8d5c0fcff  call sysman+0x31d20 (00431d20) 
     00465c4b 33c0    xor  eax,eax 
     00465c4d 8d4c2418   lea  ecx,[esp+0x18] 
FAULT ->00465c51 8a441eff   mov  al,[esi+ebx-0x1]  ds:0023:003a3000=?? 
     00465c55 50    push eax 
     00465c56 6864074900  push 0x490764 
     00465c5b 51    push ecx 
     00465c5c e8cfd0fcff  call sysman+0x32d30 (00432d30) 
     00465c61 8d542424   lea  edx,[esp+0x24] 
     00465c65 68689f4800  push 0x489f68 
     00465c6a 8d44242c   lea  eax,[esp+0x2c] 
     00465c6e 52    push edx 
     00465c6f 50    push eax 
     00465c70 e83bc3fcff  call sysman+0x31fb0 (00431fb0) 

*----> Stack Back Trace <----* 
ChildEBP RetAddr Args to Child    
00000000 00000000 00000000 00000000 00000000 sysman+0x65c51 

*----> Raw Stack Dump <----* 
000000000854ff30 58 01 55 08 75 07 c8 09 - 00 00 00 00 18 6d c7 01 X.U.u........m.. 
000000000854ff40 fc 4b e4 09 04 bd 47 00 - 04 bd 47 00 fc 0c c9 01 .K....G...G..... 
000000000854ff50 ac ca ae 09 64 5f c4 01 - 20 37 37 30 32 34 3a 20 ....d_.. 77024: 
000000000854ff60 00 b3 42 00 a8 ff 54 08 - 90 a6 47 00 02 00 00 00 ..B...T...G..... 
000000000854ff70 8b c5 42 00 b8 ff 54 08 - 2e 03 39 00 28 99 cb 01 ..B...T...9.(... 
000000000854ff80 ff ff ff ff 00 00 00 00 - 00 00 00 00 20 1e cb 01 ............ ... 
000000000854ff90 a6 f7 ba 77 06 00 00 00 - c9 f7 ba 77 e1 6b d9 09 ...w.......w.k.. 
000000000854ffa0 06 00 00 00 1f 00 00 00 - 68 00 55 08 c1 a0 47 00 ........h.U...G. 
000000000854ffb0 00 00 00 00 58 c4 42 00 - c9 a5 ca 09 d1 fb 38 0a ....X.B.......8. 
000000000854ffc0 27 00 00 00 e1 6b d9 09 - ef f2 41 00 c9 a5 ca 09 '....k....A..... 
000000000854ffd0 01 59 cc 01 38 00 55 08 - ec 00 55 08 00 00 00 00 .Y..8.U...U..... 
000000000854ffe0 e0 00 55 08 ff ff ff ff - 89 00 00 00 01 00 01 01 ..U............. 
000000000854fff0 c8 ff 54 08 b8 ff 54 08 - 77 00 55 08 29 a5 ca 09 ..T...T.w.U.)... 
0000000008550000 51 00 00 00 5f 00 00 00 - 00 9f 82 7c 61 36 ca 01 Q..._......|a6.. 
0000000008550010 25 00 00 00 3f 00 00 00 - 00 ce bb 77 91 b7 c7 01 %...?......w.... 
0000000008550020 19 00 00 00 1f 00 00 00 - 00 ff ff ff d9 28 cc 01 .............(.. 
0000000008550030 0b 00 00 00 1f 00 00 00 - 00 00 55 08 d1 fb 38 0a ..........U...8. 
0000000008550040 27 00 00 00 3f 00 00 00 - 00 20 ba 77 00 00 00 00 '...?.... .w.... 
0000000008550050 00 00 00 00 00 00 00 00 - 20 b7 c7 01 00 00 00 00 ........ ....... 
0000000008550060 00 00 00 00 00 00 00 00 - b4 00 55 08 1b 90 47 00 ..........U...G.` 
+0

'esi + ebx - 0x1'의 계산 된 값은 읽지 못한 주소입니다. – DCoder

+0

cs = 코드 세그먼트 ss = 스택 세그먼트 ds = 데이터 세그먼트; 16 비트 분할 리얼 모드 DOS의 시대 착오적 표현. 'ds : [esi + ebx-1] '이 가리키는 주소가 가짜라고'mov al, [esi + ebx-0x1] ds : 0023 : 003a3000 = ?? 따라서 귀하의 액세스 위반. – paulsm4

+2

실제로 cs, ds 등은 32 비트 및 64 비트 모드에서도 의미가 있습니다. 주로 "링"(값의 하위 2 비트에서 사용자 모드 = 3 또는 커널 모드 = 0이므로이 값은 사용자 모드로 액세스 됨)을 결정합니다. –

답변

1

은 요약하면 :

현재 레지스터 덤프를 얻을 :

FAULT ->00465c51 8a441eff   mov  al,[esi+ebx-0x1]  ds:0023:003a3000=?? 

끝에있는 물건이 있습니다 :

eax=00000000 ebx=00390320 ecx=0854ff48 edx=09e44bfc esi=00012ce1 edi=0854ff61 
eip=00465c51 esp=0854ff30 ebp=00000000 iopl=0   nv up ei pl zr na po nc 
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000    efl=00010246 

eip 실패 지시를 나타냅니다 읽을 수없는 주소는 23의 "보통"데이터 세그먼트이고 주소는 3A3000이며 01은및 ebx - 1 : 390320 + 12ce1-1. 3 차원 인덱스 3a3000은 메모리에있는 새로운 "페이지"의 첫 번째 주소가 될 것입니다. 그래서 그것이 그 시점에서 실패한 것입니다. 배열에 77025 바이트를 넣는 것은 꽤 먼 길이지만, 그것은 틀린 다른 것일 수도 있습니다.