Skip to content

Roadmap #16

@zlataovce

Description

@zlataovce

General:

  • Localization
  • Harden the ZIP parser
    • currently, an end-of-central-directory record (EOCDR) is needed to parse the file, however OpenJDK can also read ZIPs with only local file records
  • Rework the code/hex tab system to allow for more ways of interpretation + make it easily switchable
    • e.g. Android binary XML, which needs an intermediate translation step to make it back into text

Disassembly:

  • Port decompilers/disassemblers to WASM (through TeaVM WASM GC backend - pending on the threading feature, needed for resource fetching callbacks)
    • JASM
    • Vineflower
    • Procyon
    • slicer (pseudocode disassembler) - N/A, it's plenty fast and I don't want to delve into AssemblyScript right now
  • Improve decompilation output
    • decreased output quality - currently, decompilers do not have access to the Java standard library, like they would in a real JVM
    • sometimes decompilers fail entirely when they shouldn't (example: the Ethanol Minecraft plugin RAT), perhaps due to a TeaVM quirk, or the aforementioned lack of the runtime classes?
    • patch more decompiler/ASM crashing cases in the verification transformer, reference: Recaf's cafedude

UI/UX:

  • Improve the context menu
    • the default browser context menu is disabled app-wide, so maybe replace it with a custom one with basic things like Copy+Paste?
    • add file context menus to tab headers
    • and search results
  • Collapse long paths with single-child directories
  • Add a centralized configuration place of some sort
    • many checkboxes/radio buttons throughout the app are persisted, but maybe move them into a more centralized tab/dialog?
  • Expose disassembler configuration in UI
    • right now, you can only use the scripting API to make (temporary) changes to the disassembler's configuration
  • Improve search UX
    • files: the command field on double-shift is not immediately obvious
    • classes: add presets to allow you to search strings/references/declarations/...
      • you can already do this with the Constant pool mode pretty much, but it's not obvious to newbies + you need to know the disassembled syntax from the docs
  • Fix the mode switching bug
  • Replace the Touhou art in the About dialog with something else (for the 100 stars milestone)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions