본문 바로가기
모의해킹/리버싱

[리버싱] 기본 어셈블리 명령어

by 보안의신 2017. 7. 29.
반응형

[리버싱] 기본 어셈블리 명령어

 

MOV : 데이터를 복사해준다, == 대입의 의미로 봐도 됩니다.

피연산자는 2개가 필요하며, 피연산자의 구분은 , 로 합니다.

 

첫번째 피연산자는 제 1피연산자, Destination 오퍼랜드라고 한다.

두번째 피연산자는 제 2피연산자, Source 오퍼랜드라고 한다.

 

Source 오퍼랜드의 값을 Destination 오퍼랜드에 대입한다.

 

 

* MOVZX, MOVSX

= 소스 오퍼랜드 사이즈보다 데스티네이션 오퍼랜드 사이즈가 더 큰 경우 발생합니다.

ZX는 남은 빈공간을 0으로 채워줄 때(부호는 쓰지 않는다는 의미)

SX는 소스 오퍼랜드의 최상위 비트에 맞춰서 쓸 때(부호를 쓰겠다는 의미)

 

TIP) 리버싱의 목적은 어셈블리어로 코딩을 하는게 목적이 아니므로,

보고 빠르게 분석만 하면 된다(그냥 복사하겠다는 거구나 하고 넘어가기)

 

MOVS : 문자열을 복사할 때 사용한다.

 

ADD : 2개의 피연산자를 더 해서 데스티네이션 오퍼랜드에 저장한다.

ex) ADD Destination, Source

 

SUB : 2개의 피연산자를 빼서 결과값을 데스티네이션 오퍼랜드에 저장한다.

 

TIP) 윈도우 Vista 이상버전부터는 메모리 주소가 수시(랜덤)으로 바뀌기 때문에

처음에 리버싱을 접하는 사람들은 연습할 때 혼란이 올 수 있습니다.

XP 하위버전으로 연습하는 것을 추천드립니다.

 

 

윈도우의 실행파일의 경우

'올리디버거'툴을 이용해서 실행파일을 분석 할 수 있습니다.

> 올리디버거에서 나오는 숫자는 전부 16진수 이기때문에, 10진수와 혼동하지 않도록 주의.

반응형

'모의해킹 > 리버싱' 카테고리의 다른 글

[리버싱] 알아야 할 주요 레지스터  (0) 2017.07.29
[리버싱] 리버싱 사전 지식  (0) 2017.07.29

댓글