어셈블리(IDIV)

2020. 1. 12. 06:50정보보안

@ 어셈블리(IDIV)

1. IDIV

 - 형식 : IDIV [Operand 1] [Operand 2]
 - 내용 : [Operand 1]과 [Operand 2]를 나누기하여 EAX에 값을 저장한다.
 - 예제 : IDIV EAX, EBX
 - 해석 : EAX = EAX / EBX

 1) VS 2008을 이용하여 'idiv.exe' 파일을 제작한다.

 - 파일 -> 새로 만들기 -> 프로젝트 -> 빈 프로젝트 -> 위치(04_테스트) & 이름(idiv.) -> 확인
 - '소스 파일' 우클릭 -> 추가 -> 새 항목 -> 'C++ 파일(.cpp)' 선택 -> 이름(idiv.) -> 추가

#include 

int main()
{
int num1 = 6;
int num2 = 2;
int num3;

num3 = num1 / num2;
return 0;
}

 - 파일 -> 모두 저장 -> 닫기


 2) 'cl' 명령어를 이용한 최적화 컴파일 실시

C:\리버싱\04_테스트\idiv\idiv>cl idiv.cpp /link /debug /opt:icf,ref
Microsoft (R) 32비트 C/C++ 최적화 컴파일러 버전 15.00.30729.01(80x86)
Copyright (c) Microsoft Corporation.  All rights reserved.

idiv.cpp
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:idiv.exe
/debug
/opt:icf,ref
idiv.obj

C:\리버싱\04_테스트\idiv\idiv>dir


3. 올리디버거를 이용한 'idiv..exe' 분석

 - 메모리 주소, 레지스터 저장 값, 스택 내용, 메모리 덤프 내용 확인

'정보보안' 카테고리의 다른 글

어셈블리(JNE&JNZ)  (0) 2020.01.12
어셈블리(JE&JZ)  (0) 2020.01.12
어셈블리(IMUL)  (0) 2020.01.12
어셈블리(sub)  (0) 2020.01.12
어셈블리(ADD)  (0) 2020.01.12