Skip to content
/ DHook Public

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

Notifications You must be signed in to change notification settings

keven1z/DHook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 端口:8081
# 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方法的所有参数值