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

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

Deok9_Exploit Technique

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

hlogin2

No Slide Title

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

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 - a4.ppt [호환 모드]

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

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

C# Programming Guide - Types

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

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

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft Word - FunctionCall

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

Microsoft PowerPoint - o8.pptx

PowerPoint 프레젠테이션

T100MD+

요. 우리는 살 수가 없으니게 이게 큰 무슨 전쟁이다 그래가지고서 봉 동면이라고 거기가 말하자면 항구 였거든요. 그때 군인들이 후퇴를 한 거예요. 군인들이 후퇴하면서 활동 못 할 사람들은 다 그냥 죽어버리고 그 나머지 어느 정도 부상당했어도 활 동할 수 있는 사람들은

슬라이드 1

Chapter 4. LISTS

Microsoft Word - ExecutionStack


Chapter 4. LISTS

윤성우의 열혈 TCP/IP 소켓 프로그래밍

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

PowerPoint 프레젠테이션

02장.배열과 클래스

Microsoft PowerPoint - ch08 - 구조체 (structure) am0845

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint - 알고리즘_4주차_1차시.pptx

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

chap 5: Trees

KNK_C_05_Pointers_Arrays_structures_summary_v02

PowerPoint Presentation

Week3

Modern Javascript

PowerPoint Template

API 매뉴얼

슬라이드 1

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

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

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

fl 2

Microsoft Word - Heap_Spray.doc

11장 포인터

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

Chapter #01 Subject

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

PowerPoint 프레젠테이션

hlogin7

IDA 5.x Manual hwp

Microsoft PowerPoint - Chapter_09.pptx

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

01....b

2007백서-001-특집

(291)본문7

00목차

PowerPoint 프레젠테이션

구문 분석

한글사용설명서

제4장 기본 의미구조 (Basic Semantics)

USER GUIDE

K&R2 Reference Manual 번역본

CKKeyPro 적용가이드

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Microsoft PowerPoint - 제3장-배열.pptx

2014밝고고운동요부르기-수정3

2005프로그램표지

untitled

UI TASK & KEY EVENT

DIY 챗봇 - LangCon

Microsoft PowerPoint - chap06-2pointer.ppt

슬라이드 1

Index

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

03장.스택.key

/* */

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

2007_2_project4

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

untitled

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

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000

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

3.20 테러 악성코드바이너리분석 손충호 (StolenByte) WOWHACKER Group 해당문서는 WOWHACKER Group 의문서이므로, 무단도용및수 정및변조는할수없습니다. 페이지 1 / 20

PowerPoint 프레젠테이션

슬라이드 1

Index Process Specification Data Dictionary

01-OOPConcepts(2).PDF

슬라이드 1

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

SIGPLwinterschool2012

13주-14주proc.PDF

14 주차구조체와공용체

CPX-E-EC_BES_C_ _ k1

9

DocsPin_Korean.pages

Transcription:

Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는 procedure의관련이있는인수들을한꺼번에전달할때에편리함 example: file fl directory information Structure 사용하기 structure 정의 structure 변수선언 structure 변수참조 2 Structure 정의 Structure 정의 Employee STRUCT IdNum BYTE "000000000" LastName BYTE 30 DUP(0) Years WORD 0 SalaryHistory DWORD 0,0,0,0 Employee ENDS structure 이름 default 초기값 field 선언은변수선언과같은방식 9 30 2 4 4 4 4 "000000000" (null) 0 0 0 0 0 Idnum Lastname Years SalaryHistory Structure 변수선언 Structure 변수선언 structure 를정의한다음에 structure 변수를선언 COORD STRUCT X WORD? Y WORD? COORD ENDS point1 COORD <5,10> point2 COORD <> worker Employee <> structure 변수이름 structure 정의 structure 이름을 type 으로사용 <> 안에초기값지정 비어있으면 default 초기값지정 3 4

Structure 변수선언 초기값, 배열 Structure 초기값지정 emp Employee <,,,2 DUP(20000)> 3 개의 field 를건너뜀 (default 초기값사용 ) Array of Structure 배열 field 의원소들의일부또는전부를초기화하기위해 DUP 를사용 NumPoints = 3 AllPoints COORD NumPoints DUP(<0,0>) RD_Dept Employee 20 DUP(<>) accounting Employee 10 DUP(<,,,4 DUP(20000) >) Structure 변수참조 변수의 field 참조 ( 형식예 ) worker.salaryhistory ;dword 배열 field mov dx,worker.years mov worker.salaryhistory,20000 y, ; first salary mov worker.salaryhistory+4,30000 ; second salary mov edx,offset worker.lastname mov esi,offset worker mov ax,[esi].years ; invalid (ambiguous) mov ax,(employee PTR [esi]).years 5 6 Structure 변수참조 structure 변수에대한크기참조 TYPE Employee ;TYPE: 자료형의메모리크기 (57) SIZEOF Employee ; SIZEOF=TYPE*LENGTHOF (57*1=57) SIZEOF worker ; 변수 worker의메모리크기 (57) TYPE Employee.SalaryHistory ; 4 (dword 자료형 ) SIZEOF Employee.SalaryHistory ; 4*4=16 (dword 형배열, 4 원소 ) Employee STRUCT IdNum BYTE "000000000" ; 9 LastName BYTE 30 DUP(0) ; 30 Years WORD 0 ; 2 SalaryHistory DWORD 0,0,0,0 ; 16 Employee ENDS ; (57) 예 : 구조체배열참조하는 Loop 모든점을 x, y 좌표를함께증가시키면서저장 (1,1) 1) (2,2) 2) (3,3) 3) NumPoints = 3 AllPoints COORD NumPoints DUP(<0,0>) mov edi,0 ; array index mov ecx,numpoints ; loop counter mov ax,1 ; starting X, Y values L1: mov (COORD PTR AllPoints[edi]).X,ax mov (COORD PTR AllPoints[edi]).Y,ax add edi,type COORD inc ax Loop L1 7 8

Nested Structures Nested structure structure 필드를포함한 structure Nested structure 변수의초기화 nested braces (or brackets) 을사용 Rectangle STRUCT UpperLeft COORD <> LowerRight COORD <> Rectangle ENDS rect1 Rectangle { {10,10}, {50,20} } rect2 Rectangle < <10,10>, <50,20> > Nested structure 변수의접근 ( 예 ) rect1.upperleft.x COORD STRUCT X WORD? Y WORD? COORD ENDS Union union 메모리를공유하는 field 들로구성된자료구조 메모리크기는가장긴 field의크기와같음 union 정의와변수선언및접근 Integer UNION D DWORD 0 W WORD 0 B BYTE 0 Integer ENDS val1 Integer <12345678h> val2 Integer <100h> val3 Integer <> mov val3.b, al mov ax,val3.w add val3.d, eax 9 10 Macros Parameter 가있는 Macro Macro 이름이부여된 assembly lanauge 문장들의 block macro procedure 라고도부름 macro 를사용 ( 호출 ) 할때마다정의된문장의복사본이삽입됨 필요하면 parameter를사용할수있음 (cf) C언어의 #define Macro 정의및호출 mnewline MACRO call Crlf mnewline ; define the macro ; invoke the macro mputchar macro 인수의문자를화면에출력 Definition: Invocation: Expansion: mputchar MACRO char push eax mov al,char call WriteChar pop eax mputchar 'A' 1 push eax 1 mov al, 'A' 1 call WriteChar 1 pop eax LST 파일 call Clf Crlf 로대치됨 11 12

mwritestr Macro mwritestr MACRO buffer mov edx,offset buffer call WriteString str1 BYTE "Welcome!",0 mwritestr str1 Macro Examples mreadstr - reads string from standard input mdumpmem - dumps a range of memory mwrite write string into standard output 1 1 mov edx,offset str1 1 call WriteString 1 잘못된 argument 사용은 expand 될때에확인됨 13 14 mreadstr Macro mdumpmem Macro mreadstr MACRO varname push ecx mov edx,offset varname mov ecx,(sizeof varname) - 1 call ReadString pop p ecx firstname BYTE 30 DUP(?) mreadstr firstname mdumpmem MACRO address, itemcount, componentsize push ebx push ecx push esi mov esi,address mov ecx,itemcount mov ebx,componentsize call DumpMem pop esi pop ecx pop p ebx mdumpmem OFFSET array, 8, 4 15 16

mwrite Macro data 포함 mwrite MACRO text LOCAL string string BYTE text,0 mov edx,offset string call Writestring macro comment ;; data segment ;; define local string ;; code segment LOCAL directive 를사용하여 macro 내에서사용하는변수정의 다른곳에서같은 macro를호출할때에같은이름의변수와구별할수있음 nesting level Nested Macros Nested macro: 다른 macro 를포함하여정의된 macro mwriteln MACRO text mwrite text call Crlf 정의 mwriteln "My Sample Macro Program" 호출 2 2??0002 BYTE "My Sample Macro Program",0 2 2 2 mov edx,offset??0002 2 call Writestring 2 1 call Crlf 17 18