Language: English | 中文
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.
- IntelliJ IDEA
>= 2022.3 - JDK
17+
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.
Generate call graphs for Entire project or Selected Module. Search supports:
ROOT -> SINKpath searchSINK-only reverse path lookupSearch as sinkfrom a right-clicked method
Method filter examples:
ParamType:java.lang.String,*Annotations:@Override,@xxx
Supports JAR decompilation from the plugin UI. The current implementation is still under optimization.
Step 1: Collect sink findings in IDEA Problem View.

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

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

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

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

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

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

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

Step 6: Example filtered method list.

Step 7: Search a ROOT -> SINK path.

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

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

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

Object creation / method-search result icon:

- Build plugin artifact:
./gradlew buildPlugin - Run sandbox IDE for local debugging:
./gradlew runIde - Full build:
./gradlew build
- 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.
- 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.


