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

리버싱#1 - add, sub 명령어 배우기!

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

• r/m32 - 피연산자 크기 속성이 32비트인 명령어에 사용하는 더블워드 범용 레지스터

 

• ADD: 더하기 / SUB: 빼기

 > 목적지는 r/m32 또는 레지스터 

 > 출발지는 r/m32 또는 레지스터 또는 상수값

 > 출발지와 목적지가 모두 r/m32일 수는 없음 [메모리 <-> 메모리 불가능]

 > OF, SF, ZF, AF, PF, CF에 영향

 

 

> c언어에서 int a // 선언!! -> 그럼 sub esp, 8 // 이런식으로 4byte의 공간을 만들어준다!

 

-- 해당 코드의 순서도 -- 

  - 1- 

1

2  0    <- eax 

3

4

 

 - 2 - 

0

1  

2 0    <- eax, esp // 여기서 esp - 8  <- eax

3 0 

4 0    < - esp

 

그 다음 각각의 위치에 숫자를 넣어주는 / eax-4 는 한칸 아래를 의미한다!

 

그럼 실제 프로그램을 돌리면서 실행!

명령 한 줄 실행하면 eax, esp가 같은 곳을 가르키는 것을 알 수 있다.

 

한 줄 더 실행하면 

한 줄 더 실행하면 1이 들어간 것을 확인할 수 있다. 

== 

 

더하기, 곱셉, 나누기 도 비슷한 논리이다!!

- > 추가적으로 공부 필요!

728x90
반응형

댓글