[Soot-list] Soot Body.getUnits() does not get ALL units

Xinxin Jin xinxinjin89 at gmail.com
Wed Apr 8 03:56:52 EDT 2015


Hi Steven,

My code is from an Android app. I use Dexpler to transform the apk to
jimple files.

Thanks,

On Wed, Apr 8, 2015 at 12:54 AM, Steven Arzt <Steven.Arzt at cased.de> wrote:

> Hi Xinxin,
>
>
>
> Can you provide a complete test case? From where did you read in your
> Jimple code?  Did you parse jimple files on disk or Java class files, or an
> Android APK?
>
>
>
> Best regards,
>
>   Steven
>
>
>
> *Von:* soot-list-bounces at CS.McGill.CA [mailto:
> soot-list-bounces at CS.McGill.CA] *Im Auftrag von *Xinxin Jin
> *Gesendet:* Mittwoch, 8. April 2015 09:07
> *An:* Bodden, Eric
> *Cc:* soot-list at cs.mcgill.ca
> *Betreff:* Re: [Soot-list] Soot Body.getUnits() does not get ALL units
>
>
>
> It sounds unreasonable to me too, but that is indeed the problem I
> encountered ... So I'm just wondering if there are some corner cases not
> handled by Soot or not ?
>
>
>
> On Tue, Apr 7, 2015 at 11:40 PM, Bodden, Eric <
> eric.bodden at sit.fraunhofer.de> wrote:
>
> Hi Xinxin.
>
> I am afraid that does not make much sense. By definition, the units of a
> body are the ones returned by getUnits(). This is a very strong invariant
> that should never be broken by Soot.
>
> Cheers,
> Eric
>
>
> > On 08.04.2015, at 08:02, Xinxin Jin <xinxinjin89 at gmail.com> wrote:
> >
> > Hi there,
> >
> > I got a weird problem: Sometimes Body.getUnits() does not list all the
> units of a method. The following is one example:
> >
> > Simplified code snippet:
> >
> > void foo() {
> >     ...
> >     BasicHttpClient basicClient = new BasicHttpClient();
> >     ...
> > }
> >
> > ​And in the Jimple file, there are two statements related with "new
> BasicHttpClient()" :
> >
> > $r5 = new com.turbomanage.httpclient.BasicHttpClient;
> > specialinvoke $r5.<com.turbomanage.httpclient.BasicHttpClient: void
> <init>()>(); ​
> >
> > ​However, when I use retriveActiveBody().getUnits() to print out all the
> units of foo(), I can only see one statement:
> > specialinvoke $r5.<com.turbomanage.httpclient.BasicHttpClient: void
> <init>()>()​
> >
> > I don't know why getUnits() cannot obtain "$r5 = new
> com.turbomanage.httpclient.BasicHttpClient" ?
> > ​What kind of units are ignored by Soot ?​
> >
> > ​Thanks a lot for any advices !​
> >
> >
> >
> > --
> > Xinxin
>
> > _______________________________________________
> > Soot-list mailing list
> > Soot-list at CS.McGill.CA
> > https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
>
> --
> Prof. Eric Bodden, Ph.D., http://sse.ec-spride.de/ http://bodden.de/
> Head of Secure Software Engineering at Fraunhofer SIT, TU Darmstadt and EC
> SPRIDE
> Tel: +49 6151 16-75422    Fax: +49 6151 869-127
> Room B5.11, Fraunhofer SIT, Rheinstraße 75, 64295 Darmstadt
>
>
>
>
>
> --
>
> Xinxin
>



-- 
Xinxin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20150408/9e9bd460/attachment.html 


More information about the Soot-list mailing list