Lots of content, the hope is that they will be used as reference material after the presentation.

Slides:



Advertisements
Similar presentations
® 13-2 Overview After development is completed, you may need to: –Exclude unneeded VxWorks facilities. –Link application code into VxWorks. –Extend VxWorkss.
Advertisements

Programs in Memory Bryce Boe 2012/08/29 CS32, Summer 2012 B.
Starting Out with C++, 3 rd Edition 1 Chapter 10 – Characters, Strings, and the string Class.
Chapter 10 Linking and Loading. Separate assembly creates “.mob” files.
Christo Wilson Project 2: User Programs in Pintos
Chapter 7 Process Environment Chien-Chung Shen CIS, UD
Linking & Loading CS-502 Operating Systems
Loaders and Linkers CS 230 이준원. 2 Overview assembler –generates an object code in a predefined format »COFF (common object file format) »ELF (executable.
Lecture 10: Linking and loading. Lecture 10 / Page 2AE4B33OSS 2011 Contents Linker vs. loader Linking the executable Libraries Loading executable ELF.
Operating System Security : David Phillips A Study of Windows Rootkits.
CS 31003: Compilers ANIRUDDHA GUPTA 11CS10004 G2 CLASS DATE : 24/07/2013.
Linking and Loading Fred Prussack CS 518. L&L: Overview Wake-up Questions Terms and Definitions / General Information LoadingLinking –Static vs. Dynamic.
Run-Time Dynamic Linking for Reprogramming Wireless Sensor Networks
Generating Programs and Linking Professor Rick Han Department of Computer Science University of Colorado at Boulder.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
C Module System C and Data Structures Baojian Hua
Process management in Minix1 Processes Process is a program in execution. Program is a static entity while process is an active entity. Process Control.
Author: Texas Instruments ®, Sitara™ ARM ® Processors Building Blocks for PRU Development Module 2 PRU Firmware Development This session covers how to.
1 uClinux course Day 3 of 5 The uclinux toolchain, elf format and ripping a “hello world”
Disclaimer The Content, Demonstration, Source Code and Programs presented here is "AS IS" without any warranty or conditions.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
ControlDraw, Modularisation, Standards And Re-Use Standardised Specification and Modular Design How ControlDraw Help.
MIPS coding. SPIM Some links can be found such as:
Improving Program Performance Function Visibility in z/TPF C++ Load Modules October 2, /2/20151American Express Public.
Programming Tools gcc make utility Open Source code Static and Shared Libraries gdb Memory debugging tools.
Kernel Modules Giving your Linux more pop since 1995.
Steps in simulation study 1. - Clearly understand problem - Reformulation of the problem 2. - Which questions should be answered? - Is simulation appropriate?
Old Chapter 10: Programming Tools A Developer’s Candy Store.
EECS 354 Network Security Reverse Engineering. Introduction Preventing Reverse Engineering Reversing High Level Languages Reversing an ELF Executable.
Topic 2d High-Level languages and Systems Software
CPS3340 COMPUTER ARCHITECTURE Fall Semester, /29/2013 Lecture 13: Compile-Link-Load Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER SCIENCE.
C/C++ Programming Environment
HELP COMPONEN SYSTEM WinCC CERN SUBJECTS - GENERATE HTML COMPONENT FILES - FULL COMPONENTS FRAMEWORK HELP - CENTRAL HELP REPOSITORY - ACCESIBLE.
Dissecting the Windows CE Build Process James Y. Wilson Principal Engineer, Windows Embedded MVP CalAmp, Inc. James Y. Wilson Principal Engineer, Windows.
Different Types of Libraries
Implementation of Embedded OS Lab3 Porting μC/OS-II.
Lecture 7 Rootkits Hoglund/Butler (Chapter 5-6). Avoiding detection Two ways rootkits can avoid detection –Modify execution path of operating system to.
Overview of Windows Driver Development Reference: us/gstart/hh/gstart/gs_intro_031j.asp.
Kernel Structure and Infrastructure David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis, MO
CSc 453 Linking and Loading
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
Sung-Dong Kim Dept. of Computer Engineering, Hansung University Chapter 3 Programming Tools.
CC410: System Programming Dr. Manal Helal – Fall 2014 – Lecture 10 – Loaders.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Bootstrap Tutorial Overview Objective Learn how to use the bootstrap for configuring the system. Requirements Installed Version of.
Object Files & Linking. Object Sections Compiled code store as object files – Linux : ELF : Extensible Linking Format – Windows : PE : Portable Execution.
Chapter 7 Process Environment Chien-Chung Shen CIS/UD
Binding & Dynamic Linking Presented by: Raunak Sulekh(1013) Pooja Kapoor(1008)
Chap. 4 ARM Boot Loader Internals. 2 S3C2500 ARM940T Core module ARM9TDMI CoreIC.
Program Execution in Linux David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis, MO
Computer System Structures
Computer System Structures
Business System Development
WELCOME Mobile Applications Testing
Computer Architecture & Operations I
Linking & Loading.
C Runtime In Tcl v3 Andreas Kupries ActiveState Software Inc. © 2011
Program Execution in Linux
CS-3013 Operating Systems C-term 2008
Topic 2e High-Level languages and Systems Software
Lecture Topics: 11/1 General Operating System Concepts Processes
Modern web applications
Linking & Loading CS-502 Operating Systems
Computer Architecture
Outline Chapter 2 (cont) OS Design OS structure
Program Execution in Linux
Linking & Loading CS-502 Operating Systems
Overview of System Development for Windows CE.NET
SPL – PS1 Introduction to C++.
Presentation transcript:

Lots of content, the hope is that they will be used as reference material after the presentation

Represents a different paradigm of compatibility (Architecture instead of an Operating System) Represents a different paradigm of compatibility (Architecture instead of an Operating System)

Advanced research in reverse engineering and security requires advanced tools, the hope is for the microvisor to provide an extendable foundation

Minimal requirements allow the microvisor to maintain clean separation from its underlying OS, facilitating portability between devices

Steps 2 and 3 can be collapsed but having an elf version makes debugging easier, as it can be loaded into objdump, ida pro and other debugging tools

Combining a flat binary and position independence creates a perfect environment for constructing complex OS independent applications

The vector table in the Low Level Bootloader (LLB) on the iphone 4 Macro used as the entry point for the exception and interrupt vectors

result_t init (size_t argc, u8_t *argv[]); result_t fini (size_t argc, u8_t *argv[]); void init (void); void fini (void); result_t init (size_t argc, u8_t *argv[]); result_t fini (size_t argc, u8_t *argv[]); void init (void); void fini (void);

Also constructed as a flat binary with a custom header. Similar to the microvisor C functions called when loaded and unloaded Macro used to import functions into the module at runtime Macro used to export functions from the module so other modules can import them at runtime

Jailbreak code from Comex was referenced

No kernel API were harmed or used to perform the required actions, only architectural features were leveraged

SYS$OUTPUT blog and code referenced

Anything that can induce the required undefined instruction exception can manage modules (i.e. the loader could automatically add additional modules at installation time)

OS specific applications to install and work with modules and the microvisor. Contains a copy of the includes from the libraries, kernel and modules Statically linked libraries that are built into the kernel Modules that can be linked into the kernel at runtime The kernel Kernel is only 60.8 KB (includes 6.9 KB of strings most are for debugging) Average module is KB ELF versions are useful for debugging (subtract the runtime base to locate things in the ELF file)