• DocumentCode
    1763371
  • Title

    Pushing Java Type Obfuscation to the Limit

  • Author

    Foket, Christophe ; De Sutter, Bjorn ; De Bosschere, Koen

  • Author_Institution
    Dept. of Electron. & Inf. Syst., Ghent Univ., Ghent, Belgium
  • Volume
    11
  • Issue
    6
  • fYear
    2014
  • fDate
    Nov.-Dec. 2014
  • Firstpage
    553
  • Lastpage
    567
  • Abstract
    Bytecoded .Net and Java programs reveal type information through encoded type hierarchies, casts, field declarations and method signatures. This facilitates bytecode verification, but it also helps reverse engineers. To obfuscate the type information, we combine three transformations. Class hierarchy flattening removes as much of the type hierarchy from programs as possible. Interface merging and object factory insertion further remove type information from casts, method signatures, and object creation sites. We evaluate these techniques with a prototype tool for Java bytecode. On real-life programs from the DaCapo benchmark suite, we demonstrate that our approach effectively hinders human and tool analysis with limited overhead.
  • Keywords
    Java; formal verification; reverse engineering; Bytecoded.Net; DaCapo benchmark suite; Java bytecode; Java programs; Java type obfuscation; bytecode verification; class hierarchy flattening; encoded type hierarchies; field declarations; interface merging; method signatures; object creation sites; object factory insertion; reverse engineering; Computer languages; Cryptography; Encoding; Java; Production facilities; Java bytecode; class hierarchy; obfuscation; performance; points-to sets; type information; understandability;
  • fLanguage
    English
  • Journal_Title
    Dependable and Secure Computing, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1545-5971
  • Type

    jour

  • DOI
    10.1109/TDSC.2014.2305990
  • Filename
    6739076