System Level Programming Software College of SCU

Slides:



Advertisements
Similar presentations
Etter/Ingber Engineering Problem Solving with C Fundamental Concepts Chapter 1 Engineering Problem Solving.
Advertisements

Intro to Python Welcome to the Wonderful world of GIS programing!
Systems Software.
Binghamton University CS-220 Spring 2015 Binghamton University CS-220 Spring 2015 Object Code.
Dean Carlson and Beth Anne Byrd CpSc 420.  What is reverse engineering?  Brief History  Usefulness  The process  Bagle Virus example.
Debugging What can debuggers do? Run programs Make the program stops on specified places or on specified conditions Give information about current variables’
Binghamton University CS-220 Spring 2015 Binghamton University CS-220 Spring 2015 The CS-220 Development Environment.
Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
1 Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
CS211 Data Structures Sami Rollins Fall 2004.
Table 1. Software Hierarchy Levels.. Essential Tools An assembler is a program that converts source-code programs into a machine language (object file).
C Prog. To Object Code text text binary binary Code in files p1.c p2.c
Memory & Storage Architecture Seoul National University Computer Architecture “ Bomb Lab Hints” 2nd semester, 2014 Modified version : The original.
CS 101 Problem Solving and Structured Programming in C Sami Rollins Spring 2003.
1 Chapter Two Introduction to the Programming Language C.
Recitation: Bomb Lab June 5, 2015 Dipayan Bhattacharya.
F13 Forensic tool analysis Dr. John P. Abraham Professor UTPA.
Trying to like a boss… REVERSE ENGINEERING. WHAT EVEN IS… REVERSE ENGINEERING?? Reverse engineering is the process of disassembling and analyzing a particular.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Chapter 1 Engineering Problem Solving 1. Hardware and Software 2 A computer is a machine designed to perform operations specified with a set of instructions.
Memory & Storage Architecture Seoul National University GDB commands Hyeon-gyu School of Computer Science and Engineering.
Binary Auditing Geller Bedoya Michael Wozniak. Background  Binary auditing is a technique used to test the security and discover the inner workings of.
Goals: To gain an understanding of assembly To get your hands dirty in GDB.
EECS 354 Network Security Reverse Engineering. Introduction Preventing Reverse Engineering Reversing High Level Languages Reversing an ELF Executable.
EG280 Computer Science for Engineers Fundamental Concepts Chapter 1.
ENEE150 – 0102 ANDREW GOFFIN Testing and Debugging.
Carnegie Mellon Recitation: Bomb Lab 21 Sep 2015 Monil Shah, Shelton D’Souza.
Hacking Techniques & Intrusion Detection Ali Al-Shemery arabnix [at] gmail.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
1 SEEM3460 Tutorial Compiling and Debugging C programs.
CSE 351 GDB Introduction. Lab 1 Status? How is Lab 1 going? I’ll be available at the end of class to answer questions There are office hours later today.
Assembly and Bomb Lab : Introduction to Computer Systems Recitation 4: Monday, Sept. 16, 2013 Marjorie Carlson Section A.
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
Shellcode Development -Femi Oloyede -Pallavi Murudkar.
1 Carnegie Mellon Assembly and Bomb Lab : Introduction to Computer Systems Recitation 4, Sept. 17, 2012.
CPS120: Introduction to Computer Science Compiling a C++ Program From The Command Line.
Unit - V. Debugging GNU Debugger helps you in getting information about the following: 1.If a core dump happened, then what statement or expression did.
Reminder Bomb lab is due tomorrow! Attack lab is released tomorrow!!
VI-D-15(PP) Disassembly of the Small Engine Figure 1.
OUTLINE 2 Pre-requisite Bomb! Pre-requisite Bomb! 3.
Software Reverse Engineering Binary analysis: concepts, methods and tools. Catalin Patulea Mar 5, 2008.
Contents What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Reverse Engineering Tools Reverse.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
GDB Introduction And Lab 2
PV204 Security technologies Reverse engineering of binary applications Petr Švenda Faculty of Informatics, Masaryk University.
Lab (6) Introduction to Assembly Language 1. Introduction Objectives : Learn EMU8086 installation EMU8086 environment Learn how to: Assemble instructions.
Why don’t programmers have to program in machine code?
Static and dynamic analysis of binaries
Engineering Problem Solving With C An Object Based Approach
Chapter 5- Assembling , Linking, and Executing Programs
CSC 495/583 Topics of Software Security Stack Overflows
Introduction to programming
CSCI-235 Micro-Computer Applications
Recitation: Bomb Lab _______________ 18 Sep 2017.
More GDB, Intro to x86 Calling Conventions, Control Flow, & Lab 2
Debugging with gdb gdb is the GNU debugger on our CS machines.
Recitation: Bomb Lab _______________ 06 Feb 2017.
Introduction to Computer Systems
Recitation: Attack Lab
Computer Architecture “Bomb Lab Hints”
TRANSLATORS AND IDEs Key Revision Points.
and Executing Programs
Use proper case (ie Caps for the beginnings of words)
C Prog. To Object Code text text binary binary Code in files p1.c p2.c
CNT4704: Analysis of Computer Communication Network Buffer Overflow : Example of Using GDB to Check Stack Memory Cliff Zou Fall 2011.
Reversing an Executable
CAP6135: Malware and Software Vulnerability Analysis Buffer Overflow : Example of Using GDB to Check Stack Memory Cliff Zou Spring 2016.
Hello World Program In Visual Studio and Debugging
Reverse Engineering for CTFs
By Hugues Leger / Intro to GDB debugger By Hugues Leger / 11/16/2019.
Presentation transcript:

System Level Programming Software College of SCU Lab:Binary Bomb 1

Binary Bomb Lab 1. Lab Discription 2. Tools to "Defuse" Bombs

1. Lab Discription(1/2) Lab discription The "binary bomb" is an executable c program provided as a binary object file. Run the program, it prompts the user to type in 6 different strings. If any of these is incorrect, the bomb "explodes" by printing an error message “BOOM!!!”.

1. Lab Discription(2/2) The source code for phase_1() and others are not provided. Students will use reverse engineer to find out 6 input string.

Binary Bomb Lab 1. Lab Discription 2. Tools to "Defuse" Bombs

2. Tools to "Defuse" Bombs(1/3) How to "DEFUSE'' the bomb disassembling the binary object file to assembly instructions disassembler: objdump.exe objdump -d bomb.exe >> bomb.ass disassembling object file bomb.exe and redirect the instructions to plaintext file bomb.ass Refers to objdump_Tutorial.pdf to get more info

2. Tools to "Defuse" Bombs(2/3) How to "DEFUSE'' the bomb single-step through the instruction in each phase to figure out the "strings" debugger: gdb.exe GDB is the standard debugger that runs on many unix-like systems and works for many programming language including c. Refers to gdb_Tutorial.pdf to get more info

2. Tools to "Defuse" Bombs(3/3) GDB 跟踪调试常用命令 反汇编:objdump -d bomb 查看所有寄存器内容:info registers 打印某一寄存器:p $eip 打印内存内容: x 0x8049034 打印内存内容(以字符串形式):x/s 0x8049034 设置断点:b 设置断点(地址): b*0x8049034 运行:run 执行单步: si

Binary Bomb Lab 1. Lab Discription 2. Tools to "Defuse" Bombs 3. Defuse Phase 1

3. Defuse Phase 1(1/2)

3. Defuse Bomb 1(2/2)