Martin Brunner, Jonas Pfoh Sept. 6, Sept. 24, 2010

Size: px
Start display at page:

Download "Martin Brunner, Jonas Pfoh Sept. 6, Sept. 24, 2010"

Transcription

1 Martin Brunner, Jonas Pfoh IT Security Lab Technische Universität München Munich, Germany Sept. 6, Sept. 24, 2010

2 Outline

3 Welcome Goal: Build a tool that will recognize shellcode within packets. You will learn: 1 the layout and formation of IP packets 2 programming with the pcap library 3 what shellcode is and how it works 4 how shellcode can be recognized

4 Welcome Goal: Build a tool that will recognize shellcode within packets. You will learn: 1 the layout and formation of IP packets 2 programming with the pcap library 3 what shellcode is and how it works 4 how shellcode can be recognized

5 Curriculum Sept. 6 -, Course requirements, introduction, Milestone 1 assigned Sept Work on Milestone 1 Sept. 9 - Milestone 1 due, Milestone 2 assigned Sept Work on Milestone 2 Sept Milestone 2 due, to buffer overflows, shellcode, & shellcode detection, Milestone 3 & 4 assigned Sept Work on Milestone 3 & 4 Sept Milestone 3 due Sept Work on Milestone 4 Sept Milestone 4 due, Final demonstration

6 Curriculum Sept. 6 -, Course requirements, introduction, Milestone 1 assigned Sept Work on Milestone 1 Sept. 9 - Milestone 1 due, Milestone 2 assigned Sept Work on Milestone 2 Sept Milestone 2 due, to buffer overflows, shellcode, & shellcode detection, Milestone 3 & 4 assigned Sept Work on Milestone 3 & 4 Sept Milestone 3 due Sept Work on Milestone 4 Sept Milestone 4 due, Final demonstration

7 Curriculum Sept. 6 -, Course requirements, introduction, Milestone 1 assigned Sept Work on Milestone 1 Sept. 9 - Milestone 1 due, Milestone 2 assigned Sept Work on Milestone 2 Sept Milestone 2 due, to buffer overflows, shellcode, & shellcode detection, Milestone 3 & 4 assigned Sept Work on Milestone 3 & 4 Sept Milestone 3 due Sept Work on Milestone 4 Sept Milestone 4 due, Final demonstration

8 Curriculum Sept. 6 -, Course requirements, introduction, Milestone 1 assigned Sept Work on Milestone 1 Sept. 9 - Milestone 1 due, Milestone 2 assigned Sept Work on Milestone 2 Sept Milestone 2 due, to buffer overflows, shellcode, & shellcode detection, Milestone 3 & 4 assigned Sept Work on Milestone 3 & 4 Sept Milestone 3 due Sept Work on Milestone 4 Sept Milestone 4 due, Final demonstration

9 Milestones 1 tcpdump clone () 2 Simple signature detector (extend MS 1) page write-up explaining and defending your approach to shellcode detection 4 Shellcode detection tool (extend MS 2)

10 All programming milestones... must be done in C. must include a makefile and compile with make all. must compile on the workstations in the lab. must make use of the library.

11 All programming milestones... must be done in C. must include a makefile and compile with make all. must compile on the workstations in the lab. must make use of the library.

12 All programming milestones... must be done in C. must include a makefile and compile with make all. must compile on the workstations in the lab. must make use of the library.

13 All programming milestones... must be done in C. must include a makefile and compile with make all. must compile on the workstations in the lab. must make use of the library.

14 make & Makefiles What is make? What is a Makefile?

15 make & Makefiles What is make? make is a program that looks for a Makefile in the current working directory and compiles a program based on this Makefile. What is a Makefile?

16 make & Makefiles What is make? make is a program that looks for a Makefile in the current working directory and compiles a program based on this Makefile. What is a Makefile? A Makefile is a file that generally resides in the top-level directory of your source code and specifies how the program should be compiled.

17 Makefile CC=gcc CFLAGS= c Wall g LDFLAGS= g lpcap OBJS=pack. o a l l : pack Listing 1: Makefile pack : %.o : clean : ${OBJS} ${CC} ${LDFLAGS} ${OBJS} o $@ %.c ${CC} ${CFLAGS} $< rm r f. o pack Key: $@ = target, $< = dependencies, % = match Use: make all

18 Makefile CC=gcc CFLAGS= c Wall g LDFLAGS= g lpcap OBJS=pack. o a l l : pack Listing 2: Makefile pack : %.o : clean : ${OBJS} ${CC} ${LDFLAGS} ${OBJS} o $@ %.c ${CC} ${CFLAGS} $< rm r f. o pack Key: $@ = target, $< = dependencies, % = match Use: make all

19 getopt parser Use getopt 1 to parse commandline arguments! Important details: must include unistd.h char * optarg - the option argument (if required) int optopt - stores option char in case of error. int optind - stores index on next element in argv to be processed. int getopt (int argc, char **argv, const char *options) - returns the next option character (? on error) and stores the argument in optarg. Options are passed as single characters optionally followed by : if they require an argument or :: if they have an optional argument. 1 node/getopt.html

20 getopt parser - example a f l a g = 0 ; w h i l e ( ( c = g e t o p t ( argc, argv, ab : ) )!= 1){ s w i t c h ( c ) { c a s e a : a f l a g = 1 ; break ; c a s e b : bvalue = optarg ; break ; c a s e? : i f ( o p t o p t == b ) f p r i n t f ( s t d e r r, Option %c r e q u i r e s an argument.\ n, o p t o p t ) ; e l s e i f ( i s p r i n t ( o p t o p t ) ) f p r i n t f ( s t d e r r, Unknown o p t i o n %c. \ n, o p t o p t ) ; e l s e f p r i n t f ( s t d e r r, Unknown o p t i o n c h a r a c t e r \\ x%x. \ n, o p t o p t ) ; r e t u r n 1 ; d e f a u l t : a b o r t ( ) ; } } p r i n t f ( a f l a g = %d, b v a l u e = %s\n, a f l a g, b v a l u e ) ; f o r ( index = optind ; index < argc ; index++) p r i n t f ( Non o p t i o n argument %s\n, a r g v [ i n d e x ] ) ;

21 Debugging Don t rely on printf, debuggers are your friend! Learn to use them. Recommendations: gdb - traditional/powerful commandline debugger ddd - front-end GUI for gdb, nice for beginners valgrind - excellent for tracking down causes of segfaults and debugging memory leaks

22 Ethernet (Layer 2 - Data Link) Common Ether Types: IPv4 (0x0800) IPv6 (0x86DD) ARP (0x0806) 2 2

23 IPv4 (Layer 3 - Network) serial communication/ip-header-v4.png

24 TCP (Layer 4 - Transport) header.png

25 UDP (Layer 4 - Transport) 5 Length refers to length of entire datagram in bytes. 5

26 ICMP (Layer 4 - Transport) 6 6

27 Network Byte Order What is byte order (or endianness)?

28 Network Byte Order What is byte order (or endianness)? The order in which bytes are stored within a system. What is the byte order used in IP? in x86?

29 Network Byte Order What is byte order (or endianness)? The order in which bytes are stored within a system. What is the byte order used in IP? in x86? IP = big endian byte order, x86 = little endian byte order How do we solve this problem?

30 Network Byte Order What is byte order (or endianness)? The order in which bytes are stored within a system. What is the byte order used in IP? in x86? IP = big endian byte order, x86 = little endian byte order How do we solve this problem? htons(), htonl(), ntohs(), ntohl() (include netinet/in.h )

31 Usage 1 Open source (device or file) pcap open offline pcap open live 2 Set filter pcap lookupnet pcap compile pcap setfilter 3 Set callback function pcap loop 4 Handle incoming packets 5 Close Source pcap close

32 Usage 1 Open source (device or file) pcap open offline pcap open live 2 Set filter pcap lookupnet pcap compile pcap setfilter 3 Set callback function pcap loop 4 Handle incoming packets 5 Close Source pcap close

33 Usage 1 Open source (device or file) pcap open offline pcap open live 2 Set filter pcap lookupnet pcap compile pcap setfilter 3 Set callback function pcap loop 4 Handle incoming packets 5 Close Source pcap close

34 Usage 1 Open source (device or file) pcap open offline pcap open live 2 Set filter pcap lookupnet pcap compile pcap setfilter 3 Set callback function pcap loop 4 Handle incoming packets 5 Close Source pcap close

35 Usage 1 Open source (device or file) pcap open offline pcap open live 2 Set filter pcap lookupnet pcap compile pcap setfilter 3 Set callback function pcap loop 4 Handle incoming packets 5 Close Source pcap close

36 Hints Include pcap.h and compile with -lpcap Protocol header structs already exist for the most part in various headers Read: Hakin9LuisMartinGarcia.pdf Use man page as reference (

37 1 getopt 1 Using-Getopt.html (read) (read) 2 Hakin9LuisMartinGarcia.pdf (read) 3 (ref) 3 Buffer Overflows/Shellcode 1 pdf (read) how-to-create-polymorphic-shellcode (read) 3 (read)

PRINCIPLES OF OPERATING SYSTEMS

PRINCIPLES OF OPERATING SYSTEMS PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)

More information

Recitation: Cache Lab & C

Recitation: Cache Lab & C 15-213 Recitation: Cache Lab & C Jack Biggs 16 Feb 2015 Agenda Buffer Lab! C Exercises! C Conventions! C Debugging! Version Control! Compilation! Buffer Lab... Is due soon. So maybe do it soon Agenda Buffer

More information

Recitation 2/18/2012

Recitation 2/18/2012 15-213 Recitation 2/18/2012 Announcements Buflab due tomorrow Cachelab out tomorrow Any questions? Outline Cachelab preview Useful C functions for cachelab Cachelab Part 1: you have to create a cache simulator

More information

CSc 450/550: Computer Communications and Networks (Summer 2007)

CSc 450/550: Computer Communications and Networks (Summer 2007) 1 2 3 4 5 6 CSc 450/550: Computer Communications and Networks (Summer 2007) Lab Project 3: A Simple Network Traffic Analyzer Spec Out: July 6, 2007 Demo Due: July 25, 2007 Code Due: July 27, 2007 7 8 9

More information

Cache Lab Implementation and Blocking

Cache Lab Implementation and Blocking Cache Lab Implementation and Blocking Lou Clark February 24 th, 2014 1 Welcome to the World of Pointers! 2 Class Schedule Cache Lab Due Thursday. Start soon if you haven t yet! Exam Soon! Start doing practice

More information

de facto standard C library Contains a bunch of header files and APIs to do various tasks

de facto standard C library Contains a bunch of header files and APIs to do various tasks CSE333 SECTION 6 GNU C Library de facto standard C library Contains a bunch of header files and APIs to do various tasks Don t need to memorize everything Do need to know what if there s an API that can

More information

CSci 4061 Introduction to Operating Systems. Programs in C/Unix

CSci 4061 Introduction to Operating Systems. Programs in C/Unix CSci 4061 Introduction to Operating Systems Programs in C/Unix Today Basic C programming Follow on to recitation Structure of a C program A C program consists of a collection of C functions, structs, arrays,

More information

CMPT 300. Operating Systems. Brief Intro to UNIX and C

CMPT 300. Operating Systems. Brief Intro to UNIX and C CMPT 300 Operating Systems Brief Intro to UNIX and C Outline Welcome Review Questions UNIX basics and Vi editor Using SSH to remote access Lab2(4214) Compiling a C Program Makefile Basic C/C++ programming

More information

A Client-Server Exchange

A Client-Server Exchange Socket programming A Client-Server Exchange A server process and one or more client processes Server manages some resource. Server provides service by manipulating resource for clients. 1. Client sends

More information

Software Development With Emacs: The Edit-Compile-Debug Cycle

Software Development With Emacs: The Edit-Compile-Debug Cycle Software Development With Emacs: The Edit-Compile-Debug Cycle Luis Fernandes Department of Electrical and Computer Engineering Ryerson Polytechnic University August 8, 2017 The Emacs editor permits the

More information

Operating Systems and Networks Project 1: Reliable Transport

Operating Systems and Networks Project 1: Reliable Transport Spring Term 2016 Operating Systems and Networks Project 1: Reliable Transport Assigned on: 22 April 2016 Due by: 13 May 2016 1 Introduction In this project, your task is to implement a reliable sliding

More information

Socket Programming for TCP and UDP

Socket Programming for TCP and UDP CSCI4430 Data Communication and Computer Networks Socket Programming for TCP and UDP ZHANG, Mi Jan. 19, 2017 Outline Socket Programming for TCP Introduction What is TCP What is socket TCP socket programming

More information

Socket Programming. #In the name of Allah. Computer Engineering Department Sharif University of Technology CE443- Computer Networks

Socket Programming. #In the name of Allah. Computer Engineering Department Sharif University of Technology CE443- Computer Networks #In the name of Allah Computer Engineering Department Sharif University of Technology CE443- Computer Networks Socket Programming Acknowledgments: Lecture slides are from Computer networks course thought

More information

CS 640: Computer Networking

CS 640: Computer Networking CS 640: Computer Networking Yu-Chi Lai Lecture 3 Network Programming Topics Client-server model Sockets interface Socket primitives Example code for echoclient and echoserver Debugging With GDB Programming

More information

Reviewing gcc, make, gdb, and Linux Editors 1

Reviewing gcc, make, gdb, and Linux Editors 1 Reviewing gcc, make, gdb, and Linux Editors 1 Colin Gordon csgordon@cs.washington.edu University of Washington CSE333 Section 1, 3/31/11 1 Lots of material borrowed from 351/303 slides Colin Gordon (University

More information

Dynamic memory allocation

Dynamic memory allocation Dynamic memory allocation outline Memory allocation functions Array allocation Matrix allocation Examples Memory allocation functions (#include ) malloc() Allocates a specified number of bytes

More information

Recitation: C Review. TA s 20 Feb 2017

Recitation: C Review. TA s 20 Feb 2017 15-213 Recitation: C Review TA s 20 Feb 2017 Agenda Logistics Attack Lab Conclusion C Assessment C Programming Style C Exercise Cache Lab Overview Appendix: Valgrind Clang / LLVM Cache Structure Logistics

More information

Carnegie Mellon. Cache Lab. Recitation 7: Oct 11 th, 2016

Carnegie Mellon. Cache Lab. Recitation 7: Oct 11 th, 2016 1 Cache Lab Recitation 7: Oct 11 th, 2016 2 Outline Memory organization Caching Different types of locality Cache organization Cache lab Part (a) Building Cache Simulator Part (b) Efficient Matrix Transpose

More information

CSCI-243 Exam 2 Review February 22, 2015 Presented by the RIT Computer Science Community

CSCI-243 Exam 2 Review February 22, 2015 Presented by the RIT Computer Science Community CSCI-43 Exam Review February, 01 Presented by the RIT Computer Science Community http://csc.cs.rit.edu C Preprocessor 1. Consider the following program: 1 # include 3 # ifdef WINDOWS 4 # include

More information

Tutorial on Socket Programming

Tutorial on Socket Programming Tutorial on Socket Programming Computer Networks - CSC 458 Department of Computer Science Hao Wang (Slides are mainly from Seyed Hossein Mortazavi, Monia Ghobadi, and Amin Tootoonchian, ) 1 Outline Client-server

More information

Embedded Software TI2726 B. 3. C tools. Koen Langendoen. Embedded Software Group

Embedded Software TI2726 B. 3. C tools. Koen Langendoen. Embedded Software Group Embedded Software 3. C tools TI2726 B Koen Langendoen Embedded Software Group C development cycle 1. [Think] 2. Edit 3. Compile 4. Test 5. Debug 6. Tune UNIX toolbox 2. vi, emacs, gedit 3. gcc, make 4.

More information

Introduction to OSI model and Network Analyzer :- Introduction to Wireshark

Introduction to OSI model and Network Analyzer :- Introduction to Wireshark Sungkyunkwan University Introduction to OSI model and Network Analyzer :- Introduction to Wireshark Syed Muhammad Raza s.moh.raza@gmail.com Copyright 2000-2014 Networking Laboratory 1/56 An Overview Internet

More information

Exercise Session 2 Systems Programming and Computer Architecture

Exercise Session 2 Systems Programming and Computer Architecture Systems Group Department of Computer Science ETH Zürich Exercise Session 2 Systems Programming and Computer Architecture Herbstsemester 216 Agenda Linux vs. Windows Working with SVN Exercise 1: bitcount()

More information

JTSK Programming in C II C-Lab II. Lecture 3 & 4

JTSK Programming in C II C-Lab II. Lecture 3 & 4 JTSK-320112 Programming in C II C-Lab II Lecture 3 & 4 Xu (Owen) He Spring 2018 Slides modified from Dr. Kinga Lipskoch Planned Syllabus The C Preprocessor Bit Operations Pointers and Arrays (Dynamically

More information

Tutorial 1 C Tutorial: Pointers, Strings, Exec

Tutorial 1 C Tutorial: Pointers, Strings, Exec TCSS 422: Operating Systems Institute of Technology Spring 2017 University of Washington Tacoma http://faculty.washington.edu/wlloyd/courses/tcss422 Tutorial 1 C Tutorial: Pointers, Strings, Exec The purpose

More information

GDB and Makefile. Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island

GDB and Makefile. Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island GDB and Makefile Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island GDB Debugging: An Example #include void main() { int i; int result

More information

Computer Networks Prof. Ashok K. Agrawala

Computer Networks Prof. Ashok K. Agrawala CMSC417 Computer Networks Prof. Ashok K. Agrawala 2018Ashok Agrawala September 6, 2018 Fall 2018 Sept 6, 2018 1 Overview Client-server paradigm End systems Clients and servers Sockets Socket abstraction

More information

ECE 435 Network Engineering Lecture 2

ECE 435 Network Engineering Lecture 2 ECE 435 Network Engineering Lecture 2 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 6 September 2018 Announcements Homework 1 will be posted. Will be on website, will announce

More information

Direct Memory Access. Lecture 2 Pointer Revision Command Line Arguments. What happens when we use pointers. Same again with pictures

Direct Memory Access. Lecture 2 Pointer Revision Command Line Arguments. What happens when we use pointers. Same again with pictures Lecture 2 Pointer Revision Command Line Arguments Direct Memory Access C/C++ allows the programmer to obtain the value of the memory address where a variable lives. To do this we need to use a special

More information

UNIX Network Programming. Overview of Socket API Network Programming Basics

UNIX Network Programming. Overview of Socket API Network Programming Basics UNIX Network Programming Overview of Socket API Network Programming Basics 1 Client-Server Model Client Machine A Network Server Machine B Web browser and server FTP client and server Telnet client and

More information

High-performance computing and programming I. Introduction to C programming in *NIX

High-performance computing and programming I. Introduction to C programming in *NIX High-performance computing and programming I Introduction to C programming in *NIX Writing C programs in Unix/Linux Writing code Building code compile with gcc (or cc) link with gcc (or ld) make Environment

More information

ECE 435 Network Engineering Lecture 2

ECE 435 Network Engineering Lecture 2 ECE 435 Network Engineering Lecture 2 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 31 August 2017 Announcements Homework 1 will be posted. Will be on website, will announce

More information

CSMC 412. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala Set 2. September 15 CMSC417 Set 2 1

CSMC 412. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala Set 2. September 15 CMSC417 Set 2 1 CSMC 412 Computer Networks Prof. Ashok K Agrawala 2015 Ashok Agrawala Set 2 September 15 CMSC417 Set 2 1 Contents Client-server paradigm End systems Clients and servers Sockets Socket abstraction Socket

More information

Packet Sniffing and Spoofing

Packet Sniffing and Spoofing Some of the slides borrowed from the book Computer Security: A Hands on Approach by Wenliang Du Packet Sniffing and Spoofing Chester Rebeiro IIT Madras Shared Networks Every network packet reaches every

More information

Network Analyzer :- Introduction to Wireshark

Network Analyzer :- Introduction to Wireshark Sungkyunkwan University Network Analyzer :- Introduction to Wireshark Syed M. Raza s.moh.raza@skku.edu H. Choo choo@skku.edu Copyright 2000-2018 Networking Laboratory Networking Laboratory 1/56 An Overview

More information

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level

More information

disspcap Documentation

disspcap Documentation disspcap Documentation Release 0.0.1 Daniel Uhricek Dec 12, 2018 Installation 1 Requirements 3 1.1 Build depedencies............................................ 3 1.2 Python depedencies...........................................

More information

Deep C. Multifile projects Getting it running Data types Typecasting Memory management Pointers. CS-343 Operating Systems

Deep C. Multifile projects Getting it running Data types Typecasting Memory management Pointers. CS-343 Operating Systems Deep C Multifile projects Getting it running Data types Typecasting Memory management Pointers Fabián E. Bustamante, Fall 2004 Multifile Projects Give your project a structure Modularized design Reuse

More information

Packet Sniffing and Spoofing Lab

Packet Sniffing and Spoofing Lab SEED Labs Packet Sniffing and Spoofing Lab 1 Packet Sniffing and Spoofing Lab Copyright 2006-2016 Wenliang Du, Syracuse University. The development of this document was partially funded by the National

More information

2 Compiling a C program

2 Compiling a C program 2 Compiling a C program This chapter describes how to compile C programs using gcc. Programs can be compiled from a single source file or from multiple source files, and may use system libraries and header

More information

Cosc 242 Assignment. Due: 4pm Friday September 15 th 2017

Cosc 242 Assignment. Due: 4pm Friday September 15 th 2017 Cosc 242 Assignment Due: 4pm Friday September 15 th 2017 Group work For this assignment we require you to work in groups of three people. You may select your own group and inform us of your choice via

More information

{C} Tools of the Trade

{C} Tools of the Trade {C} Tools of the Trade make Building Software 3 gcc is our compiler Turns C code into machine code ar is our librarian Gathers machine code files into groups called libraries But calling these over and

More information

Networked Applications: Sockets. End System: Computer on the Net

Networked Applications: Sockets. End System: Computer on the Net Networked Applications: Sockets Topics Programmer s view of the Internet Sockets interface End System: Computer on the Net Internet Also known as a host 2 Page 1 Clients and Servers Client program Running

More information

15213 Recitation Section C

15213 Recitation Section C 15213 Recitation Section C Outline Sept. 9, 2002 Introduction Unix and C Playing with Bits Practice Problems Introducing Myself Try to pronounce my name: My office hour: Wed 2-3pm, WeH 8019 Contact: Email:

More information

Hyo-bong Son Computer Systems Laboratory Sungkyunkwan University

Hyo-bong Son Computer Systems Laboratory Sungkyunkwan University Sockets Hyo-bong Son (proshb@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Client-Server Model Most network application is based on the client-server model: A server

More information

How to learn C? CSCI [4 6]730: A C Refresher or Introduction. Diving In: A Simple C Program 1-hello-word.c

How to learn C? CSCI [4 6]730: A C Refresher or Introduction. Diving In: A Simple C Program 1-hello-word.c How to learn C? CSCI [4 6]730: A C Refresher or Introduction Hello Word! ~/ctutorial/ In addition to syntax you need to learn: the Tools. the Libraries. And the Documentation (how to access) Practice on

More information

API for Auxiliary Processing Unit

API for Auxiliary Processing Unit API for Auxiliary Processing Unit TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... Misc... API for Auxiliary Processing Unit... 1 Introduction... 3 Release Information 3 Features

More information

1.2 The first Internet (i.e., one of the first packet switched networks) was referred to as the ARPANET.

1.2 The first Internet (i.e., one of the first packet switched networks) was referred to as the ARPANET. CPSC 360 Spring 2011 Exam 1 Solutions This exam is closed book, closed notes, closed laptops. You are allowed to have one 8.5x11 sheets of paper with whatever you like written on the front and back. You

More information

NETWORK AND SYSTEM PROGRAMMING

NETWORK AND SYSTEM PROGRAMMING NETWORK AND SYSTEM PROGRAMMING LAB 09 Network Byte Ordering, inet_aton, inet_addr, inet_ntoa Functions Objectives: To learn byte order conversion To understand inet-aton, inet_addr, inet_ntoa Functions

More information

Stack overflow exploitation

Stack overflow exploitation Stack overflow exploitation In order to illustrate how the stack overflow exploitation goes I m going to use the following c code: #include #include #include static void

More information

Lab 1: Packet Sniffing and Wireshark

Lab 1: Packet Sniffing and Wireshark Lab 1: Packet Sniffing and Wireshark Fengwei Zhang Wayne State University Course: Cyber Security Practice 1 Packet Sniffer Packet sniffer is a basic tool for observing network packet exchanges in a computer

More information

Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2

Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2 Compiling a C program CS Basics 15) Compiling a C prog. Emmanuel Benoist Fall Term 2016-17 Example of a small program Makefile Define Variables Compilation options Conclusion Berner Fachhochschule Haute

More information

CS Basics 15) Compiling a C prog.

CS Basics 15) Compiling a C prog. CS Basics 15) Compiling a C prog. Emmanuel Benoist Fall Term 2016-17 Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 1 Compiling a C program Example of a small

More information

EL2310 Scientific Programming LAB2: C lab session. Patric Jensfelt, Andrzej Pronobis

EL2310 Scientific Programming LAB2: C lab session. Patric Jensfelt, Andrzej Pronobis EL2310 Scientific Programming LAB2: C lab session Patric Jensfelt, Andrzej Pronobis Chapter 1 Introduction 1.1 Reporting errors As any document, this document is likely to include errors and typos. Please

More information

Oral. Total. Dated Sign (2) (5) (3) (2)

Oral. Total. Dated Sign (2) (5) (3) (2) R N Oral Total Dated Sign (2) (5) (3) (2) Assignment Group- A_07 Problem Definition Write a program using TCP socket for wired network for following Say Hello to Each other ( For all students) File transfer

More information

Computer Networks A Simple Network Analyzer Decoding Ethernet and IP headers

Computer Networks A Simple Network Analyzer Decoding Ethernet and IP headers Computer Networks A Simple Network Analyzer Decoding Ethernet and IP headers Objectives The main objective of this assignment is to gain an understanding of network activities and network packet formats

More information

just a ((somewhat) safer) dialect.

just a ((somewhat) safer) dialect. Intro_to_C Page 1 Intro to C Tuesday, September 07, 2004 5:30 PM C was developed specifically for writing operating systems Low level of abstraction. "Just above machine language." Direct access to the

More information

Intermediate Programming, Spring 2017*

Intermediate Programming, Spring 2017* 600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general

More information

Networked Applications: Sockets. Goals of Todayʼs Lecture. End System: Computer on the ʻNet. Client-server paradigm End systems Clients and servers

Networked Applications: Sockets. Goals of Todayʼs Lecture. End System: Computer on the ʻNet. Client-server paradigm End systems Clients and servers Networked Applications: Sockets CS 375: Computer Networks Spring 2009 Thomas Bressoud 1 Goals of Todayʼs Lecture Client-server paradigm End systems Clients and servers Sockets and Network Programming Socket

More information

CS11 C++ DGC. Spring Lecture 6

CS11 C++ DGC. Spring Lecture 6 CS11 C++ DGC Spring 2006-2007 Lecture 6 The Spread Toolkit A high performance, open source messaging service Provides message-based communication Point-to-point messaging Group communication (aka broadcast

More information

Armide Documentation. Release Kyle Mayes

Armide Documentation. Release Kyle Mayes Armide Documentation Release 0.3.1 Kyle Mayes December 19, 2014 Contents 1 Introduction 1 1.1 Features.................................................. 1 1.2 License..................................................

More information

CS 392/681 Lab 6 Experiencing Buffer Overflows and Format String Vulnerabilities

CS 392/681 Lab 6 Experiencing Buffer Overflows and Format String Vulnerabilities CS 392/681 Lab 6 Experiencing Buffer Overflows and Format String Vulnerabilities Given: November 13, 2003 Due: November 20, 2003 1 Motivation Buffer overflows and format string vulnerabilities are widespread

More information

CSE 124 Discussion (10/3) C/C++ Basics

CSE 124 Discussion (10/3) C/C++ Basics CSE 124 Discussion (10/3) C/C++ Basics Topics - main() function - Compiling with gcc/makefile - Primitives - Structs/Enums - Function calls/loops - C++ Classes/stdtl - Pointers/Arrays - Memory allocation/freeing

More information

Assignment 5: Priority Queue

Assignment 5: Priority Queue Assignment 5: Priority Queue Topic(s): Priority Queues, Code Reusability, More Advanced Makefiles, Debugging, Testing Date assigned: Wednesday, October 18, 2017 Date due: Wednesday, November 1, 2017, 9:15

More information

Systems Programming/ C and UNIX

Systems Programming/ C and UNIX Systems Programming/ C and UNIX Alice E. Fischer September 6, 2017 Alice E. Fischer Systems Programming Lecture 2... 1/28 September 6, 2017 1 / 28 Outline 1 Booting into Linux 2 The Command Shell 3 Defining

More information

Lab 0. Yvan Petillot. Networks - Lab 0 1

Lab 0. Yvan Petillot. Networks - Lab 0 1 Lab 0 Yvan Petillot Networks - Lab 0 1 What You Will Do In This Lab. The purpose of this lab is to help you become familiar with the UNIX/LINUX on the lab network. This means being able to do editing,

More information

Project 1: A Web Server Called Liso

Project 1: A Web Server Called Liso Project 1: A Web Server Called Liso 15-441/641 Computer Networks Kenneth Yang Viswesh Narayanan "What happens when you type google.com into your browser's address box and press enter?"... Establish a TCP

More information

CNT5505 Programming Assignment No. 4: Internet Packet Analyzer (This is an individual assignment. It must be implemented in C++ or C)

CNT5505 Programming Assignment No. 4: Internet Packet Analyzer (This is an individual assignment. It must be implemented in C++ or C) . CNT5505 Programming Assignment No. 4: Internet Packet Analyzer (This is an individual assignment. It must be implemented in C++ or C) PURPOSE Experience with packet analyzing and Internet packet formats.

More information

Exercise Session 6 Computer Architecture and Systems Programming

Exercise Session 6 Computer Architecture and Systems Programming Systems Group Department of Computer Science ETH Zürich Exercise Session 6 Computer Architecture and Systems Programming Herbstsemester 2016 Agenda GDB Outlook on assignment 6 GDB The GNU Debugger 3 Debugging..

More information

CS244A Review Session

CS244A Review Session CS244A Review Session Building your own Router Assignment#2 Friday, January 25, 2008 Clay Collier (based on slide by Martin Casado) Assignment Overview You build a virtual network topology You write a

More information

82V391x / 8V893xx WAN PLL Device Families Device Driver User s Guide

82V391x / 8V893xx WAN PLL Device Families Device Driver User s Guide 82V391x / 8V893xx WAN PLL Device Families Device Driver Version 1.2 April 29, 2014 Table of Contents 1. Introduction... 1 2. Software Architecture... 2 2.1. Overview... 2 2.2. Hardware Abstraction Layer

More information

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition ELEC / COMP 177 Fall 2014 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Project #1 Starts in one week Is your Linux environment all ready? Bring your laptop Work time after quick

More information

Practical Exercises in Computer Networks

Practical Exercises in Computer Networks Practical Exercises in Computer Networks Programmatic access to the datalink layer 2015-18, José María Foces Morán Computer networks are complex systems. Abstractions play a central role in the conceptualization

More information

CS480. Compilers Eclipse, SVN, Makefile examples

CS480. Compilers Eclipse, SVN, Makefile examples CS480 Compilers Eclipse, SVN, Makefile examples January 26, 2015 New Project New Project C/C++ Project Create a New C Project Choose Makefile Project EmptyProject Toolchain: Linux GCC Next Advanced C/C++

More information

Peer to Peer Instant Messaging

Peer to Peer Instant Messaging Peer to Peer Instant Messaging Assignment in Data communication I, Department of Information Technology, Uppsala University. Overview In this programming exercise you will implement a peer to peer instant

More information

Pointers & Dynamic Memory Review C Pointers Introduce C++ Pointers

Pointers & Dynamic Memory Review C Pointers Introduce C++ Pointers Pointers & Dynamic Memory Review C Pointers Introduce C++ Pointers Data Abstractions CSCI-2320 Dr. Tom Hicks Computer Science Department c http://carme.cs.trinity.edu/ thicks/2320/schedule.html http://carme.cs.trinity.edu/thicks/2320/schedule.html

More information

Makefiles are a simple way to organize code compilation. Using a makefile it is possible to compile several source files to produce an executable;

Makefiles are a simple way to organize code compilation. Using a makefile it is possible to compile several source files to produce an executable; Makefile Makefiles are a simple way to organize code compilation. Using a makefile it is possible to compile several source files to produce an executable; Source (.cc) and header (.h) files can be placed

More information

UNIX Sockets. COS 461 Precept 1

UNIX Sockets. COS 461 Precept 1 UNIX Sockets COS 461 Precept 1 Socket and Process Communica;on application layer User Process Socket transport layer (TCP/UDP) OS network stack network layer (IP) link layer (e.g. ethernet) Internet Internet

More information

NETWORK PROGRAMMING. Instructor: Junaid Tariq, Lecturer, Department of Computer Science

NETWORK PROGRAMMING. Instructor: Junaid Tariq, Lecturer, Department of Computer Science NETWORK PROGRAMMING CSC- 341 25 Instructor: Junaid Tariq, Lecturer, Department of Computer Science 26 9 Lecture Sockets as means for inter-process communication (IPC) application layer Client Process Socket

More information

independent compilation and Make

independent compilation and Make independent compilation and Make Geoffrey Brown David S. Wise Chris Haynes Bryce Himebaugh Computer Structures Fall 2013 Independent Compilation As a matter of style, source code files should rarely be

More information

Scientific Programming in C IX. Debugging

Scientific Programming in C IX. Debugging Scientific Programming in C IX. Debugging Susi Lehtola 13 November 2012 Debugging Quite often you spend an hour to write a code, and then two hours debugging why it doesn t work properly. Scientific Programming

More information

External Data Representation (XDR)

External Data Representation (XDR) External Data Representation (XDR) Prof. Chuan-Ming Liu Computer Science and Information Engineering National Taipei University of Technology Taipei, TAIWAN NTUT, TAIWAN 1 Introduction This chapter examines

More information

Socket Programming 2007/03/28

Socket Programming 2007/03/28 Socket Programming 2007/03/28 Reference W. Richard Stevens, Unix Network Programming 2/e Volume 1,1998 James F. Kurose and Keith W. Ross, "Computer Networks: A Top-Down Approach Featuring the Internet

More information

CAAM 420 Daily Note. Scriber: Qijia Jiang. Date: Oct.16. Project 3 Due Wed 23.Oct. Two parts: debug code and library exercise.

CAAM 420 Daily Note. Scriber: Qijia Jiang. Date: Oct.16. Project 3 Due Wed 23.Oct. Two parts: debug code and library exercise. CAAM 420 Daily Note Scriber: Qijia Jiang Date: Oct.16 1 Announcement Project 3 Due Wed 23.Oct. Two parts: debug code and library exercise. 2 Make Convention Make syntax for library directories and library

More information

CS2141 Software Development using C/C++ Debugging

CS2141 Software Development using C/C++ Debugging CS2141 Software Development using C/C++ Debugging Debugging Tips Examine the most recent change Error likely in, or exposed by, code most recently added Developing code incrementally and testing along

More information

Process Concept: views of a process Process Scheduling CSCI 6730/ 4730 Operating Systems

Process Concept: views of a process Process Scheduling CSCI 6730/ 4730 Operating Systems Chapter 3: Processes: Outline Process Concept: views of a process Process Scheduling CSCI 6730/ 4730 Operating Systems Operations on Processes Cooperating Processes Inter Process Communication (IPC) RPC:

More information

CS 103 Chroma Key. 1 Introduction. 2 What you will learn. 3 Background Information and Notes

CS 103 Chroma Key. 1 Introduction. 2 What you will learn. 3 Background Information and Notes CS 103 Chroma Key 1 Introduction In this assignment you will perform a green-screen or chroma key operation. You will be given an input image (e.g. Stephen Colbert) with a green background. First, you

More information

Laboratory 1 Semester 1 11/12

Laboratory 1 Semester 1 11/12 CS2106 National University of Singapore School of Computing Laboratory 1 Semester 1 11/12 MATRICULATION NUMBER: In this lab exercise, you will get familiarize with some basic UNIX commands, editing and

More information

CS11 Advanced C++ Fall Lecture 4

CS11 Advanced C++ Fall Lecture 4 CS11 Advanced C++ Fall 2006-2007 Lecture 4 Today s Topics Using make to automate build tasks Using doxygen to generate API docs Build-Automation Standard development cycle: Write more code Compile Test

More information

DAY 4. CS3600, Northeastern University. Alan Mislove

DAY 4. CS3600, Northeastern University. Alan Mislove C BOOTCAMP DAY 4 CS3600, Northeastern University Slides adapted from Anandha Gopalan s CS132 course at Univ. of Pittsburgh and the CS240 course at Purdue C Debugging 2 Debugging with gdb GDB is a debugger

More information

CSE 333 SECTION 3. POSIX I/O Functions

CSE 333 SECTION 3. POSIX I/O Functions CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight HW2 Due Thursday, July 19 th Midterm on Monday, July 23 th 10:50-11:50 in TBD (And regular exercises in between) POSIX

More information

SIMPLE ROUTER PROJECT 2. - Balachander Padmanabha - TA CSE 123 (FALL 2017) - OH (Wed 9-11am B240A)

SIMPLE ROUTER PROJECT 2. - Balachander Padmanabha - TA CSE 123 (FALL 2017) - OH (Wed 9-11am B240A) SIMPLE ROUTER PROJECT 2 - Balachander Padmanabha - TA CSE 123 (FALL 2017) - OH (Wed 9-11am B240A) MININET It is a network emulation orchestration system which runs a collection of end-hosts, switches,

More information

CS 3516: Advanced Computer Networks

CS 3516: Advanced Computer Networks Welcome to CS 3516: Advanced Computer Networks Prof. Yanhua Li Time: 9:00am 9:50am M, T, R, and F Location: Fuller 320 Fall 2017 A-term 1 Some slides are originally from the course materials of the textbook

More information

2/13/2014. A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints

2/13/2014. A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints Rensselaer Polytechnic Institute CSCI-4220 Network Programming David Goldschmidt, Ph.D. A protocol is an agreed-upon convention that defines how communication occurs between two (or more?) endpoints All

More information

Programming in C S c o t t S c h r e m m e r

Programming in C S c o t t S c h r e m m e r Programming in C S c o t t S c h r e m m e r Outline Introduction Data Types and structures Pointers, arrays and dynamic memory allocation Functions and prototypes input/output comparisons compiling/makefiles/debugging

More information

Maemo Diablo Source code for the LibOSSO RPC examples Training Material

Maemo Diablo Source code for the LibOSSO RPC examples Training Material Maemo Diablo Source code for the LibOSSO RPC examples Training Material February 9, 2009 Contents 1 Source code for the LibOSSO RPC examples 2 1.1 libosso-example-sync/libosso-rpc-sync.c..............

More information

Getting Familiar with CCN

Getting Familiar with CCN Getting Familiar with CCN 1 Project Goal In this project you will experiment with simple client/server programs in CCN to familiarize yourselves with the CCN basics. You will compile, run, and answer the

More information

Distributed: Monday, Nov. 30, Due: Monday, Dec. 7 at midnight

Distributed: Monday, Nov. 30, Due: Monday, Dec. 7 at midnight cs281: Introduction to Computer Systems Project Lab: The Cachelab Simulating a Cache Controler Distributed: Monday, Nov. 30, Due: Monday, Dec. 7 at midnight Introduction This assignment will help you understand

More information

Creating a Shell or Command Interperter Program CSCI411 Lab

Creating a Shell or Command Interperter Program CSCI411 Lab Creating a Shell or Command Interperter Program CSCI411 Lab Adapted from Linux Kernel Projects by Gary Nutt and Operating Systems by Tannenbaum Exercise Goal: You will learn how to write a LINUX shell

More information