Skip to content

Deep-0pen/DeepOpen-public

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Attempt to recreate code of Fishlabs games and their common core Abyss Engine for education and entertainment purposes, by revese engineering.

Currently the essence of this repo is the symbol mapping for GoF2 version 1.0.4 (the last update for J2ME published for free by the fishes)



Goals

  1. Getting fully readable java code
    • deobfuscating GoF2 classes, fields and methods names using Recaf - now
    • deobfuscating insides of methods - touched (.aem loading class implemented in GoF2:Reforged1)
    • Making documentation for the code.
  2. Porting to other platforms, modding java...

Want to contribute?

Software requirements:
Operating system:

  • Windows or Linux or MacOS may work too.

Decompilation, static analysis, deobfuscation:

  • Recaf 4: (manual) Java 22+ 64-bit

Testing and dynamic analysis:

  • KEmulator (nnmod) - standalone emulator with many options
  • EclpiseME (video guide, debuging fix) - J2ME development extension for Eclipse IDE, allows breakpoint, step debuging

Deobfuscation procedure (what I do):

  1. In Recaf:
  2. In KEmulator:
    • Test2 by running the .jar
    • Dynamic analysis: tab View-> Watches/Methods/Memory View/Log/Options...*
  3. In Recaf:

3 Just load the GoF2_deobfuscation.jar deobfuscate, save the mapping, send it to me and I will be able to apply it on top of main mapping.
2 If you screwed up or Recaf breaks (happens), but have unsaved renaming, go to step 3. and Save the mapping as without overwritting the old one. Try step 1. it or try fixing the new mapping in text editor.
1 Biggest GoF2 Mod as of now (2024-10-20). Source code I haven't seen, haven't accessed and will not be published.
0 'unordered' becouse Recaf shuffles lines in mapping file on export so they should be sorted before commiting using sorter.py. Better use my pre-commit hook.

More:
Pre Recaf attempts
Renaming inspiration
Lookup tables for GoF2 (work in progress)