lilicoding / soot-infoflow-android-iccta

Inter-component communication Taint Analysis for Android
https://sites.google.com/site/icctawebpage/
GNU Lesser General Public License v2.1
92 stars 45 forks source link

Unable to retarget APK using dare #23

Closed vijayantajain closed 4 years ago

vijayantajain commented 4 years ago

Hi, I am trying to configure ICCTA on my desktop with the following configuration - OS: Ubuntu 18.08 Java: 11.0.6

I am following this wiki to configure ICCTA. However, when I am trying to retarget my APK using dare, I get the following error -

Unable to open 'ae.gov.dha.dha.dha-12.apk' as zip archive
Not Zip, retrying as DEX
ERROR: unable to open 'ae.gov.dha.dha.dha-12.apk': No such file or directory

I tried this with two different apk files that I am able to unzip using unzip.

Not entirely sure where the issue is. Can you suggest on a workaround?

Thanks.

JordanSamhi commented 4 years ago

Hello @vijayantajain,

As mentionned in the link you provide, it is advised to use Java 8 not Java 11. Also, you can use this version of IC3: https://github.com/JordanSamhi/ic3 that does not need anymore to retarget the APK with Dare.

I have to update this wiki.

vijayantajain commented 4 years ago

@JordanSamhi - Thanks for your reply.

Sorry it slipped my mind to check the Java version. I will try with Java 8 and let you know if I have any other issues.

Person-J commented 4 years ago

Hello @JordanSamhi , I tried using ic3.jar in your repo Tools like this way: F:\Tools>java -jar ic3.jar -a F:\APKS\3\Activapp_v010_apkpurecom.apk -cp D:\android-sdk-windows\platforms\android-23\android.jar -db cc.properties -binary , then the following error occurred: Loading class "com.mysql.jdbc.Driver". This is deprecated. The new driver class is "com.mysql.cj.jdbc.Driver". The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. java.sql.SQLException: The server time zone value '????????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to utilize time zone support. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at edu.psu.cse.siis.ic3.db.Table.connect(Table.java:153) at edu.psu.cse.siis.ic3.db.Table.getConnection(Table.java:69) at edu.psu.cse.siis.ic3.db.ApplicationTable.find(ApplicationTable.java:55) at edu.psu.cse.siis.ic3.db.ApplicationTable.insert(ApplicationTable.java:29) at edu.psu.cse.siis.ic3.db.SQLConnection.insert(SQLConnection.java:79) at edu.psu.cse.siis.ic3.manifest.ManifestPullParser.writeToDb(ManifestPullParser.java:267) at edu.psu.cse.siis.ic3.Ic3Analysis.initializeAnalysis(Ic3Analysis.java:119) at edu.psu.cse.siis.ic3.Ic3Analysis.initializeAnalysis(Ic3Analysis.java:64) at edu.psu.cse.siis.coal.Analysis.performAnalysis(Analysis.java:73) at edu.psu.cse.siis.ic3.Main.main(Main.java:13) Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '????????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to utilize time zone support. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85) at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:132) at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2118) at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2142) at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1310) at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:967) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826) ... 15 more Exception in thread "main" java.lang.NullPointerException at edu.psu.cse.siis.ic3.db.ApplicationTable.find(ApplicationTable.java:55) at edu.psu.cse.siis.ic3.db.ApplicationTable.insert(ApplicationTable.java:29) at edu.psu.cse.siis.ic3.db.SQLConnection.insert(SQLConnection.java:79) at edu.psu.cse.siis.ic3.manifest.ManifestPullParser.writeToDb(ManifestPullParser.java:267) at edu.psu.cse.siis.ic3.Ic3Analysis.initializeAnalysis(Ic3Analysis.java:119) at edu.psu.cse.siis.ic3.Ic3Analysis.initializeAnalysis(Ic3Analysis.java:64) at edu.psu.cse.siis.coal.Analysis.performAnalysis(Analysis.java:73) at edu.psu.cse.siis.ic3.Main.main(Main.java:13)

I have replaced mysql in my PC from 8.0.19 to 5.5.62,but this error still exists.Any suggestions? Thank you!

JordanSamhi commented 4 years ago

Hello @Person-J,

Could you git pull the Tools repo and try again, the issue should be fixed.

Person-J commented 4 years ago

@JordanSamhi Thank you,It does work! Your efficiency is admirable.

vijayantajain commented 4 years ago

Closing the issue for now.