-
I noticed that SootUp replaces Soot's original Transformer with Interceptors, making Jimple immutable during the analysis phase, which simplifies program analysis. I can understand the reasoning behind this replacement. However, when performing dynamic analysis (e.g., fuzz testing), we often rely on automated instrumentation of Java bytecode to insert logging statements into the program to monitor its execution. In Soot, we could edit method bodies at the Jimple IR level and then export the edited Jimple as class files. In SootUp, however, I haven't found a way to export the modified Jimple IR back into class files. I'm curious whether the SootUp development team has any plans to implement this functionality? P.S. After reading the paper "SootUp: A Redesign of the Soot Static Analysis Framework", I noticed that the team has plans to unify multiple languages into the Jimple IR for analysis. If the ability to export Jimple back to class files could be reintroduced, I think it could potentially enable some very exciting features like cross-language code transpilation. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Hi @T0niKroOs, |
Beta Was this translation helpful? Give feedback.
Hi @T0niKroOs,
supporting to generate executable bytecode from Jimple is currently a work in progress, but still in its early starting phase.
The necessary modifications of Jimple in a View e.g. for instrumenting can be done via a MutableView and upcoming functionalities from #1069, #939 that will simplify ux while modifying Jimple.