Skip to content

sariaki/POP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

137 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

POP: Probabilistic Opaque Predicates Against Symbolic Execution

This project showcases a new type of opaque predicate built to thwart symbolic execution based attacks. To achieve this, these new probabilistic opaque predicates do the following:

  1. Select a function parameter (satisfying some properties) to create a symbolic variable.
  2. Using the inverse CDF method, make the variable lie on a distribution which we create.
  3. Make probable/improbable statements about the transformed variable.
  4. profit.

Because probabilistic opaque predicates are just likely to take on a certain value but not deterministic, symbolic execution engines are unable to prove that they are opaque, i.e. prove that only one branch can be taken. By choosing a tiny probability of failiure (below that of an hardware error), the probabilistic opaque predicates have no practical impact on the obfuscated programs.

About

POP: Probabilistic Opaque Predicates - A new type of opaque predicate built to thwart symbolic execution based attacks. Made for the German "Jugend forscht" research competition.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors