70 likes | 191 Vues
In the February 16, 2012 team meeting led by Christophe Foket, we discussed the limitations of the class hierarchy flattening in the DaCapo Jar toolflow. The transformed programs often only succeed on specific inputs due to unsound analyses, specifically with Soot's inability to parse certain classes. We identified issues such as memory constraints in call graph construction, improper access to protected data, and low transformation rates in significant benchmarks like tradebeans and tradesoap. This session outlined ongoing tasks for addressing these challenges.
E N D
Team meetingFeb 16, 2012 ChristopheFoket
Classhierarchyflattening Developer Attacker
Toolflow dacapo.jar Problem:transformed program usuallyonlyworksforspecified input as analyses are unsound. input obfuscator small default VM soot .class TamiFlex refl.log input .class
Toolflow dacapo.jar Analyses are sound, since all classes are considered. Sootfails to parsesome classes. (7/14 bmstransformed) input obfuscator dacapo.jar small default VM soot TamiFlex refl.log input .class
TODO (past week) • h2: soot’s type assigner fails • batik: call graph construction out of memory • xalan: bad access to protected data • tradebeans & tradesoap: work, but only small percentage of classes transformed by soot • fop: phantom class loaded at run time • jython: make soot aware of getSuperClass
TODO (past week) • h2: soot’s type assigner fails • batik: call graph construction out of memory • xalan: bad access to protected data • tradebeans & tradesoap: work, but only small percentage of classes transformed by soot • fop: phantom class loaded at run time • jython: make soot aware of getSuperClass • VirtualBox image: lab sessions compilers
TODO (coming week) • h2: use different runtime environment • tradebeans & tradesoap: huge benchmarks (18000+ classes), transformation really slow, not finished => speed up • jython: soot is aware of getSuperClass, but needs testing