[Soot-list] Experiences with memory consumption of FlowDroid

Steven Arzt Steven.Arzt at cased.de
Wed Jun 11 04:30:26 EDT 2014


Hi Bernhard,

The issue should be fixed now, there was an interesting bug in FlowDroid's
own IFDS solver. The source code is already online, a new nightly build will
be available tomorrow.

Best regards,
  Steven

-----Ursprüngliche Nachricht-----
Von: Bernhard Berger [mailto:berber at tzi.de] 
Gesendet: Dienstag, 10. Juni 2014 11:13
An: Steven Arzt
Cc: soot-list at CS.McGill.CA
Betreff: Re: [Soot-list] Experiences with memory consumption of FlowDroid

Hi Steven,

I tried —applength 1, so far. Using —nopaths reduces the runtime from 400
minutes to 20 seconds. Thank you for the hint. Nevertheless, I found a
situation where it leads to a different result. For a simple App I wrote it
finds a possible path. If I pass the —nopaths option there is no finding at
all. According to the documentation the option should not influence the
number of found paths.

The log output is identical for the generated mains and differs when looking
for taint wrappers:

Normal:
> [main] INFO soot.jimple.infoflow.Infoflow - Callgraph has 588 edges 
> [main] INFO soot.jimple.infoflow.Infoflow - Looking for sources and
sinks...
> [main] INFO soot.jimple.infoflow.Infoflow - Source lookup done, found 28
sources and 9 sinks.
> [main] INFO soot.jimple.infoflow.Infoflow - Taint wrapper hits: 651 
> [main] INFO soot.jimple.infoflow.Infoflow - Taint wrapper misses: 1122 
> [main] INFO soot.jimple.infoflow.Infoflow - IFDS problem with 4925 forward
and 308 backward edges solved, processing 1 results...
> [main] INFO 
> soot.jimple.infoflow.data.pathBuilders.SemiThreadedPathBuilder - 
> Obtainted 1 connections between sources and sinks [main] INFO 
> soot.jimple.infoflow.data.pathBuilders.SemiThreadedPathBuilder - 
> Building path 1 [main] INFO
soot.jimple.infoflow.data.pathBuilders.SemiThreadedPathBuilder - Path
processing took 0.003376547 seconds in total for 36 edges [main] INFO
soot.jimple.infoflow.data.pathBuilders.SemiThreadedPathBuilder - Running
path extension on 1 roots [main] INFO
soot.jimple.infoflow.data.pathBuilders.SemiThreadedPathBuilder - Path
extension took 0.01424642 seconds.
> [main] INFO 
> soot.jimple.infoflow.data.pathBuilders.SemiThreadedPathBuilder - Path 
> proecssing took 0.016318087 seconds in total
> 


—nopaths
> [main] INFO soot.jimple.infoflow.Infoflow - Callgraph has 588 edges 
> [main] INFO soot.jimple.infoflow.Infoflow - Looking for sources and
sinks...
> [main] INFO soot.jimple.infoflow.Infoflow - Source lookup done, found 28
sources and 9 sinks.
> [main] INFO soot.jimple.infoflow.Infoflow - Taint wrapper hits: 202 
> [main] INFO soot.jimple.infoflow.Infoflow - Taint wrapper misses: 424 
> [main] INFO soot.jimple.infoflow.Infoflow - IFDS problem with 2418 forward
and 257 backward edges solved, processing 0 results...
> [main] WARN soot.jimple.infoflow.Infoflow - No results found.
> Analysis has run for 9.741048652 seconds

Any ideas?


Best regards, Bernhard




Am 10.06.2014 um 10:25 schrieb Steven Arzt <steven.arzt at cased.de>:

> Hi Bernhard,
> 
> I was able to analyze Facebook, which is to the best of my knowledge the
largest application available in the play store today, with 75 GB of memory.
In general, the larger and the more complex the app is, the more memory you
need. We know that this is a problem at the moment and we're looking into
how to reduce the memory footprint - but this is a research direction of its
own that might include changing the underlying machinery from IFDS to
something else - so don't expect any major breakthroughs in a day.
> 
> Can you give me the exact command-line you have used since I have updated
the wiki a few days ago and have added the --nopaths option? I also need the
FlowDroid outputs (stdout and stderr) to analyze the problem.
> 
> Best regards,
>  Steven
> 
> Am 10.06.2014 07:51, schrieb Bernhard Berger:
>> Hi guys,
>> I’m trying to analyze some Apps with FlowDroid (latest nightly 
>> builds) and have some serious memory problems. :-( I picked some 
>> random Apps from Google Play and tried to analyze them. Sadly, my 
>> process gets killed by the OOM-Killer. I tried to reduce the memory 
>> consumption by using all options mentioned in [1].  Nevertheless, the 
>> process hits the -Xmx limit of 60g after some time.
>> What is your experience? How much RAM do I need to analyze Android 
>> Apps using FlowDroid?
>> Regards, Bernhard
>> [1] 
>> https://github.com/secure-software-engineering/soot-infoflow-android/
>> wiki _______________________________________________
>> Soot-list mailing list
>> Soot-list at CS.McGill.CA
>> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
> <pubkey.asc>_______________________________________________
> Soot-list mailing list
> Soot-list at CS.McGill.CA
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list




More information about the Soot-list mailing list