Konloch / Konloch/bytecode-viewer
StackOverflowError while decompiling
Open
Nobody has claimed this yet.
Android
Bug
Dependency Related
- Dominant language
- Java
- Stars
- 15.6k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
Apk being decompiled:
- https://anonfiles.com/Tb41G4U7yb/base_apk
- https://web.archive.org/web/20230129113039/https://cdn-127.anonfiles.com/Tb41G4U7yb/8edfc9c8-1674992184/base.apk
Bytecode Viewer Version: 2.11.2 [Fat Jar], OS: Linux, Java: 19.0.2
java.lang.StackOverflowError
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2569)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2500)
at com.strobel.assembler.metadata.CompoundTypeReference.accept(CompoundTypeReference.java:120)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visit(MetadataHelper.java:2514)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2573)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2500)
at com.strobel.assembler.metadata.CompoundTypeReference.accept(CompoundTypeReference.java:120)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visit(MetadataHelper.java:2514)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2573)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2500)
at com.strobel.assembler.metadata.CompoundTypeReference.accept(CompoundTypeReference.java:120)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visit(MetadataHelper.java:2514)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2573)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2500)
at com.strobel.assembler.metadata.CompoundTypeReference.accept(CompoundTypeReference.java:120)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visit(MetadataHelper.java:2514)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2573)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2500)
at com.strobel.assembler.metadata.CompoundTypeReference.accept(CompoundTypeReference.java:120)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visit(MetadataHelper.java:2514)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2573)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2500)
at com.strobel.assembler.metadata.CompoundTypeReference.accept(CompoundTypeReference.java:120)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visit(MetadataHelper.java:2514)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2573)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2500)
at com.strobel.assembler.metadata.CompoundTypeReference.accept(CompoundTypeReference.java:120)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visit(MetadataHelper.java:2514)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2573)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2500)
at com.strobel.assembler.metadata.CompoundTypeReference.accept(CompoundTypeReference.java:120)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visit(MetadataHelper.java:2514)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2573)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2500)
at com.strobel.assembler.metadata.CompoundTypeReference.accept(CompoundTypeReference.java:120)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visit(MetadataHelper.java:2514)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2573)
... the four lines above repeated 1000 times ...
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visitCompoundType(MetadataHelper.java:2500)
at com.strobel.assembler.metadata.CompoundTypeReference.accept(CompoundTypeReference.java:120)
at com.strobel.assembler.metadata.MetadataHelper$SameTypeVisitor.visit(MetadataHelper.java:2514)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure with the linked APK and inspect the stack trace entry points in MetadataHelper$SameTypeVisitor and CompoundTypeReference. Trace the repeated compound-type visitation and verify that decompilation completes without a StackOverflowError for this APK.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, java
- Domain
- reverse-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100