-
Notifications
You must be signed in to change notification settings - Fork 444
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
Exceeded execution time issues when optimizing #98
Comments
If it's not crashing, just hitting an execution limit, it's usually because of an "unknown" predicate leading to an infinite loop. There's no real solution to this (Halting) problem. You can bump up the limits, that sometimes helps, but it may just be impossible because there's a conditional dependent on file system or network state. |
As discussed with @CalebFenton over Slack, incrementing the execution time didn't help much.
Simplification complete:
total classes = 3236
total methods = 0
optimized methods = 2
failed methods = 2
run time = 848566 ms
Total optimizations:
Writing output to classes_simple.dex |
Hi @CalebFenton, any progress on this issue? It seems to be very recurrent and frequent issue every time I use Cheers |
Hitting these types of errors in my experience means everything is working and you're just hitting the halting problem (which is very impossible to solve). Basically, any time you have a loop where the terminating condition relies on a variable which may be unknown, simplify will never know when to exit the loop. I haven't closed this issue because I still want to look into this app to see if it exposes any bugs which might be contributing to the halting issue. You could help out by pasting code you think should be deobfuscated, and I can try and tell you why it may be a halting issue. |
Tested only in a function but the latest version did a good job 👍 Total optimizations:
constantized ifs = 3
constantized ops = 13
dead assignments removed = 27
dead ops removed = 103
dead results removed = 5
nops removed = 1
peephole optmizations = 2
unreflected fields = 0
unreflected methods = 1
useless gotos removed = 2
Writing output to classes_simple.dex |
Sample:
com.winglungbank.p2p.zip (rename .zip to .apk)
Goals:
a(III)
Command 1:
$ java -jar simplify/build/libs/simplify.jar -it "MedlJni\;(.*)" /tmp/com.winglungbank.p2p.apk.unpack/classes.dex
Logging 1:
Command 2:
$ java -jar simplify/build/libs/simplify.jar -it "MedlJni\;(.*)" --max-method-visits 2000000 --max-call-depth 100 --max-address-visits20000 /tmp/com.winglungbank.p2p.apk.unpack/classes.dex
Logging 2:
Any suggestion to overcome this? @CalebFenton
The text was updated successfully, but these errors were encountered: