secure-software-engineering / SuSi

SuSi - our tool to automatically discover sources and sinks in the Android framework
143 stars 74 forks source link

PScoutPermissionMethodParser.getAllMethod() cause java.lang.UnsupportedOperationException #5

Closed yingkailiang closed 8 years ago

yingkailiang commented 9 years ago

Hi, I just download SuSi project and import to my eclipse. I download the soot jar file from https://github.com/secure-software-engineering/soot-infoflow-android/wiki. Also I download the android.jar from the https://github.com/Sable/android-platforms. When I run SouceSinkFinder.java in eclipse, I give argument as follow: dat/android.jar permissionMethodWithLabel.pscout out.pscout However, it shows the error message like following, I did some debug. The problem caused by PScoutPermissionMethodParser.getAllMethod(). Any suggestion how to fix this? Thanks

Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractCollection.add(AbstractCollection.java:260) at soot.jimple.infoflow.android.data.AndroidMethod.addPermission(AndroidMethod.java:95) at soot.jimple.infoflow.android.data.parsers.PScoutPermissionMethodParser.addToList(PScoutPermissionMethodParser.java:95) at soot.jimple.infoflow.android.data.parsers.PScoutPermissionMethodParser.parse(PScoutPermissionMethodParser.java:76) at soot.jimple.infoflow.android.data.parsers.PScoutPermissionMethodParser.getAllMethods(PScoutPermissionMethodParser.java:285) at de.ecspride.sourcesinkfinder.SourceSinkFinder.loadMethodsFromFile(SourceSinkFinder.java:388) at de.ecspride.sourcesinkfinder.SourceSinkFinder.run(SourceSinkFinder.java:142) at de.ecspride.sourcesinkfinder.SourceSinkFinder.main(SourceSinkFinder.java:135)

StevenArzt commented 9 years ago

Can you please try again with the most recent nightly build? We had a couple of issues in the parser, but they should be resolved by now.

StevenArzt commented 9 years ago

Don't forget to update all required components: soot, soot-infoflow, soot-infoflow-android, and SuSi.

yingkailiang commented 8 years ago

I saw you update the location of import soot.jimple.infoflow.android.source.data.ISourceSinkDefinitionProvider; import soot.jimple.infoflow.android.source.data.SourceSinkDefinition; Please also update the import location in SuSi when you have some free time. After I update the import location, the problem describe above has solved, thank you for your hard working.

StevenArzt commented 8 years ago

Done, thanks for reporting.

luogewhu commented 6 years ago

Hi~I find that the sources and sinks used in FlowDroid is from the file sourceandsink .txt。How can I combine the separate source and sink file while produced by susi into one file ?

StevenArzt commented 6 years ago

@luogewhu Please open a new issue if you want to discuss a new problem or question. Your question has nothing to do with this thread.