2012-05-03 3 views
1

작은 어셈블리/디스 어셈블리를 배우려고합니다. 기본 Hello World C EXE (간단한 추가 기능 포함)를 작성하여 IDA 무료 버전에 버렸습니다.어셈블리 및 IDA 학습

나는 일이 벌어지는 것을 보았다. 명확히하기 위해 ... 다음은 무엇을합니까?

var_D8= dword ptr -0D8h 
var_14= dword ptr -14h 
var_8= dword ptr -8 

세 개의 DWORD 변수를 보여줍니다. -0D8H 란 무엇입니까? -14H? -8? 메모리 주소? 방금 15 + 1을 더했습니다.

죄송합니다. IDA 및 어셈블리를 처음 사용합니다.

감사합니다.

+0

IDA는 그 중 하나를 알아낼 수 없기 때문에 IDA에서 김치 선언을했습니다. 로컬 변수 인 EBP로부터의 오프셋으로 사용됩니다. –

답변

3

IDA는 현재 기능의 스택을 설명하기위한 특수 구조를 만듭니다. 이 구조체의 위치 주소는 반환 주소 (스택에 저장되며 스택보기 창에서 "r"로 언급 됨)에서 오프셋됩니다. 그리고이 정의는 그것으로부터의 간단한 오프셋입니다. 컴파일러는 스택 로컬 변수에 저장하며 스택에 변수를 표시합니다. 이 주제에 대한 자세한 내용은 IDA Pro 책을 읽으십시오.