/revrs

A dynamic and static analysis tool for osrs

Primary LanguageJava

This is a tool with the central purpose of debugging and exploring the loaded classes in a JVM.

The intention of this code is to be open source. The point is to learn more about reverse engineering.

The intended feature (In order of importance) set includes:

  • Hierarchy Tree View

    • Editable (Insert/Remove/Move)
  • Real Time Value Debugging

    • Value watches
    • Threshold values (alert)
    • On screen debugging allowed
  • Object Explorer

    • Stems from RTD
    • Explores any non-array object
    • No limit on depth
  • Array Explorer (for any size dimension)

    • Provides RTD access to object explorer for arrays
    • Should be able to filter subsets in array
  • Member Identification Utility

    • Easy to use / clean framework
    • Standard format (I/O both) [CSV likely]
    • Work in-line with RTD for debugging (refactor)
    • Output Support
  • Real Time Injection (note: able to be hot-swapped with changes)

    • For use in conjunction with MIU
    • Keep initial classes, hot-swap when needed There are really two options for this. One is to restart the jar after re-injecting, so reflection may be the most beneficial here. However, http://hotswapagent.org/ could also be used as it allows for you to specify a custom vm that allows for full class structure swapping. This will not be considered a priority atm.
  • Member Transform Support

    • Would be for callback / deob
    • Not essential for the initial purpose

Things revrs is NOT:

  • An IDE. While it will support MIU, it will not provide a means to do so, you can code in your IDE of choice and point to the files.
  • A substitute for an updater. revrs will assist you in locating necessary hooks and values, however, you must do the work and maintain updates.
  • A teacher. You will still need to gain knowledge and learn on your own or from another person, this is not an instructional teaching software.

Uses a condensed version of ASM5 adapted by myself and @tsedlar. https://github.com/SwipeX/ASM-5-Condensed