Updates v3 ➞ v4

  • Most of the codebase has been rewritten. This makes it easier to extend Tigress with new features.
  • Tigress-merge is now gone. Instead, you can merge using Tigress itself.  In other words, you can have multiple files on the Tigress command line! You can still use the new --Merge option to merge prior to transforming.
  • Cross-compilation is now easier. The --Environment used to be mandatory, but is now optional, and a new --Compiler option. We try to infer the environment automatically. --Environment is still necessary when cross-compiling.
  • An extensive logging framework has been put in place, making debugging easier. Watching the log can also be interesting for those interested in learning how Tigress works internally. 
  • CIL, the underlying C parser/type checker, has been updated to support the latest Clang and Gcc extensions. This includes new integer, floating point, and complex types, attribute extensions, etc.
  • The Virtualize transform has been given a new "generic defense system" that will make it easy to add new features.
  • The Virtualize and Flatten transforms have new concurrent dispatch methods.
  • We've designed new comprehensive testing system, tigress-test, that can run millions of tests over multiple platforms.
  • The EncodeData transform has been completely redesigned, and now allows any type of encoding scheme to be implemented. We now include the first complete publicly available implementation of Residue Number Coding.
  • Version 4 will -- finally! -- have Windows support.
  • Installation is be a lot easier with support for MacOS .pkg and Debian .deb files.
  • Of course, as usual, lots of bug fixes,
  • A new Tigress logo!
  • These improvements have been supported by a generous grant from the National Science Foundation.  
  • We have built a companion website, LigerLabs,org, with a large number of educational modules on reverse engineering and software protection. This site is also supported by a grant from the National Science Foundation. 
  • The Tigress output file is now better organized, making it easy to post process it.
  • Vastly improved error messages.
  • There's no longer a need to load MyJit source files when transforming with Jit or JitDynamic. These files are now automatically loaded. 
  • A new environment OS option for Android: --Environment=armv8:Android:....