Skip to content

winxpqq955/HotSpotter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HotSpotter

Project Overview

HotSpotter is a dynamic reverse engineering tool for the Java Virtual Machine (JVM). The goal is to provide a powerful GUI for attaching to running JVMs, inspecting classes, setting low-level hooks, and patching code? and data at runtime.

image

Build Instructions

Windows Setup

  1. run ./make_fonts.sh in client\external to generate the font header files required by the project.
  2. cmake -S . -B build in project root directory to configure the build directory.
  3. cmake --build build --config Debug or cmake --build build --config Release to compile the project.

Tech Stack

Layer Technology
Language C++
GUI Dear ImGui
JVM Interface JVMTI, JNI
Build CMake

Feature Roadmap

v1: Core Features

  • Attach to running JVMs
  • Display JVM/process info
  • Enumerate all loaded classes
  • Hook to class load event
  • Class hierarchy navigation
  • View class details: classinfo, fields, methods (PARTIAL)
  • Dump classes to disk

v2: Event Hooking

  • Select class/method/field in UI to set specific hooks
  • Set and filter for:
    • Method Entry events (all/class/method-specific)
    • Native Method Bind (all/class/method-specific)
    • Field Access/Modification (all/class/field-specific)
  • Display live events, filter by selection

v3: Runtime Patching

  • Select class tab to:
    • View full class info
    • View decompiled output (integrate decompiler)
    • View raw class bytecode
    • List all instances of a class
      • Select instance to view/patch fields
  • Patch fields (value, access modifiers)
  • Patch/replace method bytecode (if technically possible)

Possible Future Enhancements

  • Scripting or Plugins (Python or Lua)
  • Seperate core and frontend, so both can easly be replaced by custom solutions (maybe kernel mode core + web frontend if you want to be fancy)

About

Runtime JVM Reverseengineering tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 91.8%
  • CMake 7.8%
  • Shell 0.4%