Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
jvmxray — Externalize Java application access to protected resources as log messages. | Kitploit
Tools/GitHubGitHub/spoofzu/jvmxray
Dynamic Analysis (Sandboxing)Vulnerability AnalysisCode AnalysisIncident Response
GitHubspoofzu/jvmxray

jvmxray

Externalize Java application access to protected resources as log messages.

View Repository
4651 month agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

JVMXRay: Java Application Security Monitoring

Black Hat Arsenal USA 2020 Java License Development Status

JVMXRay Logo

Duke history

Documentation | Changes from Upstream | Project Blog

JVMXRay monitors Java applications in real-time via bytecode injection, detecting vulnerabilities and suspicious activity without code changes. 19 modular sensors track file access, network connections, SQL queries, cryptographic operations, authentication, process execution, and more — generating structured, machine-readable security events with automatic cross-sensor correlation.


Quick Start

root@kitploit:~
git clone https://github.com/spoofzu/jvmxray.git
cd jvmxray
mvn clean install

During Maven's test phase a small program called Turtle runs under the freshly built JVMXRay agent. Turtle performs file I/O, cryptography, process execution, serialization, reflection, and other activities that trigger the sensors — so a successful build already gives you real security event logs to explore in ./target/test-jvmxray/. A SQLite database is also created at ./target/test-jvmxray/common/data/jvmxray-test.db for quick experimentation. See the docs for further details.

Deploy as a Java agent in your own applications:

root@kitploit:~
java -javaagent:target/jvmxray-0.0.1-agent.jar -jar yourapp.jar

Benefits

  • Zero code changes — Attaches to any Java application at launch, like a debugger. No source modifications, no recompilation, no library dependencies to add.
  • AI-ready structured events — Sensors generate machine-readable security events, not unstructured log lines. Use your AI tools to analyze application behavior like you application logs.
  • Fits your logging infrastructure — Events are Logback log messages. Route them to Splunk, ELK, DataDog, Kafka, or any destination the Logback ecosystem supports.
  • Attack chain reconstruction — Correlated events with trace_id and scope_chain let SOC teams trace an incident from HTTP request through SQL injection to data exfiltration in a single query.
  • Tunable overhead — Standard Logback log-level properties control which sensors fire and at what verbosity. Turn sensors on or off per environment without rebuilding.

Keep in mind, JVMXRay is a source of truth for what a Java application is doing, not an analysis engine. Analysis is provided by your centralized logging solution and/or your AI tooling projects.


Sensors

Event Correlation

Every sensor event includes correlation fields for reconstructing attack chains:

A scope chain like HTTP>Serialization>Reflection>Process is a deserialization attack signature at a glance. The TRACE_ID column is indexed in the database for fast correlation queries.

Architecture

root@kitploit:~
java -javaagent:jvmxray-agent.jar -jar app.jar
         |
    AgentBootstrap (isolated classloader)
         |
    ByteBuddy installs sensor interceptors
         |
    Sensors fire on method entry/exit
         |
    LogProxy merges MCC correlation context
         |
    +----------+----------+----------+
    | SQLite   | File     | Socket   |
    | Appender | Appender | Appender |
    +----------+----------+----------+
  • Java 17, ByteBuddy 1.14.17 for bytecode injection
  • Logback + SLF4J for enterprise logging (Splunk, ELK, DataDog compatible)
  • Multi-database: SQLite (dev), MySQL, Cassandra (production)
  • MCC (Mapped Correlation Context): thread-local scope tracking with TTL cleanup

Documentation

  • Agent Reference — Sensor configuration, event fields, database schema
  • Common Components — Database setup and utilities
  • Changelog — Detailed release changes
  • News Archive — Project history

Acknowledgements

This project was developed using ideas, architecture, and code in some cases from the following,

  • Claude Code CLI by Anthropic, Anthropic
  • Byte-code architecture based in part from ideas by Terse Systems, Terse Systems
  • Logback logging framework by QOS.ch Sarl Sweitzerland, QOS.ch
  • Apache Software Foundation, Apache Software Foundation

Contributor(s)

Milton Smith — Project creator, leader

Disclosure: JVMXRay is not approved, endorsed by, or affiliated with Oracle Corporation.

Download Tool
SensorWhat It Monitors
File I/OFile reads, writes, deletes, permissions, symlinks with path resolution and aggregate I/O stats
NetworkSocket connect/accept/bind/close with TLS detection, private IP classification, timing
SQLQuery capture with parameterization detection, operation type, duration, connection metadata
HTTPRequest/response with security header analysis, user/session correlation
ProcessProcessBuilder.start() and Runtime.exec() with command args, duration, exit status
CryptoCipher/KeyStore/MessageDigest/SSL with weak algorithm detection and key strength validation
AuthenticationSession operations, JAAS login, Spring Security authenticate, principal queries with success/failure tracking
API CallHttpClient.send() with URI, method, host, TLS, response status, timing
Script EngineScriptEngine.eval() with engine identification, content hashing, suspicious pattern detection, risk level
SerializationJava native, Jackson, Gson, XStream deserialization with gadget chain detection
ReflectionClass.forName, Method.invoke, Field access, setAccessible with threat classification
ConfigurationSystem properties, env vars, Properties files, Preferences with security annotations
LibraryStatic and dynamic JAR loading with SHA-256, Maven coordinates, package inventory
MonitorJVM health: memory, threads, GC, CPU, open files, deadlock detection (60s interval)
Uncaught ExceptionCrash diagnostics: full stack, memory state, thread dump, cause chain, incident ID
App InitOne-time startup capture: JVM version, OS, container detection, env vars (redacted)
Data TransferInputStream.read() byte counting (currently disabled — too broad)
ThreadThread lifecycle monitoring (currently disabled — recursive logging fix needed)
MemoryMemory allocation tracking (currently disabled — recursive logging fix needed)
FieldExamplePurpose
trace_ida1b2c3d4e5f6Links all events in the same execution context
scope_chainHTTP>SQL>FileIONested sensor path — the "security stacktrace"
parent_scopeSQLImmediate parent for tree reconstruction
scope_depth3Nesting level — depth 6+ warrants investigation