Skip to content
/ loop Public

Logic-Oriented Opaque Predicate Detection in Obfuscated Binary Code

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE.GPL
MIT
LICENSE.MIT
Notifications You must be signed in to change notification settings

s3team/loop

Repository files navigation

LOOP is a logic oriented opaque predicate checker. It is able 
to detect the following opaque predicates in binary code:

1. Invariant opaque predicate
2. Contextual opaque predicate
3. Dynamic opaque predicate

LOOP is developed based on BAP.

BAP: The Binary Analysis Platform. For more information see the
project webpage at http://bap.ece.cmu.edu

BAP is released under MIT license and the GPL license; see the
appropriate LICENSE.{MIT,GPL}.

How to use:

1. Use Pin to generate a execution trace. It also needs a lib called gentrace. The command is like:
   LOOPDIR/pin/pin -t LOOPDIR/pintraces/obj-ia32/gentrace.so -taint_args -- yourprogram yourargs

2. Convert trace into concrete trace:
   LOOPDIR/utils/iltrans -trace tracename -trace-concrete -pp-ast tracename.con.il

3. Preprocess the trace:
   LOOPDIR/utils/pre_process.pl tracename.con.il

4. Symbolic execute the trace:
   LOOPDIR/utils/iltrans -il tracename.con.il -il-formula tracename.stp

5. Solve the formula with STP. You will need a STP solver installed.
   stp tracename.stp

About

Logic-Oriented Opaque Predicate Detection in Obfuscated Binary Code

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE.GPL
MIT
LICENSE.MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published