Introduction to Information Security מרצים : Dr. Eran Tromer: Prof. Avishai Wool: מתרגלים : Itamar Gilad

Slides:



Advertisements
Similar presentations
Practical Malware Analysis
Advertisements

COMP 2003: Assembly Language and Digital Logic
Introduction to Information Security ROP – Recitation 5 nirkrako at post.tau.ac.il itamarg at post.tau.ac.il.
C Programming and Assembly Language Janakiraman V – NITK Surathkal 2 nd August 2014.
Computer Organization And Assembly Language
Assembly Language for Intel-Based Computers Chapter 5: Procedures Kip R. Irvine.
PC hardware and x86 3/3/08 Frans Kaashoek MIT
1 ICS 51 Introductory Computer Organization Fall 2006 updated: Oct. 2, 2006.
1 Lecture 5: Procedures Assembly Language for Intel-Based Computers, 4th edition Kip R. Irvine.
1 Function Calls Professor Jennifer Rexford COS 217 Reading: Chapter 4 of “Programming From the Ground Up” (available online from the course Web site)
Accessing parameters from the stack and calling functions.
Practical Session 3. The Stack The stack is an area in memory that its purpose is to provide a space for temporary storage of addresses and data items.
September 22, 2014 Pengju (Jimmy) Jin Section E
Microprocessor Systems Design I Instructor: Dr. Michael Geiger Spring 2014 Lecture 4: x86 memory.
Recitation 2: Assembly & gdb Andrew Faulring Section A 16 September 2002.
Recitation: Bomb Lab June 5, 2015 Dipayan Bhattacharya.
ESP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. } EIP 100: 200: 250: 300: 350:
CEG 320/520: Computer Organization and Assembly Language ProgrammingIntel Assembly 1 Intel IA-32 vs Motorola
Introduction to InfoSec – Recitation 2 Nir Krakowski (nirkrako at post.tau.ac.il) Itamar Gilad (itamargi at post.tau.ac.il)
6.828: PC hardware and x86 Frans Kaashoek
Y86 Processor State Program Registers
Carnegie Mellon Introduction to Computer Systems /18-243, spring 2009 Recitation, Jan. 14 th.
1 Carnegie Mellon Stacks : Introduction to Computer Systems Recitation 5: September 24, 2012 Joon-Sup Han Section F.
Hello ASM World: A Painless and Contextual Introduction to x86 Assembly rogueclown DerbyCon 3.0 September 28, 2013.
Disclaimer The Content, Demonstration, Source Code and Programs presented here is "AS IS" without any warranty or conditions.
Code Generation Gülfem Savrun Yeniçeri CS 142 (b) 02/26/2013.
Introduction to Information Security מרצים : Dr. Eran Tromer: Prof. Avishai Wool: מתרגלים : Itamar Gilad
The x86 Architecture Lecture 15 Fri, Mar 4, 2005.
Recitation 2: Outline Assembly programming Using gdb L2 practice stuff Minglong Shao Office hours: Thursdays 5-6PM Wean Hall.
Introduction to InfoSec – Recitation 2 Nir Krakowski (nirkrako at post.tau.ac.il) Itamar Gilad (itamargi at post.tau.ac.il)
1 ICS 51 Introductory Computer Organization Fall 2009.
26-Nov-15 (1) CSC Computer Organization Lecture 6: Pentium IA-32.
Assembly and Bomb Lab : Introduction to Computer Systems Recitation 4: Monday, Sept. 16, 2013 Marjorie Carlson Section A.
Assembly Language. Symbol Table Variables.DATA var DW 0 sum DD 0 array TIMES 10 DW 0 message DB ’ Welcome ’,0 char1 DB ? Symbol Table Name Offset var.
Introduction to Information Security ROP – Recitation 5.
Introduction to Assembly II Abed Asi Extended System Programming Laboratory (ESPL) CS BGU Fall 2013/2014.
Compiler Construction Code Generation Activation Records
Introduction to Information Security מרצים : Dr. Eran Tromer: Prof. Avishai Wool: מתרגלים : Itamar Gilad
October 1, 2003Serguei A. Mokhov, 1 SOEN228, Winter 2003 Revision 1.2 Date: October 25, 2003.
1 Assembly Language: Function Calls Jennifer Rexford.
Carnegie Mellon Midterm Review : Introduction to Computer Systems October 15, 2012 Instructor:
CSC 221 Computer Organization and Assembly Language Lecture 15: STACK Related Instructions.
Overview of Back-end for CComp Zhaopeng Li Software Security Lab. June 8, 2009.
Microprocessors CSE- 341 Dr. Jia Uddin Assistant Professor, CSE, BRAC University Dr. Jia Uddin, CSE, BRAC University.
Computer Architecture and Assembly Language
Recitation 3: Procedures and the Stack
Assembly function call convention
Machine-Level Programming 2 Control Flow
Assembly language.
C function call conventions and the stack
Data Transfers, Addressing, and Arithmetic
Exploiting & Defense Day 2 Recap
Aaron Miller David Cohen Spring 2011
Introduction to Compilers Tim Teitelbaum
Assembly IA-32.
Assembly Language Programming Part 2
Machine-Level Programming 2 Control Flow
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures
Fundamentals of Computer Organisation & Architecture
Machine-Level Representation of Programs III
Practical Session 4.
Machine-Level Programming 2 Control Flow
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
X86 Assembly Review.
CSC 497/583 Advanced Topics in Computer Security
ICS51 Introductory Computer Organization
Computer Architecture and System Programming Laboratory
Computer Architecture and System Programming Laboratory
Presentation transcript:

Introduction to Information Security מרצים : Dr. Eran Tromer: Prof. Avishai Wool: מתרגלים : Itamar Gilad Nir Krakowski

Course Guidlines The course exercises aren’t easy! o You will have to learn and do a lot. o Google is your friend, but so are we! Best 75% of exercises will be used to calculate the average exercise grade. Exercises are to be submitted the week after the recitation Ask questions!!! Download exercises from website Fill out the course questionnaire!

Instructors Nir and I will be instructing the course together Two recitations: 16:00 – 17:00 and 17:00 – 18:00 Please use BOTH! Reception hour: o Right after the final recitation (18:00-19:00) if possible o Best: Schedule an appointment by General note: Please keep in mind that the lectures and recitations will often not match. This is by design, not a mistake.

Recitation #0 Subjects: o X86 Assembly o Course IT Framework

X86 assembly Instruction – A sentence (verb + noun / nouns) Opcode – what you want to do - verb Operand – what do you want to operate on (source) or with (dest) – nouns

Opcode Types Data operations (i.e.: MOV, XOR, ADD, SUB, INC, DEC, SHL, SHR, TEST, CMP ) Unconditional control flow (branching) operations (i.e.: JMP, CALL, RET) Flag based conditional control flow operations (i.e.: JZ, JNE, JNZ, JBE, JG) Stack operations (i.e.: POP, PUSH, PUSHA, POPA) And many (many…) more!

Operand Types Registers Constants Memory addresses Pointers Flags

Command structure Command structure (no operand): o Opcode o Example: NOP o Example: RET Command structure (single operand): o Opcode operand o Example: INT 0x3 o Example: JMP [memory address] o Example: POP [register]

Command structure Command structure (dual operand): o Opcode dest-operand source-operand o Example: MOV EAX, 0 o Example: SAR EBX, 2 o Example: MOV ECX, [EBX] o Note: there are limitations (i.e.: cannot use two memory based operands) Cheat Sheet: Google: x86 assembly cheat sheet

Extra - Common Register Uses EAX, EBX, ECX, EDX… - Generic registers EIP – Instruction pointer (next instruction to be executed) ESP – Stack pointer EBP – Frame pointer ESI – Source index EDI – Destination index EAX – function return value ECX – this pointer (in C++)

Course IT Framework VirtualBox VM file, with Ubuntu LTS o Username: ‘student’ o Password: ‘do or do not there is no try’ o Change the password with the command: passwd Wine: IDA, Hexworkshop Python vi, gedit, ghex, hexedit To get more tools: o sudo apt-get install [toolname] o sudo pip install [pythonmodulename] o Google for more tools All exercises will be provided to work within the VM Framework. Most exercises will not work on a standard machine.

VM Demo

This week’s exercise VM setup (Very) simple x86 Assembly exercises It isn’t hard – but please start early and contact us if you have any trouble with the setup Make sure to follow the exercise submission guidelines!