Software Uniqueness: How and Why? Puneet Mishra Dr. Mark Stamp Department of Computer Science San José State University, San José, California.

Slides:



Advertisements
Similar presentations
Mapping Site Instruments. Introduction The Mapped Instrument is a tool that guides you in matching your site specific Instrument and materials to the.
Advertisements

Compiler Support for Superscalar Processors. Loop Unrolling Assumption: Standard five stage pipeline Empty cycles between instructions before the result.
Static Single-Assignment ? ? Introduction: Over last few years [1991] SSA has been Stablished as… Intermediate program representation.
Hardware Assisted Control Flow Obfuscation for Embedded Processors Xiaotong Zhuang Tao Zhang Hsien-Hsin (Sean) Lee Santosh Pande Georgia Institute of Technology.
Design Rule Generation for Interconnect Matching Andrew B. Kahng and Rasit Onur Topaloglu {abk | rtopalog University of California, San Diego.
Dynamic Self-Checking Techniques for Improved Tamper Resistance Bill Horne, Lesley Matheson, Casey Sheehan, Robert E. Tarjan STAR Lab, InterTrust Technologies.
Digital Rights Management: The Technology behind the Hype Mark Stamp Department of Computer Science San Jose State University.
An Analysis of Hamptonese Using Hidden Markov Models Ethan Le and Mark Stamp Department of Computer Science San Jose State University McNair Scholars Program.
CS266 Software Reverse Engineering (SRE) Applying Anti-Reversing Techniques to Java Bytecode Teodoro (Ted) Cipresso,
DR. MIGUEL ÁNGEL OROS HERNÁNDEZ 9. Técnicas anti-ingeniería inversa.
Linear Obfuscation to Combat Symbolic Execution Zhi Wang 1, Jiang Ming 2, Chunfu Jia 1 and Debin Gao 3 1 Nankai University 2 Pennsylvania State University.
1 CS 201 Compiler Construction Lecture 7 Code Optimizations: Partial Redundancy Elimination.
Startup 1 The Life and Death of a Silicon Valley Startup Company Mark Stamp Department of Computer Science San Jose State University.
The MediaSnap ® Digital Rights Management System Priti Sabadra and Mark Stamp Department of Computer Science San Jose State University.
Validating High-Level Synthesis Sudipta Kundu, Sorin Lerner, Rajesh Gupta Department of Computer Science and Engineering, University of California, San.
Polymorphism in Computer Viruses CS265 Security Engineering Term Project Puneet Mishra.
1 Run time vs. Compile time The compiler must generate code to handle issues that arise at run time Representation of various data types Procedure linkage.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Overview of program analysis Mooly Sagiv html://
Pairwise Alignment of Metamorphic Computer Viruses Student:Scott McGhee Advisor:Dr. Mark Stamp Committee:Dr. David Taylor Dr. Teng Moh.
Address Obfuscation: An Efficient Approach to Combat a Broad Range of Memory Error Exploits Sandeep Bhatkar, Daniel C. DuVarney, and R. Sekar Stony Brook.
OOSE 01/17 Institute of Computer Science and Information Engineering, National Cheng Kung University Member:Q 薛弘志 P 蔡文豪 F 周詩御.
Optimizing Compilers Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
Development in hardware – Why? Option: array of custom processing nodes Step 1: analyze the application and extract the component tasks Step 2: design.
Software Obfuscation from Crackers’ viewpoint Y, Hiroki; K, Yuichiro; M Akito, N Masahide; M Ken-ichi Proceedings of the IASTED International Conference.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
KEVIN COOGAN, GEN LU, SAUMYA DEBRAY DEPARTMENT OF COMUPUTER SCIENCE UNIVERSITY OF ARIZONA 報告者:張逸文 Deobfuscation of Virtualization- Obfuscated Software.
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
DBPD: A Dynamic Birthmark-based Software Plagiarism Detection Tool
CS266 Software Reverse Engineering (SRE) Reversing and Patching Java Bytecode Teodoro (Ted) Cipresso,
Synchronization Transformations for Parallel Computing Pedro Diniz and Martin Rinard Department of Computer Science University of California, Santa Barbara.
1 Optimizing compiler tools and building blocks project Alexander Drozdov, PhD Sergey Novikov, PhD.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
1 Diversifying Sensors to Improve Network Resilience Wenliang (Kevin) Du Electrical Engineering & Computer Science Syracuse University.
Compilers for Embedded Systems Ram, Vasanth, and VJ Instructor : Dr. Edwin Sha Synthesis and Optimization of High-Performance Systems.
Protecting Software Code By Guards The George Washington University Cs297 YU-HAO HU.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
INTRODUCTION GORT is a virtual 3D modeling environment for computer programmers. Its main area of focus is to aid in the education of programmers learning.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Why Cryptography is Harder Than It Looks
Discrete Mathematics ( 離散數學 ) Ming-Jer Tsai. Outline What is Discrete Mathematics? Why learn Discrete Mathematics? What will be taught in the class? How.
Introduction to High-Level Language Programming Presented By Omar Y. Tahboub Computer Science Department Kent State University.
OPTIMIZING DSP SCHEDULING VIA ADDRESS ASSIGNMENT WITH ARRAY AND LOOP TRANSFORMATION Chun Xue, Zili Shao, Ying Chen, Edwin H.-M. Sha Department of Computer.
Code Motion for MPI Performance Optimization The most common optimization in MPI applications is to post MPI communication earlier so that the communication.
Fingerprinting Text in Logical Markup Languages Christian D. Jensen G.I. Davida and Y. Frankel (Eds.): Proc. Information Security Conference 2001, Lecture.
Bourbaki Design Automation Miodrag Potkonjak Computer Science Department UCLA Design Automation Perspective Challenge 2015.
1 Modeling the Search Landscape of Metaheuristic Software Clustering Algorithms Dagstuhl – Software Architecture Brian S. Mitchell
Design Pattern Support based on principles of model driven development Zihao Zhao.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Compilers and Security
1 Removing Impediments to Loop Fusion Through Code Transformations Bob Blainey 1, Christopher Barton 2, and Jos’e Nelson Amaral 2 1 IBM Toronto Software.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Advanced Algorithms Analysis and Design
PB173 - Tématický vývoj aplikací v C/C++ (jaro 2016)
Code Optimization.
Security in Outsourcing of Association Rule Mining
Implementation of Ricart Agrawala Algorithm
Un</br>able’s MySecretSecrets
Methodology of a Compiler that Compresses Code using Echo Instructions
Affiliation of presenter
Objective of This Course
An Open-Source Based Speech Recognition Android Application for Helping Handicapped Students Writing Programs Tong Lai Yu, Santhrushna Gande.
Challenges in Building and Detecting Portable Source Code Morphers
Automated Software Integration
Visualizing the Attracting Structures Results and Conclusions
Construction Engineering Department Construction Project with Resources Constraints By. M. Chelaka, D. Greenwood & E. Johansen, /9/2019.
8 Code Generation Topics A simple code generator algorithm
Re- engineeniering.
Presentation transcript:

Software Uniqueness: How and Why? Puneet Mishra Dr. Mark Stamp Department of Computer Science San José State University, San José, California

Agenda Introduction The need (Why) Applications (Where) Techniques (How) Results Conclusion

Introduction Biological SystemSoftware Genetic DiversityCloning 1 Individual != Extinction Dies of species 1 Flaw => System Destroyed

The need (WHY) Uniqueness Defined Obfuscation Vs. Uniqueness Break One  Break All Obfuscation used at different places giving unique instances N Instances Increases the problem by N

Applications (Where) Key Protection DRM Code Obfuscation Software Watermarks Anti-Piracy Virus Protection

Techniques (How) Code Transformations Assembly Level Ideal C Language used Types of Transformations Code Reorganization Compiler Based Flow and Structure Miscellaneous

Code Reorganization Mathematical Transformations Redundant Code Breaking up variables Dummy Arguments to function calls Reordering the code Transforming to spaghetti code via goto

Compiler Based Optimizations might nullify Transformations Customized compiler for implementation Location to introduce transformations

Flow and Structure Modify Data Structures Change algorithmic implementation Risks Careful Mapping Required Difficult to Automate

Miscellaneous Applying Transformations Repeatedly Using pre-existing Obfuscators Operating System calls Makes the code platform dependent

Transformation Tool Pattern Matching Tool Looks for appropriate locations to insert code Implementation is non-trivial

Results Graph Original Vs. Transformed Assembly Code

Conclusion and Future Work Many Potential Applications Expected increase in Difficulty Ideal case by a Factor of N

Thank You!