Skip to content

SpringKill-team/CodeAuditAssistant

Repository files navigation

CodeAuditAssistant

Language: English | 中文

Overview

CodeAuditAssistant is an IntelliJ IDEA plugin for JVM code auditing. It provides sink discovery, call-graph analysis, and JAR decompilation to help reviewers locate risky code paths faster.

Requirements

  • IntelliJ IDEA >= 2022.3
  • JDK 17+

Core Features

1) SinkFinder

Built-in sink rules for common Java Web vulnerabilities and risky component calls. Results are shown in IDEA Problem View and support navigation to source on double-click.

2) Code Analysis (Call Graph)

Generate call graphs for Entire project or Selected Module. Search supports:

  • ROOT -> SINK path search
  • SINK-only reverse path lookup
  • Search as sink from a right-clicked method

Method filter examples:

  • ParamType: java.lang.String,*
  • Annotations: @Override,@xxx

3) Decompiler (Experimental)

Supports JAR decompilation from the plugin UI. The current implementation is still under optimization.

Workflow Demo (Screenshots)

1) SinkFinder Flow

Step 1: Collect sink findings in IDEA Problem View.
Sink collection

Step 2: Double-click an item to jump to source code.
Sink jump to source

2) Decompiler Flow

Step 1: Select a target JAR and click Run in the decompiler panel.
Decompiler panel

3) Call-Graph Flow

Step 1: Open the Code Analysis panel and click Generate CallGraph.
Call graph main panel

Step 2: Choose the build scope (Entire or Selected Module).
Scope selection

Step 3: You can also build from the editor context menu on a method.
Context menu build

Step 4: Enable Info and Path for richer metadata and path results.
Info and Path options

Step 5: Open the method finder panel and filter by signature/annotations.
Method finder panel

Step 6: Example filtered method list.
Method finder example

Step 7: Search a ROOT -> SINK path.
Root to sink search

Step 8: Search by SINK only when the entry point is unknown.
Sink-only search

Step 9: Use Search as sink from right-click to auto-fill and search.
Search as sink

Step 10: Read runtime status (CallGraph, node count, memory, messages).
Status panel

4) Search Result Icon Legend

Path node icon:
Path icon

Method declaration icon:
Declaration icon

Method invocation icon:
Call icon

Object creation / method-search result icon:
New object icon

Build & Run

  • Build plugin artifact: ./gradlew buildPlugin
  • Run sandbox IDE for local debugging: ./gradlew runIde
  • Full build: ./gradlew build

Known Limitations

  • Current path search is DFS-based and may not show all parallel paths in dense graphs.
  • Call graph is not yet persisted across sessions.
  • Duplicate root/source nodes may create repeated paths in some results.

Roadmap

  • Improve path search completeness and graph model.
  • Add call graph persistence and change monitoring.
  • Deduplicate root/source nodes and repeated paths.
  • Improve search-result highlighting and library JAR analysis workflow.

About

🔍 CodeAuditAssistant - JetBrains Code Audit Plugin (Beta) ⚡ Deep Call-Chain Tracking | 🚀 Method/Class Search | 🔥 Prebuilt Vuln Sinks Native Integration | Decompiler/Path Finder | Memory Optimized 🔍 CodeAuditAssistant - IDEA代码审计插件 ⚡ 精准追踪复杂调用链 | 🚀 毫秒级方法搜索 | 🔥 内置高危漏洞检测 原生集成 | 反编译/路径分析 | 内存优化 | 安全审计利器

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages