Coder Social home page Coder Social logo

gosiu / jar-analyzer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jar-analyzer/jar-analyzer

0.0 0.0 0.0 74.11 MB

Jar Analyzer - 一个JAR包分析工具,批量分析JAR包搜索,方法调用关系搜索,字符串搜索,Spring组件分析,CFG分析,JVM Stack Frame分析,远程分析Tomcat,进阶表达式搜索,自定义SQL查询,字节码查看,字节码指令级的动态调试分析,反编译JAR包一键导出,一键提取序列化数据恶意代码

License: MIT License

Python 0.22% C 1.79% Java 97.51% Go 0.25% HTML 0.11% CMake 0.01% Batchfile 0.11%

jar-analyzer's Introduction

Jar-Analyzer V2

CHANGE LOG

gitleaks badge

Jar Analyzer 是一个分析 Jar 文件的 GUI 工具:

  • 支持大 Jar 以及批量 Jars 分析
  • 方便地搜索方法之间的调用关系
  • 分析 LDC 指令定位 Jar 中的字符串
  • 一键分析 Spring Controller/Mapping
  • 对于方法字节码和指令的高级分析
  • 一键反编译,优化对内部类的处理
  • 一键生成方法的 CFG 分析结果
  • 一键生成方法的 Stack Frame 分析结果
  • 远程分析 Tomcat 中的 Servlet 等组件
  • 自定义 SQL 语句进行高级分析
  • 集成 ClazzSearcher 项目作为命令行分析版本
  • 允许从字节码层面直接修改方法名(测试功能)
  • 自从 2.14 版本之后支持了全屏显示的功能
  • 自从 2.15 版本后支持代码区域字符串搜索功能
  • 自从 2.15 版本后支持通过 HTTP 分析远程文件
  • 自从 2.16 版本后支持一键导出反编译 JAVA 代码
  • 自从 2.17 版本后支持字节码指令级别的远程调试(参考 示例图
  • 自从 2.17 版本后支持从序列化数据一键提取恶意 JAVA 代码(参考 示例图
  • 自从 2.18 版本后支持 HTTP API 查询接口(参考 示例图
  • 自从 2.19 版本后支持启动时配置 10UI 主题(LookAndFeel
  • 自从 2.19 版本后支持实时的 CPU 占用和内存的折线图展示(参考 示例图
  • 自从 2.20 版本后支持选中字符串全局高亮显示(参考 示例图
  • 自从 2.21 版本后支持分析配置类和包名的白名单
  • 自从 2.21 版本后支持左侧文件数使用 CTRL+F 打开类名搜索(参考 示例图
  • 自从 2.21 版本后新增内置开启 ZGCJRE 21 环境(仅包含核心功能)
  • 自从 2.23 版本后新增 SCA 分析(可支持 ASSEMBLY JARLIB JAR 多种)

什么是 SCA 分析:输入 JAR 文件后根据特定 CLASSHASH 和规则匹配到 CVE 漏洞

更多的功能正在开发中

有问题和建议欢迎提 issue

前往下载

Jar Analyzer 的用途

  • 场景01:从大量 JAR 中分析某个方法在哪个 JAR 里定义(精确到具体类具体方法)
  • 场景02:从大量 JAR 中分析哪里调用了 Runtime.exec 方法(精确到具体类具体方法)
  • 场景03:从大量 JAR 中分析字符串 ${jndi 出现在哪些方法(精确到具体类具体方法)
  • 场景04:从大量 JAR 中分析有哪些 Spring Controller/Mapping 信息(精确到具体类具体方法)
  • 场景05:从大量 JAR 中分析是否存在 Apache Log4j2 漏洞(匹配所有 CVE 漏洞)
  • 场景06:从大量 JAR 中分析是否有使用 FASTJSON 47/68/80 等存在漏洞的版本
  • 场景07:你需要深入地分析某个方法中 JVM 指令调用的传参(带有图形界面)
  • 场景08:你需要深入地分析某个方法中 JVM 指令和栈帧的状态(带有图形界面)
  • 场景09:你需要深入地分析某个方法的 Control Flow Graph (带有图形界面)
  • 场景10:你有一个 Tomcat 需要远程分析其中的 Servlet/Filter/Listener 信息
  • 场景11:查实现接口 A 继承接口 B 类注解 C 且方法名 test 方法内调用 Da 方法的方法(表达式搜索)
  • 测试功能:字节码指令级别的调试 | 远程分析 | 一键导出反编译代码

相关

时间

  • Jar Analyzer V1 最初版诞生于 2022.11.27
  • Jar Analyzer V22023.10.23 第一次提交
  • Jar Analyzer v2 正式版在 2023.12.07 发布

用户使用文章

用户使用视频

漏洞公告

截图

方法调用关系

方法调用搜索 (支持 equals/like 选项,支持黑名单过滤)

分析 Spring Framework

Jar Analyzer 2.15 版本以后支持代码区域的搜索

Jar Analyzer 2.15 版本以后支持远程 Jar 文件加载

Jar Analyzer 2.17 版本以后支持从序列化数据中一键提取恶意代码

Jar Analyzer 2.18 版本以后支持 HTTP API

Jar Analyzer 2.19 版本以后支持实时的 CPU 和内存占用分析

Jar Analyzer 2.20 版本后支持选中字符串全局高亮显示

进阶功能

以上是基础功能,进阶和测试性的功能请参考:进阶测试性功能

性能对比

分析同一个 20 MB 大小的 JAR 文件对比

JRE 8 性能 48 秒

JRE 21 性能 46 秒

新版本同时支持了内置 JAVA 8JAVA 21 的版本

快捷键

  • CTRL+X 方法交叉引用 快速跳转方法 callercallee 页面
  • CTRL+F 代码区域搜索 打开搜索面板 支持 nextprev 选项
  • CTRL+F 文件树区搜索 显示搜索面板 搜索文件树中的类名以及内部类

UI 主题

支持以下:

  • default (默认使用 类似 IDEA 主题)
  • metal
  • win (仅 Windows 支持)
  • win-classic (仅 Windows 支持)
  • motif
  • mac (仅 MacOS 支持)
  • gtk (仅某些 Linux 支持)
  • cross
  • aqua (仅 MacOS 支持)
  • nimbus

在启动时指定:java -jar jar-analyzer.jar gui -t [theme]

例如:java -jar jar-analyzer.jar gui -t win-classic

或者修改启动脚本的代码

set "theme_name=default"

命令行

文档

表达式

文档

注意

文档

子项目

文档

其他

文档

参考

文档

API

文档

BUILD

编译和构建过程如下:

  1. 构建核心项目 mvn -B clean package -DskipTests --file pom.xml
  2. 构建agent子项目 mvn -B clean package -DskipTests --file agent\pom.xml
  3. 构建命令行子项目 mvn -B clean package -DskipTests --file class-searcher\pom.xml
  4. 构建rasp子项目 mvn -B clean package -DskipTests --file jar-analyzer-rasp\pom.xml
  5. 使用cmake构建native目录的C代码生成dll文件放入resources
  6. 使用winresgcc构建启动exe文件和图标信息
  7. 参考build.pybuild.yml文件进行最终的文件合并和版本构建

Thanks

IntelliJ IDEA logo.

This project is developed using JetBrains IDEA. Thanks to JetBrains for providing me with a free license, which is a strong support for me.

jar-analyzer's People

Contributors

4ra1n avatar gosiu avatar whwlsfb avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.