keven1z / DHook

DHook是一个支持动态debug,动态修改java程序的web应用.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DHook 2.5beta1 (shields.io)

java version ASM

DHook是一个支持动态debug,动态修改java web应用类的参数,返回值等的web应用.

部署

  1. git clone https://github.com/keven1z/DHook.git ,根目录运行mvn clean package或者直接下载release包
  2. 本地运行
java -jar DHookServer-[release-version].jar
# http 端口:8001
# websocket 端口:7070

快速开始

创建应用

点击新建,创建一个应用,用于测试待hook的web应用 image-20220223105550651

下载agent

下载agent,用于对应用进行hook download_agent.png

部署agent

在待测试应用运行时加入-javaagent:{path}/dHook.jar运行参数。

添加hook点

点击添加hook点,输入待hook的classname和method,即可进行hook

查看hook点信息

点击hook点详情,即可查看hook点入参,返回值以及调用栈信息。

案例

以破解cs4.4为例,我们已知破解cs 需要修改common/Authorization中的以下参数:

  • validto 有效期
  • valid 有效性 以及调用common/SleevedResource.Setup传入密钥即可。 我们在方法执行前加入对应的参数和对应破解的值,并执行common/SleevedResource.Setup静态方法,最后加入return,使<init>方法执行返回。

image-20220223105550651

文档

后续计划

  • 插件离线化
  • 自定义配置文件
  • 检测插件
  • 动态辅助漏洞测试

更新

2.5 beta1 版本 2022/12/18

  • 增加心跳包断线重连
  • 增加类图 类详细信息查看以及源码下载功能
  • 增加hook点调用参数,调用栈等信息展示

2.4版本 2022/8/22

  • 增加自定义ip配置功能
  • 增加hook library功能
  • 更新插件编写规则

2.3.1版本 2022/7/5

  • 更新ui(凑合能看)
  • 补充修改应用名和hook点信息的功能

2.3版本 2022/6/26

  • 增加插件功能

2.2版本

  • 增加导出仅包含hook点信息的agent

2.1版本

  • 可以增加方法执行前后静态方法执行参数
  • 增加方法执行前后,直接return

2.0版本

  • 增加交互式的hook操作
  • 增加方法执行前后的修改

1.1版本

  • 增加通过*打印该类的所有方法
  • 支持打印返回值
  • 支持反编译代码
  • 支持修改参数

1.0版本

  • 支持hook接口,当填写的类为接口时,默认会hook所有实现的子类
  • 支持更改hook类的返回类型为string,int,boolean的返回值
  • 支持打印hook方法的所有参数值

About

DHook是一个支持动态debug,动态修改java程序的web应用.


Languages

Language:Java 58.9%Language:HTML 27.2%Language:JavaScript 13.9%