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
반응형
'Reverse engineering > 리버싱 분석 강의 정리' 카테고리의 다른 글
리버싱#1 - lea 명령어! mov 명령어와 차이는? (0) | 2021.03.02 |
---|---|
리버싱#1 - add, sub 명령어 배우기! (0) | 2021.03.02 |
리버싱#1 - segmentation fault 에러 해결하기! (0) | 2021.03.01 |
리버싱#1 - gdb 명령어 사용하는 방법! (0) | 2021.03.01 |
리버싱#1 NASM(넷와이드 어셈블러) 사용법 (0) | 2021.02.25 |
댓글