3 Works

Java Bytecode and JVMTI Examples

Jonathan Schaffer Bell
A lot of my research has involved Java bytecode instrumentation with ASM and more recently, also JVMTI development. For instance, with VMVM, we instrumented bytecode to enable efficient java class reinitialization. With Phosphor, we instrumented bytecode to track metadata with every single variable, enabling performant and portable dynamic taint tracking. In ElectricTest, we combined bytecode instrumentation with JVMTI to efficiently detect data dependencies between test cases running within the same JVM. As I built each...

Phosphor: Illuminating Dynamic Data Flow in the JVM (Artifact for Evaluation)

Jonathan Schaffer Bell & Gail E. Kaiser
Dynamic taint analysis is a well-known information flow analysis problem with many possible applications. Taint tracking allows for analysis of application data flow by assigning labels to inputs, and then propagating those labels through data flow. Taint tracking systems traditionally compromise among performance, precision, accuracy, and portability. Performance can be critical, as these systems are typically intended to be deployed with software, and hence must have low overhead. To be deployed in security-conscious settings, taint...

KABU: Dynamic Inference Tool of Metamorphic Properties

Fang-Hsiang Su
Metamorphic testing is an advanced technique to test programs without a true test oracle such as machine learning applications. Because these programs have no general oracle to identify their correctness, traditional testing techniques such as unit testing may not be helpful for developers to detect potential bugs. KABU uses pre-defined input adapters, transformers and checkers to infer metamorphic properties from programs.

Registration Year

  • 2015

Resource Types

  • Software