[Soot-list] stalls in 2nd TrapUnitGraph

Arlo Gilbert arlogilbert at me.com
Tue May 11 18:02:44 EDT 2010


Ye the -f J works and dumps out a nice looking jimple file

I found that by disabling the 2nd aggregator/post folding with the gb:a2 enabled:false flag that I was able to successfully progress past the TrapUnitGraph section where I was previously stalling out... the command I am using is below:

java soot.Main -cp . -f d -j2me --allow-phantom-refs --show-exception-dests -p gb.ule enabled:true -p gb.a1 enabled:true -p gb.a1 only-stack-locals:true -p gb.a2 enabled:false -v -pp au


Now however it immediately crashes with the following error:
Exception in thread "main" java.lang.NullPointerException
        at soot.dava.toolkits.base.finders.LabeledBlockFinder.perform_ChildOrder(LabeledBlockFinder.java:94)
        at soot.dava.internal.SET.SETNode.find_LabeledBlocks(SETNode.java:215)
        at soot.dava.internal.SET.SETNode.find_LabeledBlocks(SETNode.java:212)
        at soot.dava.internal.SET.SETNode.find_LabeledBlocks(SETNode.java:212)
        at soot.dava.toolkits.base.finders.LabeledBlockFinder.find(LabeledBlockFinder.java:44)
        at soot.dava.DavaBody.<init>(DavaBody.java:329)
        at soot.dava.Dava.newBody(Dava.java:84)
        at soot.PackManager.runBodyPacks(PackManager.java:813)
        at soot.PackManager.runBodyPacks(PackManager.java:454)
        at soot.PackManager.runBodyPacks(PackManager.java:373)
        at soot.PackManager.runPacks(PackManager.java:350)
        at soot.Main.run(Main.java:198)
        at soot.Main.main(Main.java:141)



The only references I can find to this error are from 2004 when somebody was inquiring as to whether dava was still being actively maintained.

I sure hope that I am not simply bumping into a limitation/bug of the dava code and there is something I can do differently, soot looks so promising for my application.

One question that I can't seem to figure out, what exactly is Jimple? It appears to be Java source in some sense but it does not contain any of the imports so it would not be re-compilable... is there a simple way to convert Jimple into java source since I am able to successfully dump to Jimple files?

Thanks,
Arlo

On May 11, 2010, at 4:52 PM, Stefan Willenbrock wrote:

> 
> 
> -------- Original-Nachricht --------
> Betreff: Re: [Soot-list] stalls in 2nd TrapUnitGraph
> Datum: Tue, 11 May 2010 23:50:47 +0200
> Von: Stefan Willenbrock <willenbr at rhrk.uni-kl.de>
> An: Arlo Gilbert <arlogilbert at mac.com>
> 
> Am 11.05.2010 22:23, schrieb Arlo Gilbert:
>> The command line I am using is:
>> java soot.Main -cp . -f d -j2me --allow-phantom-refs --trim-cfgs --omit-excepting-unit-edges -v -pp au
> 
> Maybe i'm missing something but this looks ok so far. --trim-cfgs
> --omit-excepting-unit-edges might not be necessary because you just want
> to create some dava (decompile classes).
> 
>> 
>> The last few lines of the verbose output are:
>> [W]     finished SimpleLocalUses...
>> Applying phase gb.ule to<au: void W()>.
> 
> Might be the case that you found some class that had been obfuscated
> (with jmangle for example). This might be hard to decompile for soot.
> The classname "au" and the weird methodname W() looks like an indicator
> for that.
> 
> Maybe you could try hust to produce jimple (-f J) and see wether this works.
> 
> Regards, Stefan
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list



More information about the Soot-list mailing list