나는 ollydbg에 대해 아무것도 모른다. 잘 알고있는 사람도 대답을 게시 할 것입니다.
당신이 우리에게 보여준 것이 무엇인지에 대한 이해는 대부분 정확합니다 : BL의 내용 (의 하위 비트는 8 비트 EBX)을 가리키는 스택 세그먼트의 주소로 이동합니다 [EBP 마이너스 1] EBP가 0012FDCCh이면, 바이트는 0012FDCBh에 저장 될 것이다.
우리는 보통 0012FDCBh가 어디를 가리키고 있다고 말하지 않으며, 기술적으로는 메모리 주소라고 말하는 것이 더 정확할지라도,이 경우에는 바이트를 포함하는 메모리 위치라고 말할 수 있습니다 따라서 어떤 의미에서 숫자는 '포인트'를 1 바이트로 나타냅니다. 그러나 포인터 나 레지스터는 순수한 숫자가 아닌 메모리를 가리키는 것으로 생각하는 것이 좋습니다.
ollydbg가 0012FDCBh를 표시하지 않는 이유는 알 수 없습니다. 그게 보이지 않는다고 확신합니까? 아마도 0012FDCCh와 0012FDC8h를 보여주고 있습니까? 그렇다면 DWORD로 그룹화 된 스택 메모리를 표시하기 때문에 0012FDCBh는 DWORD 내의 0012FDC8h에있는 4 바이트 중 하나에 해당하기 때문에 표시되지 않습니다. 0012FDC8h에 저장된 DWORD 값을 MOV 명령을 통해 단일 단계로 살펴보고 그 단어의 최상위 바이트가 BL 값으로 변경되어야합니다. (해당 주소의 값이 BL의 값과 다른 경우) Ollydbg는 하나의 DWORD보다 긴 행으로 그룹화 된 메모리를 표시 할 수도 있지만 동일한 원칙이 적용됩니다.
andmart, 스크린 샷을 본 후 발생한 일이 정확히 내가 추측 한 것으로 보입니다. ollydbg는 DWORDS의 스택 내용을 표시합니다. 그러므로, DWORD의 가장 중요한 바이트를 0012FDC8h에서 보면 BL이 거기에 저장 될 것입니다. –