Final remarks
This presentation is the property of its rightful owner.
Sponsored Links
1 / 10

Final remarks PowerPoint PPT Presentation


  • 54 Views
  • Uploaded on
  • Presentation posted in: General

Final remarks. Mariano Ceccato FBK - Fondazione Bruno Kessler [email protected] Opaque Predicates.  T /  F –  always evaluates to T/F (Opaquely T/F Predicate)  ? – may sometimes evaluate to T and sometimes to F. (Opaquely Unknown Predicate).

Download Presentation

Final remarks

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Final remarks

Final remarks

Mariano Ceccato

FBK - Fondazione Bruno Kessler

[email protected]


Opaque predicates

Opaque Predicates

  • T/ F –  always evaluates to T/F (Opaquely T/F Predicate)

  • ? – may sometimes evaluate to T and sometimes to F. (Opaquely Unknown Predicate)


Embedding of opaque predicates dummy code insertion

Embedding of opaque predicates(Dummy Code insertion)


Opaque predicates based on aliasing

Opaque Predicates based on aliasing


Final remarks

Alias based opaque predicates

Aliases :

f = = g

g ! = h

Update :

g = g.left( )

f = g.left().move()

class A {

int f1 ;

int f2 ;

void m ( ) {

int tmp ;

if ( f ==g ) {

f1 = 1 ;

f2 = f1 ++;

}

else {

tmp = f1 +f2 / 5 ;

f1 = f2 - tmp ;

}

class A {

int f1 ;

int f2 ;

void m ( ) {

int tmp ;

if ( f ==g ) {

f1 = 1 ;

g = g.left( ) ;

f2 = f1 ++;

}

else {

g = g.left ( ) ;

tmp = f1 +f2 / 5 ;

f1 = f2 - tmp ;

}

class A {

int f1 ;

int f2 ;

void m ( ) {

int tmp ;

f1 = 1 ;

f2 = f1 ++;

class A {

int f1 ;

int f2 ;

void m ( ) {

int tmp ;

if ( f ==g ) {

f1 = 1 ;

f2 = f1 ++;

}

else {

}

tmp = f1 ;

tmp = tmp - f1 ;

f1 = f1 +f2 ;

}

}

if ( g != h ) {

tmp = f1 ;

tmp = tmp - f1 ;

f1 = f1 +f2 ;

}

else {

}

}

}

if ( g != h ) {

tmp = f1 ;

tmp = tmp - f1 ;

f1 = f1 +f2 ;

}

else {

f1 = tmp / f2 ;

tmp = f2%59+f2 ;

}

}

}

if ( g != h ) {

f = g.left().move() ;

tmp = f1 ;

tmp = tmp - f1 ;

g = g.left( ) ;

f1 = f1 +f2 ;

}

else {

f1 = tmp / f2 ;

tmp = f2%59+f2 ;

f = g.left().move() ;

}

}

}

class A {

int f1 ;

int f2 ;

void m ( ) {

f1 = 1 ;

f2 = f1 ++;

int tmp = f1 ;

tmp = tmp - f1 ;

f1 = f1 + f2 ;

}

}


Jsnapscreen 0 1

JSnapScreen 0.1

  • http://sourceforge.net/projects/jsnapscreen

  • Open source java project (2k LoC)

  • It takes snapshoot of the current screen


Mandatory requirements

Mandatory requirements

  • Work on the merged file

  • Break basic blocks into many sub-parts

  • Add opaque predicates

  • Add random code

  • Add update statements

  • Txl rules must be briefly commented

  • Deliver a “readme” describing how to run the obfuscator


Optional requirements

Optional requirements

  • Work on separated source files

  • Transformation is non-deterministic

    • If applied twice, it gives different results

  • The changed code compiles

  • The changed code runs


Web testing project

Web testing - project

1 - download and install the StudentMarkSimulationorg application

2 - run it in a browser

3 - download the testing specification and write the test cases by using the Fitnesse

- write fit-tables

- update the program implementation when needed

- fill the questionnaire in the test-cases specification

4 - one week before the examination, export the whole project in a new .zip file and send to the educator

- it contains: (a) the new implementation of the StudentMarkSimulationorg

and (b) the fit-tables implementing the testing specification.

5 - present at the exam with the and the filled test cases specification questionnaire


Delivery exam

Delivery & Exam

  • The two projects must be delivered one week (7 days) before the date of the exam

  • Summer session:

    • 12th June 2009

    • 9th July 2009

  • Autumn session:

    • 27th August 2009

    • 3rd September 2009


  • Login