ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 어셈블리
    > Information Security/Reverse Engineering 2010. 7. 1. 00:00

    1. 어셈블리어?
    어셈블리(assembly)어는 기계와 일대일대응이 되는 컴퓨터 프로그래밍의 저급 언어이다.

    2. 어셈블리 명령어

     INC (Increase)  피연산자에서 1을 더한다
     ZF, OF 세트가능
     ex) INC reg
     DEC (Decrease)  피연산자에서 1을 뺀다
     ZF, OF 세트가능
     ex) DEC reg
     ADD (Add)  Destination에서 Source를 더해서
    Destination에 저장
     ZF, OF, CF 세트 가능
     ex) ADD eax, 123
    eax에서 123을 더한 후 eax에 저장
     SUB (Subtract) Destination에서 Source를 빼서
    Destination에 저장
     ZF, OF, CF 세트 가능
     ex) SUB eax, 123
    eax에서 123을 뺀 후 eax에 저장
     MUL (Unsigned Integer Multiply)  부호 없는 ax, al, eax의 값을 피연산자에 곱함
     OF, ZF 세트 가능
     ex) MUL reg
     IMUL (Integer Multiplication)  부호 있는 ax, al, eax의 값을 피연산자에 곱함
     CF, OF 세트 가능
     ex) IMUL reg
     DIV (Unsigned Integer Divide)  8, 16, 32bit의 부호없는 정수의 나눗셈 수행  ex) DIV reg

    - MUL
    8bit  → al 과 곱 → ax
    16bit → ax 와 곱 → dx:ax
    32bit → eax 와 곱 → edx :eax

    - IMUL
    r16 → 16bit
    r32 → 32bit

    r/m16 → 16bit 레지스터
    r/m32 → 32bit 레지스터

    imm8 → 8bit 메모리 피연산자
    imm16 → 16bit 메모리 피연산자
    imm32 → 32bit 메모리 피연산자

    ex) 16bit 형식
    IMUL  r16 , r/m16  → 16비트 형식에서 16비트 레지스터
    IMUL  r16 , imm8
    IMUL  r32,  r/m16
    IMUL  r32,  imm16

    → 연산결과가 Destination 레지스터 크기보다 크다면 OF, CF가 세트된다.

     MOV (Move)  Source에서 Destination으로 데이터 복사  ex) MOV Destination, Source
          MOV reg, reg
     MOVS (Move String)  Source에서 Destination으로 데이터 복사  ex) MOVS reg, reg
     MOVSB, MOVSW, MOVSD  SI or ESI레지스터에 의해 지정된 메모리주소의 내용을 DI or EDI 레지스터에 의해 지정된 메모리 주소로 복사.
     DF(방향플래그)가 1로 세트되어 있으면, ESI와 EDI 는 복사시 감소
     DF가 0으로 세트되어있으면, ESI와 EDI는 복사시 증가
     MOVSB : Byte 단위로 복사
     MOVSW : Word 단위로 복사
     MOVSD : Dword 단위로 복사
     MOVSX (Move with Sign-Extend)  BYTE나 WORD 크기의 피연산자를 WORD나 DWORD 크기로 확장하고
    부호는 그대로 유지
     ex) MOVSX reg32, reg16
     reg16을 확장하여 reg32에 복사
     MOVZX (Move with Zero-Extend)  BYTE나 WORD 크기의 피연산자를 WORD나 DWORD 크기로 확장하고
    남은 비트는 0으로 채움
     ex) MOVZX reg32, reg16
     reg16을 확장하여 남은 비트를 0으로 채우고 reg32에 복사






     

    728x90
    반응형

    '> Information Security > Reverse Engineering' 카테고리의 다른 글

    Crack Me 문제유형  (0) 2011.01.05
    upx(실행파일압축) 가 packing 하는 원리  (0) 2010.11.17
    Tool - PEiD  (0) 2010.11.17
    Process & Thread  (0) 2010.07.13
    레지스터  (0) 2010.07.01
Designed by Tistory.