- MOVS (move string)

  ESI의 주소안에 내용 => EDI의 주소안에 내용

 

- CMPS (compare string)

  ESI의 주소안에 내용과 EDI의 주소안에 내용을 비교

 

- SCAS (scan string)

  EAX와 EDI속 주소안에 내용을 비교

 

- STOS (store string)

  EAX를 EDI속 주소안에 영역에 저장

 

- LODS (load string)

  ESI속 주소의 내용을 EAX에 불러옴

'Reverse Engineering > IDA Pro 사용기' 카테고리의 다른 글

IDA 유용한 단축키  (0) 2020.04.07
IDA FLOW 타입  (0) 2020.04.07
이런 코드를 만났을 때 [02] REPNE SCASB  (0) 2020.04.07
IDA에서 개체 표기규칙  (0) 2020.04.07
이런 코드를 만났을 때 [01]  (0) 2020.04.07

- sub_**** : 서브루틴

 

- loc_**** : 인스트럭션

 

- byte_**** : 8bit 데이터

 

- word_**** : 16bit 데이터

 

- dword_**** : 32bit 데이터

 

- unk_**** : 알 수 없는 크기의 데이터

'Reverse Engineering > IDA Pro 사용기' 카테고리의 다른 글

STRING 컨트롤  (0) 2020.04.07
IDA FLOW 타입  (0) 2020.04.07
이런 코드를 만났을 때 [02] REPNE SCASB  (0) 2020.04.07
이런 코드를 만났을 때 [01]  (0) 2020.04.07
SET OPCODE LIST  (0) 2020.04.07

:text:0040107F mov eax, large fs:0
:text:00401085 push eax
:text:00401086 mov large fs:0, esp

 

FS : 0 (SEH 프레임)을 EAX에 저장하여 스택에 넣고 

ESP(스택포인터)에있는 내용으로 덮어 쓴다.

 

* SEH : Structured Exception Handling : Win32환경에서의 예외처리 핸들러

* FS 레지스터 : Win32 스레드 정보 블록(TIB)

 

참고 : https://en.wikipedia.org/wiki/Win32_Thread_Information_Block

'Reverse Engineering > IDA Pro 사용기' 카테고리의 다른 글

STRING 컨트롤  (0) 2020.04.07
IDA FLOW 타입  (0) 2020.04.07
이런 코드를 만났을 때 [02] REPNE SCASB  (0) 2020.04.07
IDA에서 개체 표기규칙  (0) 2020.04.07
SET OPCODE LIST  (0) 2020.04.07
  • SETAE (Set if Above or Equal) / SETNB (Set if Not Below)
    : Carry Flag (CF)가 '0'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETB (Set if Below) / SETNAE (Set if Not Above or Equal)
    : Carry Flag (CF)가 '0'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETBE (Set if Below or Equal) / SETNA (Set if Not Above)
    : Zero Flag (ZF) 또는 Carry Flag (CF)가 '1'이라면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETE (Set if Equal) / SETZ (Set if Zero)
    : Zero Flag (ZF)가 '1'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETNE (Set if Not Equal) / SETNZ (Set if Not Zero)
    : Zero Flag (ZF)가 '0'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETL (Set if Less) / SETNGE (Set if Not Greater or Equal)
    : Sign Flag (SF)와 Overflow Flag (OF)가 다르면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETGE (Set if Greater or Equal) / SETNL (Set if Not Less)
    : Sign Flag (SF)와 Overflow Flag (OF)가 같다면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETLE (Set if Less or Equal) / SETNG (Set if Not greater or Equal)
    : Zero Flag (ZF)가 '1'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETG (Set if Greater) / SETNLE (Set if Not Less or Equal)
    : Zero Flag (ZF)가 '0'이고 Sign Flag (SF)와 Overflow Flag (OF)가 같으면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETS (Set if Signed)
    : Sign Flag (SF)가 '1'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETNS (Set if Not Signed)
    : Sign Flag (SF)가 '0'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETC (Set if Carry)
    : Carry Flag (CF)가 '1'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETNC (Set if Not Carry)
    : Carry Flag (CF)가 '0'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETO (Set if Overflow)
    : Overflow Flag (OF)가 '1'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETNO (Set if Not Overflow)
    : Overflow Flag (OF)가 '0'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETP (Set if Parity) / SETPE (Set if Parity Even)
    : 패리티 플래그가 '1'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅
  • SETNP (Set if No Parity) / SETPO (Set if Parity Odd)
    : 패리티 플래그가 '0'이면 뒤에 명시된 바이트형 레지스터를 '1'로 세팅

'Reverse Engineering > IDA Pro 사용기' 카테고리의 다른 글

STRING 컨트롤  (0) 2020.04.07
IDA FLOW 타입  (0) 2020.04.07
이런 코드를 만났을 때 [02] REPNE SCASB  (0) 2020.04.07
IDA에서 개체 표기규칙  (0) 2020.04.07
이런 코드를 만났을 때 [01]  (0) 2020.04.07

X86의 어셈플리 구문은 아래 두 가지 문법을 가장 많이 사용한다.

1. INTEL 구문

- 레지스터와 리터럴 상수를 구분하지 않는다.

- MASM(마이크로소프트), TASM(볼랜드터보), NASM(넷와이드) 등에서 사용

- 나열 순서는 [연산자] [대상 오퍼랜드] [소스 오퍼랜드]

   (ex : ADD EAX, 0x8)

 

2. AT&T 구문

- 레지스터 명 앞에 '%' 표기, 리터럴 상수 앞에 '$'표기

- Gas (GUN), gcc, gdb 등에서 사용

- 나열 순서는 [연산자] [소프 오퍼랜드] [대상 오퍼랜드]

   (ex: ADD $0x8 %EAX)

+ Recent posts