Using Evolutionary Algorithms to obfuscate code
|
|
|
- Mavis Hancock
- 10 years ago
- Views:
Transcription
1 Using Evolutionary Algorithms to obfuscate code Benoît Bertholon 1, Sébastien Varrette 2 et Pascal Bouvry 2 1 Security and Trust (SnT) interdisciplinary center, 2 Computer Science and Communication (CSC) Research Unit University of Luxembourg, Luxembourg 1 / 23
2 Outline 1 Context et Motivations 2 Obfuscation 3 Evolutionary algorithms to obfuscate code 2 / 23
3 Outline 1 Context et Motivations 2 Obfuscation 3 Evolutionary algorithms to obfuscate code 2 / 23
4 Context: Cloud Computing paradigm Basic idea of the Cloud Computing paradigm to outsource computing services, to use a service without knowing the infrastructure, different types of Cloud: SaaS, PaaS, IaaS. 3 / 23
5 Context: Cloud Computing paradigm Security issues in Cloud Computing Confidentiality of the user s data... Potential disclosure of the user algorithms. How to hide information in the software Obfuscation 4 / 23
6 Outline 1 Context et Motivations 2 Obfuscation 3 Evolutionary algorithms to obfuscate code 4 / 23
7 Obfuscation Before #i n c l u d e <s t d i o. h> #i n c l u d e <s t d l i b. h> i n t main ( i n t argc, char a r g v [ ] ) { p r i n t f ( " Hello world \n" ) ; } 5 / 23
8 After Obfuscation #i n c l u d e <s t d i o. h> #i n c l u d e <s t d l i b. h> #i n c l u d e <unistd. h> #i n c l u d e <s y s / time. h> #i n c l u d e <s i g n a l. h> #d e f i n e m( b ) a=b ; z= a ; w h i l e( ++a ){ y= a ; a=z ; z=y ;} #d e f i n e h ( u )G=u<<3; p r i n t f ( "\e[% uq", l [ u ] ) #d e f i n e c ( n, s ) case n : s ; c o n t i n u e char x []= " (((((((((((((((((((((( ",w[]= "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b" ; char r []={92,124,47}, l []={2,3,1, 0 } ; char T[]={ " ", " ", " %\\ /% ", " %%% ", "" }; char d=1,p=40,o=40,k=0, a, y, z, g= 1,G, X, P=&T [ 4 ], f =0; unsigned i n t s =0; v o i d u ( i n t i ){ i n t n ; p r i n t f ( " \233;% uh \233 L%c \233;% uh%c \233;% uh%s \23322;% uh@ \23323;% uh \n", x w, r [ d ], x+ w, r [ d ], X, P, p+=k, o ) ; i f ( abs ( p x [21]) >=w [ 2 1 ] ) e x i t ( 0 ) ; i f ( g!=g){ s t r u c t i t i m e r v a l t= { 0, 0, 0, 0 } ; g+=((g<g)<<1) 1; t. i t i n t e r v a l. t v u s e c=t. i t v a l u e. t v u s e c =72000/(( g>> 3)+1); s e t i t i m e r (0,& t, 0 ) ; f&&p r i n t f ( "\e [10;% u]", g +24);} f&&p u t c h a r ( 7 ) ; s+=(9 w [ 2 1 ] ) ( ( g>>3)+1);o=p ;m( x ) ;m(w ) ; ( n=rand ())&255 w ++ w ; i f (!( P&&P++ n&7936)){ w h i l e ( abs ( (X=rand ()%76) x+2) w<6);++x ; P=T; } ( n=rand ()&31)<3&&(d=n ) ;! d&& x<= w&&(++ x,++d ) d==2&&++ x+ w>79&&( x, d ) ; s i g n a l ( i, u ) ; } v o i d e (){ s i g n a l ( 1 4, SIG IGN ) ; p r i n t f ( "\e[0q\ ecscore : %u\n", s ) ; system ( " stty echo -cbreak " ) ; } i n t main ( i n t C, char V){ a t e x i t ( e ) ; ( C<2 V[1]!=113)&&( f =(C= ( i n t ) g e t e n v ( " TERM "))==( i n t )0 x756e696c C==( i n t )0 x6c696e75 ) ; s r a n d ( g e t p i d ( ) ) ; system ( " stty -echo cbreak " ) ; h ( 0 ) ; u ( 1 4 ) ; f o r ( ; ; ) s w i t c h ( g e t c h a r ( ) ) { case : r e t u r n 0 ; case 9 1 : case 9 8 : c ( 4 4, k = 1); case 3 2 : case : c ( 4 6, k =0); case 9 3 : case : c ( 4 7, k =1); c ( 4 9, h ( 0 ) ) ; c ( 5 0, h (1 ) ) ; c ( 5 1, h ( 2 ) ) ; c ( 5 2, h ( 3 ) ) ; } } 6 / 23
9 BrainFuck Hello World [> > >+++>+<<<< ] >++.> >++.<< > >+.>. Syntax < pointer move left > pointer move right + add 1 to the data at the position of the pointer - sub 1 to the data at the position of the pointer [ begin of the while statement ] end of the while statement. output the value of the pointer, input the value of the pointer 7 / 23
10 Definitions Definition (Obfuscation) Transformation of a program P into a obfuscated program P with the following attributes: 2 Levels P has the same behavior that P. P should be harder to understand. Source to Source Obfuscation binary Obfuscation 8 / 23
11 Definitions Definition (Resilience) The Transformation Resilience is the addition of the two measures: the programmer effort. deobfuscator effort. Definition (Cost) The Transformation Cost is the extra execution time and space of P compared to P 9 / 23
12 Obfuscation is impossible Barak et al. [Barak01] Obfuscation proven impossible Virtual Black-box impossible. End of the story? Time limited Black-Box [Hohl98] Guarantee the black box property for a limited time. Same as in RSA or ECC 10 / 23
13 Metrics 1/2 Metrics 1 Program Length: number of operators & operands in P[Halstead77]. 2 Cyclomatic Complexity: number of predicates in F [McCabe76]. 3 Nesting Complexity: nesting level of conditionals in F [Harrison81]. 4 Data Flow Complexity: number of inter-basic block variable references in P [Oviedo80]. 5 Fan-in/out Complexity: number of formal parameters to F, and number of global data structures read or updated by F [Henry81]. 11 / 23
14 Metrics 2/2 Metrics 6 Data Structure Complexity: number of dimension and type in an array [Munson93]. 7 OO (Object Oriented) Metric: number of methods in C the distance from the root of C the number of direct subclasses of C the number of other classes to which C is couple the number of methods that can be executed in response to a message sent to an object of C [Chidamber94]. 12 / 23
15 Some transformation s examples Some transformation s examples µ 1 Program Length Insert Dead code µ 2 Cyclomatic Complexity Parallelize code µ 3 Nesting Complexity Extend loop condition µ 4 Data Flow Complexity Change variable lifttime µ 5 Fan-in/out Complexity Interleaving methodes µ 6 Data Structure Complexity Split Array µ 7 OO (Object Oriented) Insert Bogus Classes 13 / 23
16 Some examples µ 3 Nesting Complexity Extend loop condition i =1; w h i l e ( i <100){... i ++; } i =1; j =100 w h i l e ( ( i <100) && ( j j ( j +1) ( j +1) %4 == 0)){... i ++; } µ 4 Data Flow Complexity Change variable lifetime v o i d f (... ) { i n t i ;.... i.... ; } v o i d g (... ) { i n t k ;.... k.... ; } i n t C : v o i d f (... ) {.... C.... ; } v o i d g (... ) {.... C.... ; } 14 / 23
17 Some examples µ 5 Fan-in/out Complexity Interleaving methodes v o i d f 1 ( i n t a, i n t b ) {S1 ;} v o i d f 2 ( i n t a, i n t b ) {S2 ;} i n t main (){ i n t a, b, c ;.. f 1 ( a, b ) ; f 2 ( a, c ) ; } v o i d f 1 ( i n t a, i n t b, i n t v ) { i f ( v == p ) {S1 ;} e l s e {S2 ;} } i n t main (){ i n t a, b, c ;.. f ( a, b, v=p ) ; f ( a, c, v=q ) ; } 15 / 23
18 Some examples µ 6 Data Structure Complexity Split Array i n t i ;... A [ i ] i n t i ;... i f ( ( i %2) ) A2 [ i / 2 ] ; e l s e A1 [ i / 2 ] ; 16 / 23
19 Low Level Obfuscation [Linn03] Idea Assembler instruction doesn t have the same length. 17 / 23
20 Collberg Obfuscation Algorithm Main Obfuscation Algorithm[Collberg97] While not done(program): Select Code Select transformation Apply the transformation to the selected code. End While 18 / 23
21 Outline 1 Context et Motivations 2 Obfuscation 3 Evolutionary algorithms to obfuscate code 18 / 23
22 Using Evolutionary Algorithm for Obfuscation purposes Idea 19 / 23
23 PIPS: Automatic Parallelizer and Code Transformation Framework [ PIPS as a source2source compiler 20 / 23
24 PIPS: Automatic Parallelizer and Code Transformation Framework [ PIPS as a source2source compiler Transformation of C code, Using Existing Transformation and evaluate them. PYPS: Python binding. Issues Implementation of the transformations. Definition of a valid metric. 21 / 23
25 Work in Progress Work in Progress Definition of a representative metric. Extend Collberg s work. EA as a tool to obfuscate code. Multi-objective Optimizations based on µ 1...µ 7 22 / 23
26 Merci pour votre attention... Questions? 23 / 23
SOURCE CODE OBFUSCATION BY MEAN OF EVOLUTIONARY ALGORITHMS
SOURCE CODE OBFUSCATION BY MEAN OF EVOLUTIONARY ALGORITHMS Sébastien Martinez 2011 Tutor : Sébastien Varrette Advisor : Benoît Bertholon University of Luxembourg, Faculty of Sciences, Technologies and
Code Obfuscation. Mayur Kamat Nishant Kumar
Code Obfuscation Mayur Kamat Nishant Kumar Agenda Malicious Host Problem Code Obfuscation Watermarking and Tamper Proofing Market solutions Traditional Network Security Problem Hostile Network Malicious
Implementation of an Obfuscation Tool for C/C++ Source Code Protection on the XScale Architecture *
Implementation of an Obfuscation Tool for C/C++ Source Code Protection on the XScale Architecture * Seongje Cho, Hyeyoung Chang, and Yookun Cho 1 Dept. of Computer Science & Engineering, Dankook University,
Applications of obfuscation to software and hardware systems
Applications of obfuscation to software and hardware systems Victor P. Ivannikov Institute for System Programming Russian Academy of Sciences (ISP RAS) www.ispras.ru Program obfuscation is an efficient
Introduction to Program Obfuscation
Introduction to Program Obfuscation p. 1/26 Introduction to Program Obfuscation Yury Lifshits Saint-Petersburg State University http://logic.pdmi.ras.ru/ yura/ [email protected] Introduction to Program
Software Protection through Code Obfuscation
Software Protection through Code Obfuscation Dissertation submitted in partial fulfillment of the requirements for the degree of Master of Technology, Computer Engineering by Aniket Kulkarni Roll No: 121022016
It has a parameter list Account(String n, double b) in the creation of an instance of this class.
Lecture 10 Private Variables Let us start with some code for a class: String name; double balance; // end Account // end class Account The class we are building here will be a template for an account at
Informatica e Sistemi in Tempo Reale
Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)
Obfuscation of Abstract Data-Types
Obfuscation of Abstract Data-Types Stephen Drape St John s College Thesis submitted for the degree of Doctor of Philosophy at the University of Oxford Trinity Term 2004 Obfuscation of Abstract Data Types
CS 241 Data Organization Coding Standards
CS 241 Data Organization Coding Standards Brooke Chenoweth University of New Mexico Spring 2016 CS-241 Coding Standards All projects and labs must follow the great and hallowed CS-241 coding standards.
Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process
Definitions Software Metrics Software Engineering Measure - quantitative indication of extent, amount, dimension, capacity, or size of some attribute of a product or process. Number of errors Metric -
Static Analysis of Virtualization- Obfuscated Binaries
Static Analysis of Virtualization- Obfuscated Binaries Johannes Kinder School of Computer and Communication Sciences École Polytechnique Fédérale de Lausanne (EPFL), Switzerland Virtualization Obfuscation
Output: 12 18 30 72 90 87. struct treenode{ int data; struct treenode *left, *right; } struct treenode *tree_ptr;
50 20 70 10 30 69 90 14 35 68 85 98 16 22 60 34 (c) Execute the algorithm shown below using the tree shown above. Show the exact output produced by the algorithm. Assume that the initial call is: prob3(root)
Obfuscation: know your enemy
Obfuscation: know your enemy Ninon EYROLLES [email protected] Serge GUELTON [email protected] Prelude Prelude Plan 1 Introduction What is obfuscation? 2 Control flow obfuscation 3 Data flow
CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013
Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)
Software Code Protection Through Software Obfuscation
Software Code Protection Through Software Obfuscation Presented by: Sabu Emmanuel, PhD School of Computer Engineering Nanyang Technological University, Singapore E-mail: [email protected] 20, Mar,
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
Code Obfuscation Literature Survey
Code Obfuscation Literature Survey Arini Balakrishnan, Chloe Schulze CS701 Construction of Compilers, Instructor: Charles Fischer Computer Sciences Department University of Wisconsin, Madison December
Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of
GPGPU Parallel Merge Sort Algorithm
GPGPU Parallel Merge Sort Algorithm Jim Kukunas and James Devine May 4, 2009 Abstract The increasingly high data throughput and computational power of today s Graphics Processing Units (GPUs), has led
Keil C51 Cross Compiler
Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation
Automated Virtual Cloud Management: The need of future
Automated Virtual Cloud Management: The need of future Prof. (Ms) Manisha Shinde-Pawar Faculty of Management (Information Technology), Bharati Vidyapeeth Univerisity, Pune, IMRDA, SANGLI Abstract: With
CS106A, Stanford Handout #38. Strings and Chars
CS106A, Stanford Handout #38 Fall, 2004-05 Nick Parlante Strings and Chars The char type (pronounced "car") represents a single character. A char literal value can be written in the code using single quotes
C++FA 5.1 PRACTICE MID-TERM EXAM
C++FA 5.1 PRACTICE MID-TERM EXAM This practicemid-term exam covers sections C++FA 1.1 through C++FA 1.4 of C++ with Financial Applications by Ben Van Vliet, available at www.benvanvliet.net. 1.) A pointer
An Introduction to Assembly Programming with the ARM 32-bit Processor Family
An Introduction to Assembly Programming with the ARM 32-bit Processor Family G. Agosta Politecnico di Milano December 3, 2011 Contents 1 Introduction 1 1.1 Prerequisites............................. 2
Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
PHP Tutorial From beginner to master
PHP Tutorial From beginner to master PHP is a powerful tool for making dynamic and interactive Web pages. PHP is the widely-used, free, and efficient alternative to competitors such as Microsoft's ASP.
DATA OBFUSCATION. What is data obfuscation?
DATA OBFUSCATION What data obfuscation? Data obfuscations break the data structures used in the program and encrypt literals. Th method includes modifying inheritance relations, restructuring arrays, etc.
Semantic Analysis: Types and Type Checking
Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors
CSC Yearly Team Meeting
CSC Yearly Team Meeting 2012 Edition Sébastien Varrette, PhD Luxembourg, November 23th, 2012 Mini-CV 32 years old, married (2004), 2 children (2007,2010) 2003: Master s degree (Telecom department ENSIMAG)
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
APPROACHES TO SOFTWARE TESTING PROGRAM VERIFICATION AND VALIDATION
1 APPROACHES TO SOFTWARE TESTING PROGRAM VERIFICATION AND VALIDATION Validation: Are we building the right product? Does program meet expectations of user? Verification: Are we building the product right?
MarshallSoft AES. (Advanced Encryption Standard) Reference Manual
MarshallSoft AES (Advanced Encryption Standard) Reference Manual (AES_REF) Version 3.0 May 6, 2015 This software is provided as-is. There are no warranties, expressed or implied. Copyright (C) 2015 All
5 Arrays and Pointers
5 Arrays and Pointers 5.1 One-dimensional arrays Arrays offer a convenient way to store and access blocks of data. Think of arrays as a sequential list that offers indexed access. For example, a list of
Konzepte objektorientierter Programmierung
Konzepte objektorientierter Programmierung Prof. Dr. Peter Müller Werner Dietl Software Component Technology Exercises 3: Some More OO Languages Wintersemester 04/05 Agenda for Today 2 Homework Finish
Platform Independent Code Obfuscation
Platform Independent Code Obfuscation OSKAR ARVIDSSON Master s Thesis at CSC Supervisor: Mikael Goldmann Examiner: Johan Håstad TRITA xxx yyyy-nn Abstract Code obfuscation is a technique used to make software
Phys4051: C Lecture 2 & 3. Comment Statements. C Data Types. Functions (Review) Comment Statements Variables & Operators Branching Instructions
Phys4051: C Lecture 2 & 3 Functions (Review) Comment Statements Variables & Operators Branching Instructions Comment Statements! Method 1: /* */! Method 2: // /* Single Line */ //Single Line /* This comment
VB.NET Programming Fundamentals
Chapter 3 Objectives Programming Fundamentals In this chapter, you will: Learn about the programming language Write a module definition Use variables and data types Compute with Write decision-making statements
Statements and Control Flow
Contents 1. Introduction 2. Types and Variables 3. Statements and Control Flow 4. Reading Input 5. Classes and Objects 6. Arrays 7. Methods 8. Scope and Lifetime 9. Utility classes 10. Introduction to
High-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)
High-Level Programming Languages Nell Dale & John Lewis (adaptation by Michael Goldwasser) Low-Level Languages What are disadvantages of low-level languages? (e.g., machine code or assembly code) Programming
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
Lecture 22: C Programming 4 Embedded Systems
Lecture 22: C Programming 4 Embedded Systems Today s Goals Basic C programming process Variables and constants in C Pointers to access addresses Using a High Level Language High-level languages More human
Chapter 7D The Java Virtual Machine
This sub chapter discusses another architecture, that of the JVM (Java Virtual Machine). In general, a VM (Virtual Machine) is a hypothetical machine (implemented in either hardware or software) that directly
HTSQL is a comprehensive navigational query language for relational databases.
http://htsql.org/ HTSQL A Database Query Language HTSQL is a comprehensive navigational query language for relational databases. HTSQL is designed for data analysts and other accidental programmers who
ASCII Encoding. The char Type. Manipulating Characters. Manipulating Characters
The char Type ASCII Encoding The C char type stores small integers. It is usually 8 bits. char variables guaranteed to be able to hold integers 0.. +127. char variables mostly used to store characters
The Elective Part of the NSS ICT Curriculum D. Software Development
of the NSS ICT Curriculum D. Software Development Mr. CHEUNG Wah-sang / Mr. WONG Wing-hong, Robert Member of CDC HKEAA Committee on ICT (Senior Secondary) 1 D. Software Development The concepts / skills
Quality Analysis with Metrics
Rational software Quality Analysis with Metrics Ameeta Roy Tech Lead IBM, India/South Asia Why do we care about Quality? Software may start small and simple, but it quickly becomes complex as more features
Rake Task Management Essentials
Rake Task Management Essentials Andrey Koleshko Chapter No. 8 "Testing Rake Tasks" In this package, you will find: A Biography of the author of the book A preview chapter from the book, Chapter NO.8 "Testing
Objects for lexical analysis
Rochester Institute of Technology RIT Scholar Works Articles 2002 Objects for lexical analysis Bernd Kuhl Axel-Tobias Schreiner Follow this and additional works at: http://scholarworks.rit.edu/article
Part I. Multiple Choice Questions (2 points each):
Part I. Multiple Choice Questions (2 points each): 1. Which of the following is NOT a key component of object oriented programming? (a) Inheritance (b) Encapsulation (c) Polymorphism (d) Parallelism ******
A Test Suite for Basic CWE Effectiveness. Paul E. Black. [email protected]. http://samate.nist.gov/
A Test Suite for Basic CWE Effectiveness Paul E. Black [email protected] http://samate.nist.gov/ Static Analysis Tool Exposition (SATE V) News l We choose test cases by end of May l Tool output uploaded
Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T)
Unit- I Introduction to c Language: C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating
An Incomplete C++ Primer. University of Wyoming MA 5310
An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages
Ch 7-1. Object-Oriented Programming and Classes
2014-1 Ch 7-1. Object-Oriented Programming and Classes May 10, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel : +82-53-810-2497;
How To Manage A Network Infrastructure
POINT OF VIEW NETWORK INFRASTRUCTURE ELASTICITY Masahisa Kawashima, VP Product Management ABSTRACT In today s business world, technology is quickly becoming one of the most important factors in a company
CHAPTER 5. Obfuscation is a process of converting original data into unintelligible data. It
CHAPTER 5 5.1. Introduction Obfuscation is a process of converting original data into unintelligible data. It is similar to encryption but it uses mathematical calculations or programming logics. Encryption
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR Andrey V.Lyamin, State University of IT, Mechanics and Optics St. Petersburg, Russia Oleg E.Vashenkov, State University of IT, Mechanics and Optics, St.Petersburg,
INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY
INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK A REVIEW ON THE USAGE OF OLD AND NEW DATA STRUCTURE ARRAYS, LINKED LIST, STACK,
Chapter 9: Building Bigger Programs
Chapter 9: Building Bigger Programs How to Design Larger Programs Building something larger requires good software engineering. Design Top- down: Start from requirements, then identify the pieces to write,
Sources: On the Web: Slides will be available on:
C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,
Positional Numbering System
APPENDIX B Positional Numbering System A positional numbering system uses a set of symbols. The value that each symbol represents, however, depends on its face value and its place value, the value associated
Introduction to Data Structures
Introduction to Data Structures Albert Gural October 28, 2011 1 Introduction When trying to convert from an algorithm to the actual code, one important aspect to consider is how to store and manipulate
Parallelization: Binary Tree Traversal
By Aaron Weeden and Patrick Royal Shodor Education Foundation, Inc. August 2012 Introduction: According to Moore s law, the number of transistors on a computer chip doubles roughly every two years. First
Computer Programming I
Computer Programming I Levels: 10-12 Units of Credit: 1.0 CIP Code: 11.0201 Core Code: 35-02-00-00-030 Prerequisites: Secondary Math I, Keyboarding Proficiency, Computer Literacy requirement (e.g. Exploring
J a v a Quiz (Unit 3, Test 0 Practice)
Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points
Research Paper. (Received 25 August 2009; Accepted 31 December 2009) 1. Introduction
A Proc Metric Indian for Natn Global Sci Acad Software 75 No.4 Development pp. 145-158 Environment (2009) 145 A Metric for Global Software Development Environment SANJAY MISRA Department of Computer Engineering,
Parsing Technology and its role in Legacy Modernization. A Metaware White Paper
Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks
Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
C Compiler Targeting the Java Virtual Machine
C Compiler Targeting the Java Virtual Machine Jack Pien Senior Honors Thesis (Advisor: Javed A. Aslam) Dartmouth College Computer Science Technical Report PCS-TR98-334 May 30, 1998 Abstract One of the
Tufts University. Department of Computer Science. COMP 116 Introduction to Computer Security Fall 2014 Final Project. Guocui Gao Guocui.gao@tufts.
Tufts University Department of Computer Science COMP 116 Introduction to Computer Security Fall 2014 Final Project Investigating Security Issues in Cloud Computing Guocui Gao [email protected] Mentor:
Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG
Channel Access Client Programming Andrew Johnson Computer Scientist, AES-SSG Channel Access The main programming interface for writing Channel Access clients is the library that comes with EPICS base Written
Compiler Construction
Compiler Construction Lecture 1 - An Overview 2003 Robert M. Siegfried All rights reserved A few basic definitions Translate - v, a.to turn into one s own language or another. b. to transform or turn from
Help on the Embedded Software Block
Help on the Embedded Software Block Powersim Inc. 1. Introduction The Embedded Software Block is a block that allows users to model embedded devices such as microcontrollers, DSP, or other devices. It
WORKFLOW ENGINE FOR CLOUDS
WORKFLOW ENGINE FOR CLOUDS By SURAJ PANDEY, DILEBAN KARUNAMOORTHY, and RAJKUMAR BUYYA Prepared by: Dr. Faramarz Safi Islamic Azad University, Najafabad Branch, Esfahan, Iran. Workflow Engine for clouds
Basic Programming and PC Skills: Basic Programming and PC Skills:
Texas University Interscholastic League Contest Event: Computer Science The contest challenges high school students to gain an understanding of the significance of computation as well as the details of
Copyright 2001, Bill Trudell. Permission is granted to copy for the PLoP 2001 conference. All other rights reserved.
The Secret Partner Pattern Revision 3a by Bill Trudell, July 23, 2001 Submitted to the Pattern Languages of Programs Shepherd: Neil Harrison PC Member: Kyle Brown Thumbnail This paper describes the Secret
GCE. Computing. Mark Scheme for January 2011. Advanced Subsidiary GCE Unit F452: Programming Techniques and Logical Methods
GCE Computing Advanced Subsidiary GCE Unit F452: Programming Techniques and Logical Methods Mark Scheme for January 2011 Oxford Cambridge and RSA Examinations OCR (Oxford Cambridge and RSA) is a leading
Semantic Description of Distributed Business Processes
Semantic Description of Distributed Business Processes Authors: S. Agarwal, S. Rudolph, A. Abecker Presenter: Veli Bicer FZI Forschungszentrum Informatik, Karlsruhe Outline Motivation Formalism for Modeling
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Security and Privacy in Cloud Computing
Security and Privacy in Cloud Computing Ragib Hasan Johns Hopkins University en.600.412 Spring 2010 Lecture 1 01/25/2010 Welcome to the class Administrative details When? : Monday 3pm-3.50pm Where?: Shaffer
Obfuscation by Partial Evaluation of Distorted Interpreters
Obfuscation by Partial Evaluation of Distorted Interpreters Neil D. Jones DIKU, University of Copenhagen (prof. emeritus) Joint work with Roberto Giacobazzi and Isabella Mastroeni University of Verona
CSC 272 - Software II: Principles of Programming Languages
CSC 272 - Software II: Principles of Programming Languages Lecture 1 - An Introduction What is a Programming Language? A programming language is a notational system for describing computation in machine-readable
Software Reverse Engineering
Software Reverse Engineering Jacco Krijnen June 19, 2013 Abstract While reverse engineering probably started with the analysis of hardware, today it plays a significant role in the software world. We discuss
