[!WARNING]
Final verdict available at the end of this report.
The static analysis examined 3 925 classes (all successfully parsed) and identified 419 classes with at least one “hard‑to‑review” indicator, giving a suspicious‑class ratio of about 10 %. The scanner also flagged 29 archive entries that contain hard‑coded URLs, most of which point to the launcher’s own update servers (e.g., spiralknights.com) or to well‑known Maven repositories.
A number of indicators such as file‑system access, network connections, reflection, and process‑execution APIs appear throughout the code. Many of these come from third‑party libraries (e.g., JNA, zip4j, Apache Commons) that are commonly bundled in launchers. The remaining signals are concentrated in the launcher’s own packages (com.lucasallegri.*), which handle tasks like downloading a bundled JVM, self‑updating, Discord authentication, and remote mod synchronization.
The evidence below breaks down where the suspicious behavior lives and whether it is typical for a game launcher or potentially dangerous.
com.lucasallegri.*) uses file access, network I/O, reflection, and process execution; the libraries also use similar APIs but for generic purposes (e.g., zip handling, JNA). No high‑signal malicious behavior was detected. The scanner did not find code that explicitly reads sensitive files (e.g., password stores), encrypts data for exfiltration, or installs persistence mechanisms. The most concerning patterns are legitimate launcher activities such as downloading a JVM, updating the launcher JAR, and fetching remote mods.
The evidence does not match a Remote‑Access Trojan. While the launcher can launch external processes (e.g., to start the game or run update scripts), these calls are limited to known files and URLs under the developer’s control.
| Class | Severity | Behavior | Evidence |
|---|---|---|---|
com.lucasallegri.bootstrap.ProjectXBootstrap |
Medium | Loads external JARs, uses reflection & classloader, accesses the file system | reflection_api, classloader_api, java_io_file_api, outbound URL to api.adoptium.net |
com.lucasallegri.launcher.JVMPatcher |
Medium | Downloads a packaged JVM, writes files, runs shell commands | shell_string_literal, process_builder_api, URLs to Adoptium API |
com.lucasallegri.launcher.LauncherSelfUpdater |
Medium | Checks for updates, downloads new launcher, launches update process | process_builder_api, shell_string_literal, many outbound URLs to spiralknights.dudeawsome67.workers.dev |
com.lucasallegri.launcher.auth.DiscordAuthManager |
Low‑Medium | Performs Discord OAuth flow, contacts own backend, uses Base64 & crypto | http_url_literal, shell_string_literal, base64_api, crypto_api |
com.lucasallegri.launcher.mods.RemoteModSync |
Low‑Medium | Retrieves mod manifests and files from the same backend | http_url_literal, file_access_api |
com.lucasallegri.util.ProcessUtil |
Low | Executes arbitrary commands supplied by the launcher itself | process_builder_api, runtime_exec_api |
com.lucasallegri.util.DesktopUtil |
Low | Opens URLs or directories in the user’s desktop environment | process_builder_api, java_net_url_api |
| Class | Severity | Behavior | Evidence |
|---|---|---|---|
jiconfont.icons.font_awesome.FontAwesome |
Low | Large UI icon class, decompiler timed‑out due to size | decompile_fallback, preflight_complexity_guard |
mdlaf.utils.icons.MaterialIconFont |
Low | Same as above for Material icons | decompile_fallback, preflight_complexity_guard |
org.jdesktop.swingx.geom.Morphing2D$Geometry |
Low | Minor bytecode issue (stack underflow) | decompile_fallback, stack_underflow |
com.sun.jna.* (Native, Platform, etc.) |
Low | Provides native library loading, reflection, and file access – standard for JNA | reflection_api, native_load_api, file_access_api |
net.lingala.zip4j.* |
Low | Handles ZIP archive creation/extraction – uses file and archive APIs | archive_packaging_api, file_access_api |
com.samskivert.* (JDBC, Velocity, etc.) |
Low | Utility and servlet libraries; many reflection and classloader calls | reflection_api, classloader_api |
spiralknights.dudeawsome67.workers.dev (multiple API endpoints for launcher, mods, authentication). gamemedia2.spiralknights.com, billing.spiralknights.com, www.spiralknights.com. api.adoptium.net (JVM binaries), api.steampowered.com (Steam player count), GitHub, Maven Central, JCenter, Bintray, Sonatype, etc. jiconfont.github.io, material.io (icon fonts), api.steampowered.com (Steam API).All outbound connections are hard‑coded as HTTP/HTTPS URLs; no dynamic host generation was observed.
Not applicable. The JAR is a stand‑alone game launcher for Spiral Knights, not a Minecraft plugin or mod.
zip4j, JNA, and Apache Commons for archive handling and native calls is common. ProcessBuilder, Runtime.exec) to patch the JVM, launch updates, or start Steam. These commands are limited to known internal scripts/paths, but the capability exists. No concrete evidence shows these capabilities being abused to steal data or install persistence.
essoKnightLauncher__1_.jar from the official Spiral Knights website or a trusted distribution channel. spiralknights.dudeawsome67.workers.dev is owned by the legitimate developer (e.g., via WHOIS or official documentation). Static analysis can spot known patterns and suspicious API usage, but it cannot guarantee that runtime behavior will be benign. Dynamic actions (e.g., what exact files are downloaded, how the server responds) are only observable at execution time.
Yes. A JAR is just a ZIP archive of Java bytecode, and it can include malicious code that runs when the JAR is executed.
The scanner flags indicators such as remote code loading, file system enumeration, and network exfiltration. If a Minecraft RAT exhibits those patterns, the scanner will highlight them, but a thorough manual review is still required.
Not necessarily. Many legitimate applications obfuscate code to protect intellectual property. However, heavy obfuscation can hide malicious intent and should be treated with extra caution.
Verdict: Mostly trust
Risk level: Medium
Confidence: High (based on full static coverage and lack of clear malicious payloads)
Should I trust this JAR, and why?
The launcher’s code is largely transparent: it downloads a JVM, updates itself, and fetches mods from the developer’s own servers. All network endpoints are hard‑coded and point to domains that appear to belong to the game’s publisher. While the JAR uses powerful APIs (process execution, reflection, native loading), these are typical for a feature‑rich game launcher and no evidence shows them being used to steal data or install hidden malware. If you obtained the file from the official source and are comfortable with the listed external domains, the JAR can be used safely, though keeping an eye on network traffic or running it in a sandbox is a prudent extra step.