Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parse failed #635

Open
tyousyuka opened this issue Aug 3, 2023 · 5 comments
Open

parse failed #635

tyousyuka opened this issue Aug 3, 2023 · 5 comments

Comments

@tyousyuka
Copy link

@StevenArzt Hello

3 there are some errors. and it is very slowly. how to optimize it? is it the flowdroid's bug?

used:

2 1
@StevenArzt
Copy link
Member

This seems to be a Soot problem, most likely with the LocalSplitter. It definitely looks like a bug. However, such issues usually only affect individual apps. If you have the time, you can look into it, but the process of translating Dalvik bytecode into Jimple IR isn't exactly trivial.

@t1mlange
Copy link
Contributor

t1mlange commented Aug 3, 2023

I've seen the same error log within a Kotlin app using the contentDeepToString() method. The example in the docs is sufficient to trigger the error, so this might be useful as a small reproducer for debugging.

@tyousyuka
Copy link
Author

@StevenArzt
when I setMergeDexFiles(false), it can parse quickly.
but set it true, it always unable to end parsing.
it is the soot's bug or the flowdroid's bug ? the apk have 3 class.dex or more

@StevenArzt
Copy link
Member

The option setMergeDexFiles has nothing to do with the bug. It only specifies whether Soot shall process more than the first DEX file. Excluding additional DEX files just means that you are only parsing a fraction of the code. When you're lucky, this avoids the bug, but it also looses a lot of the code under analysis.

@tyousyuka
Copy link
Author

The option setMergeDexFiles has nothing to do with the bug. It only specifies whether Soot shall process more than the first DEX file. Excluding additional DEX files just means that you are only parsing a fraction of the code. When you're lucky, this avoids the bug, but it also looses a lot of the code under analysis.

@StevenArzt Hello
Now I have an APK, approximately 70MB, containing 3. dex files,
If I setMergeDexFiles (false), it can successfully parse and complete within 40 seconds,
If I setMergeDexFiles (true), it will not be able to successfully parse for 2 hours,
So if I want it to be able to setMergeDexFiles (true) and successfully parse within one minute, what should I do?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants