Hi,
I sent the below note sometime ago. Would appreciate it if you could have a
look at the suggested changes to Soot in order to support better j2me code,
and consider integrating them into Soot's next release.
Thanks,
Ran.
Here's the old note:
Hi,
When jimplifying a JavaCard applet in J2ME mode soot gives the following
message:
java.lang.RuntimeException: tried to get nonexistent method:
<java.lang.Class:
java.lang.Object newInstance()> !
at soot.Scene.getMethod(Scene.java:334)
at soot.jimple.toolkits.invoke.MethodCallGraph.isReachable
(MethodCallGraph.java:220)
at soot.jimple.toolkits.invoke.MethodCallGraph.initialize
(MethodCallGraph.java:178)
..........
This is since the class java.lang.Class is excluded from the java.lang
package
in JavaCard's specification.
Attached a fix to MethodCallGraph.java to avoid above exception.
Also, it seems that J2ME is not "officially" supported in the sense that
there
is no command line argument to specify a J2ME mode.
This is convenient (at least for us) in an environment where J2SE and
J2ME/JavaCard applications are analyzed.
Attached support for the command line argument --j2me in Main.java.
Cheers,
Ran.
(See attached file: better-j2me-support.zip)
Attachment:
better-j2me-support.zip
Description: Zip archive