본문 바로가기
Reverse engineering/리버싱 분석 강의 정리

리버싱#1 - mov 명령어 배우기

by grey-hat hacker 2021. 3. 1.
728x90

> MOV: 복사

 • 레지스터 → 레지스터

 • 메모리 ↔ 레지스터

 • Immediate 값 → 레지스터 또는 메모리

 

 but 메모리 ↔ 메모리 는 불가능이다!!

 

1. ebx의 값을 -> eax에 넣고!

2. 주소의 값을 ebx에 넣고!

3. [ ] -> 포인터의 역할, ebx가 가르키는 주소의 값 0xff,, 에 10이라는 값을 넣는것!

4. 그리고 eax -> ebx에 값을 넣는 것 

 

- 코드 작성

object 파일을 만들고!

r 명령어로 실행하고~!!

현재 스택에는 10과 1234가 들어가 있는 형태이다!!

 

ebx, eax 에는 현재 0이 들어가 있는 것을 확인 할 수 있다!

 

이제 두번 실행을 시키면!!

그럼 지금 현재 ebx의 값에는 0xbffff098의 값이 들어가 있는거!

그리고 거기에는 1234의 값이 들어가 있는 거니까 결국 ebx에는 1234의 값이 들어가 있는 것이다!

레지스터가 가르키는 메모리 주소에 내가 원하는 값을 넣기 위해 [] 사용!

10으로 변경 된 것을 확인할 수 있다!

 

ebx의 값에는 변화가 없지만 ebx 가 가르키는 값이 1234 -> 10로 변경된 것을 알 수 있다. 

 

 

 

728x90
반응형

댓글