4.X primary TODO list.
- Welcome
- [ ] First time configuration based on what the user intends to do #702
- In-application help
- [x] In-application tutorials with basic code samples #709
- Can express as a custom workspace type with an identifier of which tutorial is open
- Different tutorials could add different popup notifications to UI controls to explain their usage
- [x] In-application tutorials with basic code samples #709
- External help
- [ ] Write user documentation for 4.X
- [ ] Write developer documentation for 4.X
- Menu Bar
- [ ] Plugins menu
- Workspace explorer
- [x] Support embedded resources
- [x] Viewing
- [x] Editing
- [x] Exporting
- [x] Make modified classes visually distinct #680
- [x] Add keybind support for renaming #820 (and possibly other actions)
- [x] Support embedded resources
- Workspace summary
- [ ] Android manifest summarization #720
- [ ] Known obfuscation detection summarization
- [ ] Minecraft mod summarization (Forge/Fabric) #667
- [ ] Main mod classes
- [ ] Pull in target MC version as a supporting resource
- [ ] Automatic mapping support
- Class views
- [x] Hex view
- [x] Low level view
- [x] Kotlin metadata side-tab
- [ ] Option to show fields/methods tab open by default #752
- Decompilers
- [x] Fallback (port from 3x)
- File views
- [x] HTML (As XML)
- [ ] Markdown
- Change/history viewer
- [ ] Change viewer UI between original state and modified state
- [ ] Class support
- [ ] File support
- [x] Support exporting as
.repatchfile format so Recaf can apply the patch again later
- [ ] Change viewer UI between original state and modified state
- Search
- [ ] Additional filters (package white/black lists)
- [ ] Fuzzy text search mode
- [ ] Class hierarchy search/display #915
- [x] Instruction pattern search #617
- Strictly text-based like before utilizing JASM? Probably easier for most end-users since its something that allows copy-pasting from the assembler.
- More node/pattern like similar to Concoction?
- [ ] Structure search - https://github.com/Minecraft-Malware-Prevention-Alliance/concoction/issues/4
- Plugins
- [ ] Plugin manager UI
- [ ] Link to plugin development guide to make it easy to start
- [ ] Create plugin templates
- Config
- [ ] Investigate what would improve the layout beyond our automated setup. Its laid out in a bit of a "jumbled" way at the moment.
- [x] ~~Font size sliders~~
- This is sadly a bit tricky with our theme setup. There are a lot of small edge cases in the theme that rely on exact sizes. I found that a more reasonable solution was to just implement a generic window scaling. It'll apply when restarting Recaf.
- [ ] Organize into sane ordering (vs alphabetic of key names)
- Context menus
- [x] Organize into sane ordering
- Creation of new content
- [ ] Files
- [x] Classes #113
- Additional actions
- Classes
- [x] Generate method overrides (prompt to show which methods can be overriden)
- Packages / Directories
- [x] Export (we have single-file export, but not package/dir exports)
- Classes
- Assembler
- [x] Tab completion for opcodes
- [x] Tab completion for type refs
- [x] Tab completion for field/method refs
- [ ] Option to change variable table handling #851
- [ ] Automatically generate variables when variable data exists
- [ ] Never write variable data
- [ ] Always write variable data
- [ ] Add missing JVM attribute support
- [ ] Invisible annotations, type annotations, etc #760
- Android support (Replace our dependency on Google's R8 with our own implementation that better adapts to our model in Recaf)
- Call graph UI
- [x] Port 3X UI to 4X
- [x] Add UI to method context menus
- Mapping
- [ ] Correlation mapping: See fabric's matcher for details
- The backing structure similarity logic can be useful in other places too
- [ ] Correlation mapping: See fabric's matcher for details
- Improved instrumentation
- [ ] Fetch
META-INF/MANIFEST.MFfor application info - [ ] Option to copy remote
java.class.pathpaths to a local workspace without attaching (If all paths are found) - [ ] Option to run arbitrary payloads (Pass over a
Runnableinstance and invoke it in a safe manner, reporting back results)
- [ ] Fetch
- Simulation
- [ ] Rewrite a smaller version of
SSVMand integrate it to support:- [ ] Simulate (for yielding a result)
- [ ] Optimize (for using the simulation to optimize code patterns)
- [ ] Rewrite a smaller version of
I want know what is the 'Low level view' mean
Hey, is EXPR not yet implemented in 4.0? I am getting Unknown expression error. It works fine in version 2.
Hey, is EXPR not yet implemented in 4.0?
There is no more EXPR pseudo-instruction. Instead you have a tab in the assembler that lets you paste multiple lines of Java source code (with imports statements supported) and it will convert that into bytecode. It is much more powerful than EXPR ever was.
What is low level view?
Right click on a class tab and you can switch to this low level view. It will show you a tree structure of the class file contents.
font size