如何对 DongTai-agent-java 进行 Debug

2023-02-07 17:59:48

一、编译打包

  1. Fork [DongTai-agent-java][0] 项目到自己的github仓库

img

2.将项目 clone 到本地

img

3.更改配置文件“iast-agent/src/main/resources/iast.properties”。将 iast.server.url 改为 https://iast.huoxian.cn,iast.server.token改为洞态IAST用户token。

img

   iast.server.url=https://iast.huoxian.cn
   iast.server.token=
  1. 进入项目根目录,使用 maven 进行打包

    & mvn clean package -Dmaven.test.skip=true
    

注:jdk 版本为1.8。

  1. 打包结束后项目根目录下会生成文件夹 release,其目录结构:

    release
    ├── iast-agent.jar
    └── lib
        ├── dongtai-servlet.jar
        ├── iast-core.jar
        └── iast-inject.jar
    
  2. 将 dongtai-servlet.jar、iast-core.jar、iast-inject.jar 三个 jar 包复制到系统临时目录。获取系统临时目录可运行以下 Java 代码:

    System.getProperty("java.io.tmpdir");
    

二、配置测试项目的运行参数

  1. 使用 IDEA 打开测试项目,并且配置项目的运行参数

    img

    VM参数详细:(只需更改 -javaagent 和 -Dproject.name)

    -javaagent:/path/to/agent.jar         // agent目录,官网下载
    -Diast.server.mode=local               // 引擎启动模式(local/remote)
    -Diast.engine.delay.time=1	     // 引擎延时启动时间(秒)
    -Dproject.name=projectName      // 项目名
    -Dlog.level=info				     // 日志打印等级
    -Ddebug=true				     // debug
    -Diast.dump.class.enable=false    // 是否查看新生成的字节码文件
    

2.将 dongtai-servlet.jar、iast-core.jar、iast-inject.jar 三个 jar 包导入项目依赖

img

img

三、Debug

  1. 在刚刚依赖的三个 jar 包中打断点,以 com.secnium.iast.core.report.ReportSender.send() 为例,此方法用来向云端发送请求。

    img

2.Debug 模式启动测试项目,可以看到断点已经生效了

img

四、自定义 agent

  1. 根据您的需求提交 issue
  2. 更改 [DongTai-agent-java][0] 的代码
  3. 重复以上步骤, Debug 可用于功能测试
  4. 提交代码
  • 作者:火线安全
  • 原文链接:https://blog.csdn.net/weixin_40418457/article/details/119041493
    更新时间:2023-02-07 17:59:48