반응형
단순 명령어
- mov
- 단순하고 널리 사용됨, 데이터를 다른 위치로 옮기는데 사용. 메모리를 읽고 쓰는 명령
- 형식 : mov 목적지, 소스 (인텔 형식)
명령어
|
설명
|
mov eax, ebx
|
EBX의 내용을 EAX 레지스터로 복사한다.
|
mov eax, 0x42
|
값 0x42를 EAX 레지스터로 복사한다.
|
mov eax, [0x4037C4]
|
메모리 위치 0x4037C4에 있는 4바이트 값을 EAX 레지스터로 복사한다.
|
mov eax, [ebx]
|
EBX 레지스터가 명시한 메모리 위치에 있는 4바이트 값을 EAX 레지스터로 복사한다.
|
mov eax, [ebx+esi*4]
|
ebx+esi*4 연산 결과가 명시한 메모리 위치에 있는 4바이트 값을 EAX 레지스터로 복사한다.
|
* mov eax, ebx+esi*4(대괄호 없이) 이런 명령어는 유효하지 않다. 대괄호가 없어서..
- lea
- mov와 유사한 명령어. 유효 주소를 로드하라는 의미
- 메모리 주소를 목저지로 넣을 때 사용한다.
- 형식 : lea 목적지, 소스
- lea는 메모리 주소를 참조 하는데만 사용하는것은 아님. 값을 계산할 때도 유용 ex) lea ebx, [eax*5+5]
명령어
|
설명
|
lea eax, [ebx+8]
|
EBX+8을 EAX에 저장한다.
|
mov eax, [ebx+8]
|
EBX+8에 명시된 메모리 주소에 있는 데이터를 로드한다.
|
산술 연산
- add
- 덧셈
- 형식 : add 목적지, 값
- sub
- 뺏셈
- 형식 : sub 목적지, 값
- 두 주요 플래그를 수정하는데, 제로 플래그(ZF)와 자리 올림(CF) 플래그다.
ZF는 결과 값이 0이면 설정되고, CF는 목적지가 빼려는 값보다 작을 때 설정된다.
- inc
- 레지스터 하나 증가
- 형식 : inc 레지스터
- dec
- 레지스터 하나 감소
- 형식 : dec 레지스터
- mul
- 항상 EAX에 값을 곱한다.
- 결과는 64비트 값으로 두 레지스터 EDX와 EAX에 저장한다.
- div
- EDX와 EAXdml 64비트 값을 값으로 나눈다.
- xor
- 레지스터를 0으로 설정하는 빠른 방법
- shr, shl
- 목적지 오퍼랜드를 오른쪽, 왼쪽으로 count 오퍼랜드에 명시한 비트 수만큼 비트를 이동
- 시프트는 곱셈 최적화에 자주 사용된다.
* xor, or, and, shl, ror, shr, rol 명령어를 반복적으로 사용하는 함수가 무작위로 나오는 것 같다면 함호화나 압축 함수일 가능성이 있다.
- nop
- 아무런 일도 하지 않는다.
- nop이 보이면 그냥 다음 명령어로 넘어가 실행하다.
명령어
|
설명
|
sub eax, 0x10
|
EAX에서 0x10을 뺌
|
add eax, ebx
|
EAX에 EBX를 더해 결과를 EAX에 저장함
|
inc edx
|
EDX를 1만큼 증가시킴
|
dec ecx
|
ECX를 1만큼 감소시킴
|
mul 0x50
|
EAX에 0x50를 곱해 결과를 EDX:EAX로 저장한다
|
div 0x75
|
EDX:EAX에 0x75를 나눠 몫을 EAX에, 나머지를 EDX에 저장한다.
|
xor eax, eax
|
EAX 레지스터를 비움
|
or eax, 0x7575
|
EAX를 0x7575으로 논리적 or 연산 수행
|
mov eax, 0xA
shl eax, 2
|
EAX 레지스터를 2비트만큼 좌측으로 시프트함. 1010(바이너리 0xA)가 왼쪽으로 2비트
움직여서 101000 (0x28)이 되므로 두 명령어 결과로 EAX = 0x28가 된다.
|
mov bl, 0xA
ror bl, 2
|
BL 레지스터를 2비트만큼 우측으로 순환함. 1010이 우측으로 2비트 순환해
10000010이 되므로 두 명령어 결과로 BL = 10000010가 된다.
|
반응형
'IT 보안' 카테고리의 다른 글
아파치 웹 서비스 공격 탐지 분석 자료 (0) | 2024.09.23 |
---|---|
PHP 취약점 공격 / CVE-2017-9841, CVE-2019-16759 분석 자료 (0) | 2024.09.23 |
vBulletin RCE - CVE-2019-16759 분석 자료 (0) | 2024.09.23 |
Fortinet SSL VPN 취약점 (CVE-2018-13379) 분석자료 (0) | 2024.09.23 |
ThinkPHP 원격코드 실행 취약점 (CVE-2018-20062) (0) | 2024.09.23 |