2013-11-22 5 views
0

나는 다음과 같은 어셈블리 코드의 조각을 오프셋 주소에 값이 무엇인지 파악하고 24 시간을 추가 하시겠습니까? 명령 줄 바로 가기가 좋습니다. 디버깅하는 경우IDA Pro를 역 참조 레지스터에서 포인터와 상수는

+0

IDA는 어떻게 알 수 있습니까? 어떤 경우에는 알고 있지만 어떤 경우에는 그렇지 않을 수도 있습니다. 이것은 런타임 계산 주소이므로,이 명령 이전의 주소에서 추론해야하거나, 디버거를 사용하여 근사하게보아야합니다. – Devolus

+0

죄송합니다. 디버거를 부착하고 적절한 위치에 놓았 음이 분명합니다. –

+1

피연산자를 두 번 클릭하여 주소를 따를 수도 있습니다. –

답변

2

는 다음과 같은 트릭 작동 :

  1. 눌러 Ctrl 키-R은 ("오프셋 사용자가 정의")
  2. 는 "자료 주소"필드에 "edi"를 입력합니다. 때문에 IDC 인터프리터를 디버깅하는 이름을 등록하고이를 평가 인식 동안

    mov eax, [edi + (target_address - edi_value)] 
    

    이 작동 :

  3. 눌러

당신이 뭔가를 얻을 것이다 입력 . IDA의 대부분의 숫자 입력 필드는 IDC 표현식을 허용합니다.