반응형
어셈 명령어
INC(increase)
피연산자에 1을 더한다.
연산결과에 따라 ZF나 OF가 세트 될수 있다.
INC reg
INC mem
피 연산자가 레지스터나 메모리가 될 수 있다는 의
DEC (INC반대 빼기 --1)
ADD
Destination에 source의 값을 더해서 Destination에 저장하는 명령이다
연산결과에 따라 ZF,OF,CF가 세트 될 수 있다.
SUB
MUL
부호없는 al,ax,eax의 값을 피연산자와 곱한다.
피연산자가 8비트이면 al과 곱해서 ax에 저장되고 16비트이면 ax와 곱하고 dx:ax에 저장된다.
IMUL
부호있는 al,ax,eax 값을 피연산자를 곱한다. 결과에 따라 CF,OF에 세트 될 수 있다.
DIV
8, 16, 32 부호 없는 정수의 나눗셈을 수정 결과에 따라 CF,OF,ZF에 세트 될수 있다.
MOV
mov eax,edx 1 , 2 로 데이터를 복사
MOVS(Move string)
MOVSB는 BYTE 단위로 복사
MOVSW는 WORD 단위로 복사
MOVSD는 DWORD 단위로 복사
방향플래그(DF)가 1로 세트되어 있으면 ESI와 EDI는 복사시 감소하게 되고 DF으로 세트되어 있으면,
ESI와 EDI는 복사시 증가하게 된다.
MOVSX
BYTE나 WORD 크기의 피연자를 WORD나 DWORD 크기로 확장하고 남은 비트는 0으로 채운다.
INT
소프트웨어 인터럽트를 발생시켜 운영체제의 서부루틴을 호출
TEST
두 피연산자 사이에 논리적인 AND연산을 수행하여 플래그 레지스터에 영향을 주지만 결과값을 저장하지 않는다.
OF, CF는 항상 0으로 세트되고 TEST연산결과 값이 0이면 ZF가 1로 세트 0이 아니면 ZF가 0으로 세트
STC : CF를 1로 세트
CLC : CF를 1로 세트
STD : DF를 1로 세트
CLD : DF를 0로 세트
STI : IF를 1로 세트
CLI : IF를 0로 세트
PUSHAD(PUSH ALL)
모든 레지스터의 값을 PUSH한다.
- 레지스터의 값을 보관해야 할 필요가 있을때 사용
PUSHFD
-플래그 레지스터스택에 PUSH
어셈블러 조건 명령어
POPFD
XCHG
NEG
PTR
OFFSET
LEA
REP
JMP
REP
JMP
CALL
CMP
NO[
파일 바이러스의 종류
CIH, FUNLOVE,KRIZ,WIN32
4099,VIRUT
매크로 바이러스
SHIVER,MELISSA,LAROUX
부트바이러스
BRAIN, MONKEY,ANTICMOS, 미켈란젤로a
웜
HYBRIS, HAPPY99, NAVIDAD,EXPLOREZ,PRETTYPARK
트로이
BACKORIFICE,NETBUIS,BYMER
백도어
스파이웨어
간략한 소개와 설명 그리고 증상 대표 ㅁ
mov eax, ecx (복사)
mov eax,dword ptr ds[eax + 59] (복사)
cmp eax , 0 EAX를 0과 비교
xor eax, eax (초기화) 1 , 1 = 0 0 , 0 =0
imul eax, ecx (곱하기)
movsx ecx, byte ptr ds:[esi + 4020FE]
//ECX Register에 [esi + 4020FE]가 가지고 있는 값을 읽어온다.
진수 변환
2진수가 영어로 binary이기 떄문에 뒤에 b를 붙여서 표기
16진수는 hexadecimal이기 떄문에 뒤에 h
10진수의 경우 ah
CPU 레지스터
플래그 레지스터
CF : 부호연산 결과가 용량보다 클때 세트 (1)이 된다.
ZF : 연산결과가 0일때 세트(1) 된다. 연산결과가 0이 아닐때 해제(0) 된다.
OF : 부호 연산 결과가 용량보다 클때 세트(1) 된다.
SF : 연산결과가 음수가 되었을때 세트 (1) 된다. 연산결과가 양수가 되었을때 해제(0) 된다.
DF : 문자열처리에 연속된 문자열의 처리 방향에 따라 세트
어셈블리 언어
Data type
타입 설명
BYTE 8비트 부호가 없는 정수
SBYTE 8비트 부호가 있는 정수
WORD 16비트 부호가 없는 정수
SWORD 16비트 부호가 있는 정수
DWORD 32비트 부호가 없는 정수
SDWORD 32비트 부호가 있는 정수
FWORD 48비트 정수
QWORD 64비트 정수
TBYTE 80비트 정수
피연산자 타입
피연산자 설명
r8 8비트 범용레지스터
r16 16비트 범용레지스터
r32 32비트 범용레지스터
Reg 임의의 범용레지스터
srg 16비트 세그먼트레지스터
lmm 8,16,32 비트 즉시값
lmm8 8비트 즉시값
lmm16 16비트 즉시값
lmm32 32비트 즉시값
r/m8 8비트 범용레지스터, 메모리
r/m16 16비트 범용레지스터, 메모리
r/m32 32비트 범용레지스터, 메모리
mem 8,16,32비트 메모리
반응형