Skip to content
This repository was archived by the owner on Jun 26, 2021. It is now read-only.

Karlatemp/JvmHookFramework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

064106a · Jun 26, 2021

History

36 Commits
May 29, 2021
May 29, 2021
May 29, 2021
Mar 27, 2021
May 29, 2021
Apr 10, 2021
May 29, 2021
Mar 19, 2021
May 29, 2021
May 29, 2021
May 29, 2021
Mar 27, 2021
Mar 19, 2021
May 29, 2021
Jun 26, 2021
May 28, 2021
Mar 20, 2021
May 29, 2021

Repository files navigation

JvmHookFramework

HookFramework for jvm

See (KasukuSakura/JvmHookFramework)[https://github.com/KasukuSakura/JvmHookFramework]

简体中文

Warning: Not suitable for production environment, very slow

Download

Go to Actions. Client the latest successful CI run.

Move to bottom, you will see artifacts. Download Jars and OS library

Run

After downloaded. Your disk has the following files:

Jars.zip
    `- api-1.0.0.jar                        -  The api for developers
    `- jvm-hook-framework-core.jar          -  Runtime java library (shadowed)
    `- jvm-hook-framework-launcher.jar      -  JHF Launcher (Javaagent)
    `- jvm-hook-framework-launcher-obf.jar  -  JHF Launcher (Javaagent) (Relocated)
    `- jvm-hook-framework-obf.jar           -  JHF Launcher (Javaagent) (Relocated) (Not runnable)
NativeLib.zip
    `- libnative.dll / libnative.so         - native lib (native agent)

You need change your java command line to use JvmHookFramework. Like:

java -agentpath:/path/to/libnative.so -javaagent:/path/to/jvm-hook-framework-launcher.jar ...
# Or
java -agentpath:/path/to/libnative.so -javaagent:/path/to/jvm-hook-framework-launcher-obf.jar ...

Install extensions

Run java once. A folder named jvm-hook-framework-extensions will created in working direction. Place extensions in it.

You can change it to other locations. Just setup JVM_HOOK_FRAMEWORK_EXTENSIONS environment.

#!/usr/bin/env bash

JVM_HOOK_FRAMEWORK_EXTENSIONS=/path/to/other/dir
java ....

Develop extension

Maven Central

Depend on the latest version of io.github.karlatemp.jvm-hook-framework:api

Use io.github.karlatemp.jvmhook.JvmHookFramework to register hooks

Built jar need contains a file named jvm-hook-ext.txt that contains ExtMainClass.

Example extension: TestExtension