본문 바로가기

System Hacking

4일차] 명령어(mov, lea)

mov ]

- C언어의 assignment(=)할당 연산자와 비슷한 개념

- 기본적인 형태 : mov dst, src   

- ! dst, src 가 둘 모두 메모리가 올 수는 없다.

-ex)

# entry point의 eax레지스터에 10을 할당하고 있다. 메모리 할당부분인 num은 시작 주소값을 나타내고 있고 때문에 mov인자 값에 그대로 사용할 수 없다. 메모리할당을 위해 []를 해줘야 하며 어디까지인지 알 수 있게 dword 를 앞부분에 붙여주어야 한다.

 

# 어셈블리에서 buffer 숫자배열과 문자열에 접근하는 방법을 알 수 있는 예제이다. double word 즉 dword이며 4바이트씩 차지하기때문에 +8을해야 30이라는 숫자를 출력할 수 있고, string인 'korea'는 1바이트씩움직이므로 +2 하면 'r'에 접근할 수 있다.

 

 

lea ]

- 유효주소를 계산하는 명령어

- lea dst, src

- 단순히 주소값만 계산해서 준다.

# lea를 통해서 5번째 요소를 100으로 바꿀 수 있고, c언어의 배열에서 많이 볼 수 있다.