Skip to content

[请求适配] 希望 JavaxJakarta 作为一个独立选项,而不是依靠 ShellType 判断 #131

@LTP414

Description

@LTP414

适配范围

当我遇到以下需求:

  1. 需要实现一个自定义内存马
  2. 使用类型为 AgentFilterChain
  3. 需要适配高版本 Java EE

如果按照文档要求,编译自定义内存马,需要项目一起编译的话,由于当前项目使用旧版本 Java EE 依赖,直接导入新版本,貌似会出现依赖冲突问题,个人尝试解决未成功

不按照文档要求,自建项目,使用 mvc 编译内存马,并将class文件放在web端使用,会提示报错 Cannot write invoke dynamic instruction for class file version Java 6 (50)

如果使用 SDK 集成:

  1. 直接使用已经编译好的 Jakarta 命名空间的内存马,bytebuddy 依赖会报错,大致为 java.lang.IllegalStateException: Cannot resolve type description jakarta.websocket.MessageHandler$Whole(PS:更新,已解决该问题,但出现了同样的报错 Cannot write invoke dynamic instruction for class file version Java 6 (50)),即使我手动导入高版本 Java EE 依赖也无法解决。
  2. 聚焦在已经实现的 ServletRenameVisitorWrapper 功能,此时由于 shellType 为 AgentFilterChain,无法直接进行转换,只能通过debug的形式临时修改 shellConfig.isJakarta 返回值来实现。

如果可以的话,希望将 JavaxJakarta 作为一个单独的选项进行实现,可以适应上述情况。
或者简单一点,为所有 agent 类型,如 AgentFilterChain,添加 JakartaAgentFilterChain 类型(

相关资料

暂无

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions