Microsoft PowerPoint - a5a.ppt [호환 모드]

Similar documents
Microsoft PowerPoint - a10.ppt [호환 모드]

Deok9_Exploit Technique

hlogin2

Microsoft PowerPoint - a6.ppt [호환 모드]

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft PowerPoint - a8a.ppt [호환 모드]

슬라이드 1

No Slide Title

T100MD+

Microsoft PowerPoint - a3.ppt [호환 모드]

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

Microsoft PowerPoint - a9.ppt [호환 모드]

강의10

IDA 5.x Manual hwp

PowerPoint 프레젠테이션

Microsoft PowerPoint - 15-MARS

The_IDA_Pro_Book

Microsoft PowerPoint - a2.ppt [호환 모드]

13주-14주proc.PDF

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

PowerPoint Presentation

Microsoft PowerPoint - a4.ppt [호환 모드]

PowerPoint Presentation

PowerPoint 프레젠테이션

PRO1_09E [읽기 전용]

MAX+plus II Getting Started - 무작정따라하기

02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C

歯9장.PDF

Microsoft Word - 1. ARM Assembly 실습_xp2.doc

Microsoft PowerPoint - a4.ppt [호환 모드]

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

2007_2_project4

강의개요

Microsoft Word - Reversing Engineering Code with IDA Pro-4-1.doc

Week3

Microsoft Word - ExecutionStack

SRC PLUS 제어기 MANUAL

시스템 프로그래밍.hwp

Microsoft PowerPoint - e pptx

PowerPoint 프레젠테이션

Microsoft Word - FunctionCall

Microsoft PowerPoint - CHAP-03 [호환 모드]

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

DocsPin_Korean.pages

BMP 파일 처리

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

PowerPoint 프레젠테이션

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

1217 WebTrafMon II

휠세미나3 ver0.4

The Pocket Guide to TCP/IP Sockets: C Version

Motor

chap7.key

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx


Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

한글사용설명서

MPLAB C18 C

Microsoft PowerPoint - hy2-12.pptx

=

6주차.key

Microsoft PowerPoint - PL_03-04.pptx

Orcad Capture 9.x

Microsoft Word - building the win32 shellcode 01.doc

UI TASK & KEY EVENT

슬라이드 1


윈도우즈프로그래밍(1)

구문 분석

<4D F736F F F696E74202D204B FC7C1B7CEB1D7B7A55F F6E48616E646C6572B8A6C5EBC7D1BFA1B7AFB0CBC3E2B9D7BCF6C1A

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

<C6F7C6AEB6F5B1B3C0E72E687770>

untitled

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

01-OOPConcepts(2).PDF

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

C 언어 프로그래밊 과제 풀이

PowerPoint 프레젠테이션

슬라이드 1

Microsoft Word - Reverse Engineering Code with IDA Pro-2-1.doc

PowerPoint Presentation

Microsoft PowerPoint - chap10-함수의활용.pptx

Smart Power Scope Release Informations.pages

인켈(국문)pdf.pdf

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - es-arduino-lecture-03

PowerPoint 프레젠테이션

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

Microsoft Word doc

PowerPoint 프레젠테이션

bn2019_2

Microsoft PowerPoint - chap9 [호환 모드]

PowerPoint 프레젠테이션

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

Transcription:

5 장프로시저 (1) 책의라이브러리사용

5 장전반부 : 책의링크라이브러리 외부링크라이브러리개요 라이브러리프로시저호출 라이브러리링크 라이브러리프로시저 예제 연세대학교컴퓨터정보통신어셈블리언어 2

저자제공링크라이브러리 라이브러리파일 어셈블된프로시저를포함하고있는 OBJ 파일들을모아놓은파일 ( 확장자.LIB) 각 OBJ file 에는하나이상의 procedure 가들어있음 LIB 명령어를사용하여 library file 을생성하며 OBJ file 들을 LIB 파일에추가하거나,LIB 파일에서삭제가능 저자제공라이브러리 ( 비표준 ) irvine32.lib 32-bit protected mode용 (make32로어셈블 ) irvine16.lib 16-bit DOS 용 (make16으로어셈블 ) 이라이브러리에서제공하는함수에대한선언은다음파일에포함됨 INCLUDE irvine32.inc ; protected mode INCLUDE irvine16.inc ; real address mode 연세대학교컴퓨터정보통신어셈블리언어 3

라이브러리프로시저호출 프로시저호출 CALL 명령어사용 CALL procname 일부 procedure는 input argument를필요로함 argument는 register 또는 stack을통해서전달 예 : 화면에 1234 를출력 INCLUDE Irvine32.inc main proc mov eax,1234h call WriteHex main endp end main ; input argument ; show hex number ; end of line 연세대학교컴퓨터정보통신어셈블리언어 4

라이브러리에링크하기 사용자프로그램을 library와함께링크하여실행파일생성 link user.obj irvine32.lib kernel32.lib link명령어실행은 make32.bat에포함되어있음 kernel32.lib MS-Windows OS에서제공하는 kernel32.dll과의 bridge역할 Your program links to Irvine32.lib links to can link to kernel32.lib executes kernel32.dll 연세대학교컴퓨터정보통신어셈블리언어 5

교과서의링크라이브러리 Procedure Description Clrscr Clears the console ( 커서는왼쪽상단에위치 ) Crlf Writes CR-LF (new line) Delay Pauses execution for a n msec interval (EAX:delay시간) DumpMem Writes a block of memory to standard output in hex. DumpRegs GetCommandtail GetMaxXY(32) GetMseconds GetTextColor(32) Displays the EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EFLAGS, and EIP registers in hex and flags (CF,SF,ZF,OF) Copies the program s command-line arguments into an array of bytes. (EDX: buffer 주소 ) Get number of cols, rows in console window buffer (DH: 행, DL: 열 ) Returns # of milliseconds that have elapsed since midnight. (EAX: 결과 ) Returns active foreground/background text colors in console. (AL: bgcolor 4 bits fgcolor 4 bits) 연세대학교컴퓨터정보통신어셈블리언어 6

Book's Libraries ( 계속 ) Procedure Gotoxy IsDigit MsgBox MsgBoxAsk ParseDecimal32 Description Locates cursor at row and column on the console. (DL: X 좌표,0-79, DH: Y 좌표,0-24) Sets Zero flag if AL contains ASCII code for decimal digit Display popup message boxes (EBX: caption, EDX, msg) (EAX: 결과 6(yes), 7(no)) Converts unsigned integer string to binary (EDX, ECX) ParseInteger32 Converts signed integer string to binary (EDX, ECX) Random32 Generates a 32-bit pseudorandom integer (EAX: 결과 ) Randomize Seeds the random number generator. (ECX:seed) RandomRange Generates a pseudorandom integer within a specified range (EAX: size입력, 결과 range는 0 to size-1) ReadChar Reads a single character (AL: 결과 ) ReadHex Reads a 32-bit hex integer, terminated by Enter. (EAX: 결과 ) 연세대학교컴퓨터정보통신어셈블리언어 7

Book's Libraries ( 계속 ) Procedure ReadDec ReadInt ReadString Description Reads a 32-bit unsigned/signed decimal integer, terminated by Enter. (EAX: 결과 ) Reads a string, terminated by Enter and insert a null terminator. (EDX: buffer 주소, ECX: buffer 의크기 ) SetTextColor Sets the foreground and background colors of all subsequent text output to the console. (EAX: bgcolor 4 bits fgcolor 4 bits) WaitMsg Displays message, waits for Enter key to be pressed. WriteBin Writes an unsigned 32-bit integer in binary format. (EAX: 정수 ) WriteBinB Writes binary integer in byte/word/doubleword format(ebx: 크기 ) WriteChar Writes a single character. (AL: 문자 ) WriteDec Writes an unsigned 32-bit integer in decimal format. (EAX: 정수 ) WriteHex Writes an unsigned 32-bit integer in hex format. (EAX: 정수 ) WriteInt Writes a signed 32-bit integer in decimal format. (EAX: 정수 ) WriteString Writes a null-terminated string. (EDX: buffer주소 ) 연세대학교컴퓨터정보통신어셈블리언어 8

Example 1 화면을지우고, 500 msec 지연후, 레지스터와플래그출력 출력 main proc call Clrscr mov eax,500 call Delay call DumpRegs main endp end main EAX=00000613 EBX=00000000 ECX=000000FF EDX=00000000 ESI=00000000 EDI=00000100 EBP=0000091E ESP=000000F6 EIP=00401026 EFL=00000286 CF=0 SF=1 ZF=0 OF=0 연세대학교컴퓨터정보통신어셈블리언어 9

Example 2 널종료문자열출력후, 커서를다음줄앞으로이동 1.data str1 BYTE "Assembly language is easy!",0 mov edx,offset str1 call WriteString 2 ; use embedded CR and LF.data str1 BYTE "Assembly language is easy!",0dh,0ah,0 mov edx,offset str1 call WriteString 연세대학교컴퓨터정보통신어셈블리언어 10

Example 3 unsigned integer 를 2 진수, 10 진수, 16 진수로분리된줄에각각출력함 IntVal = 35 mov eax,intval call WriteBin call WriteDec call WriteHex ; display binary ; display decimal ; display hexadecimal 출력 0000 0000 0000 0000 0000 0000 0010 0011 35 23 연세대학교컴퓨터정보통신어셈블리언어 11

Example 4 문자열입력하여버퍼에저장함.data filename BYTE 80 DUP(0) mov edx,offset filename mov ecx,sizeof filename 1 call ReadString ReadString 프로시저는널바이트를입력문자열뒤에자동적으로추가함 연세대학교컴퓨터정보통신어셈블리언어 12

Example 5 0 99 범위에있는 10 개의 random integer 를생성하여출력 eax mov ecx,10 ; loop counter L1: mov eax,100 ; ceiling value call RandomRange ; generate random int call WriteInt ; display signed int ; goto next display line loop L1 ; repeat loop -50 49 범위에있는 10 개의 random integer 를생성하여출력 mov ecx,10 ; loop counter L1: mov eax,100 ; ceiling value call RandomRange ; generate random int sub eax,50 call WriteInt ; display signed int ; goto next display line loop L1 ; repeat loop 연세대학교컴퓨터정보통신어셈블리언어 13

Example 6 파란배경에노란색글씨로널종료문자열을출력 배경색은상위 4 비트 (16 을곱하여표시 ), 전경색 ( 글씨색 ) 은하위 4 비트 ( 그대로사용 ) 에나타냄..data str1 BYTE "Color output is easy!",0 mov eax, yellow + (blue * 16) call SetTextColor mov edx, OFFSET str1 call WriteString 연세대학교컴퓨터정보통신어셈블리언어 14

Example 7 성능타이밍 - 특정부분의소요시간측정 종료시점과시작시점의자정이후경과시간의차이를계산...... call GetMSeconds mov starttime, eax... call GetMSeconds sub eax, starttime ; Elapsed msec mov edx, offset msg call WriteString call WriteDec 연세대학교컴퓨터정보통신 어셈블리언어 15