Demo - Cheating - Hoang + Duc
Demo - Cheating - Hoang + Duc
Grim and
Vulcan Anti-Cheats
DEMO
Testing Environment:
Minecraft Server Version: Paper 1.20.1
Anti-Cheat Plugins: Grim AntiCheat, Vulcan AntiCheat
Cheat Client: LiquidBounce
Objective:
The objective of this initial test was to evaluate how effectively Grim and Vulcan
anti-cheats detect hacks implemented through the LiquidBounce client on a
Minecraft server. This report focuses exclusively on testing with hacks enabled.
Test Setup:
1. Anti-Cheat Configurations:
o Grim AntiCheat: Alerts and verbose logging enabled to capture
detailed responses to abnormal patterns.
o Vulcan AntiCheat: Alerts and verbose logging enabled to monitor
any violations.
2. Cheat Client Configuration:
o Enabled the LiquidBounce client with custom hacks enabled.
3. Testing Process:
o Joined the Minecraft server using LiquidBounce and activated the
hacks.
o Monitored both Grim and Vulcan anti-cheat systems to observe their
responses to the hacks.
I. SPEED
Vulcan AntiCheat:
o Detection Method: Vulcan focuses on detecting abnormal movement
over time. However, it does not flag anomalies in real-time but rather
logs them for further review.
o Alerts: Vulcan detected the Y Port Speed Hack as MotionB, which
refers to suspicious player motion behavior.
Example Log Entries:
"Vulcan zenerity verbosed Motion (B) [50.00%]"
"Vulcan zenerity verbosed Motion (B) [68.75%]"
o Effectiveness: Vulcan did not immediately stop the hack. It detected
the anomaly (MotionB) but did not take action to block it at the time.
2. Legit Hop
Hack Description: A subtle speed hack that mimics legitimate movement by
slightly enhancing jump speed. The intention is to make the movement seem
natural and avoid detection.
Grim AntiCheat:
o Detection Method: Grim’s simulation checks are designed to detect
significant deviations from natural movement. However, the subtlety
of Legit Hop was enough to bypass these checks.
o Alerts: No alerts were generated for Legit Hop.
o Effectiveness: Both Grim and Vulcan failed to detect Legit Hop
because its changes were too subtle.
Vulcan AntiCheat:
o Detection Method: Vulcan relies on tracking movement over time,
but it was unable to detect the small changes caused by Legit Hop.
o Alerts: No alerts were generated for Legit Hop.
o Effectiveness: Vulcan also failed to detect the subtle hack.
o Effectiveness: Vulcan slowed down the player but did not block the
hack completely. It detected the anomaly but failed to take full action
Summary:
Grim AntiCheat consistently outperformed Vulcan AntiCheat, detecting
and stopping Vulcan 288 and Vulcan Ground 286 effectively, as well as
responding to Y Port Speed Hack. Grim flagged almost all of the hacks,
except for Legit Hop and Grim Collide.
Vulcan AntiCheat displayed a slower response to many hacks. It detected
but did not act on Vulcan 286 and Y Port hacks, only slowing movement. It
did not detect Legit Hop or Grim Collide.
Effectiveness:
o Moderate; Grim AntiCheat can detect most stabilized hacks but may
struggle with subtle automation due to incomplete coverage of
simulation-based actions.
Vulcan AntiCheat:
Detection Method:
o Autoclicker (C): Detects suspiciously consistent and fast clicking
patterns.
o Aim (E): Identifies aim-related irregularities, such as robotic aim-lock
behavior.
o KillAura (K): Specifically flags repetitive attack patterns linked to
KillAura hacks.
o Criticals (B): Detects illegitimate critical hits, often used in
conjunction with spamming attacks.
Alerts:
o Issues warnings for click-speed anomalies.
o Flags aim inconsistencies indicative of stabilization cheats.
Effectiveness:
o High; Vulcan excels in detecting subtle combat automation by
combining multiple aim and click-related checks.
Conclusion: Vulcan is better than Grim at detecting Stabilized KillAura due to its
focus on Autoclicker and Aim modules.
Spamming KillAura
Grim AntiCheat:
Detection Method:
o Simulation: Monitors attack patterns against expected behavior
thresholds.
o AimDuplicateLook: Flags repetitive aiming angles resulting from
bot-like aiming behaviors.
o Timer: Identifies timing irregularities, such as extremely rapid or
inconsistent actions.
Alerts:
o Logs excessively rapid attack patterns or unnatural aiming behavior.
Effectiveness:
o Moderate; Grim AntiCheat detects obvious spamming but struggles
with advanced packet optimization cheats.
Vulcan AntiCheat:
Detection Method:
o Velocity (A): Flags abnormal movement behavior, such as
unreasonably fast attack-induced velocity changes.
o Criticals (B): Detects illegitimate critical hits, often used in
conjunction with spamming attacks.
o Autoclicker (J): Identifies rapid clicking actions associated with
spamming.
o Aim (S): Monitors for erratic or bot-like aim adjustments.
Alerts:
o Flags excessive attack rates, illegitimate critical hits, or movement
inconsistencies.
Effectiveness:
o High; Vulcan’s multi-layered detection for spamming behavior makes
it far more effective than Grim.
Conclusion: Vulcan effectively detects Spamming KillAura by focusing on rapid
attack, movement, and critical hit anomalies.
Effectiveness:
o High; Vulcan’s specialized modules for KillAura and critical hits
make it highly effective against double-click cheats.
Conclusion: Vulcan far outperforms Grim in detecting Double-Click KillAura, as
it targets specific attack and movement irregularities that Grim overlooks.
Overall Assessment
Grim AntiCheat:
o Strength: Simulation-based checks like AimDuplicateLook and Timer
help detect timing and aiming anomalies.
o Weakness: Lacks coverage for critical hits, velocity-based anomalies,
and precise aim tracking.
Vulcan AntiCheat:
o Strength: Covers a broader range of behaviors, including clicking,
aiming, movement, and combat-related irregularities.
o Weakness: May require fine-tuning thresholds to prevent false
positives.
Vulcan’s broader detection capabilities and precision make it the better choice for
identifying all three types of KillAura.
SOURCE CODE
1. Prepare a Comprehensive Demonstration Plan
Objective:
To demonstrate:
1. How cheats operate: Behavior manipulation (e.g., KillAura, Speed).
2. How anti-cheats detect cheats: Alert mechanisms and logic in Grim and
Vulcan.
3. How the source code supports the detection: Proof of understanding
through live coding, testing, and explaining detection mechanisms.
Preparation:
Environment Setup:
o A Minecraft server with Grim and Vulcan AntiCheat installed.
o Two clients:
One with legitimate behavior.
One running cheating software (e.g., KillAura, Speed hacks).
o A proxy (e.g., HAProxy) with Wireshark monitoring traffic.
Tools:
o A debugger (e.g., IntelliJ IDEA, Eclipse) to step through the anti-cheat
source code in real-time.
o Wireshark to capture packet anomalies caused by cheats.
2. Demonstration Steps
A. Explain the Cheat
1. Overview:
o Describe how cheats like KillAura and Speed manipulate gameplay
mechanics.
o Use visuals or diagrams to show packet flow, such as:
arduino
Copy code
Legitimate Client → Proxy → Server
Cheating Client → Proxy → Server (Automated, Abnormal Packets)
2. Live Demonstration:
o Enable KillAura on the cheating client.
o Show:
How the client automates attacks with impossible
speed/precision.
Packet patterns (e.g., repetitive UseEntity commands or
excessive CPS).
o Enable Speed hack:
Show unnatural movement patterns (e.g., constant
PlayerPosition packets with rapid coordinate changes).
3. Technical Insight:
o Explain what abnormal data looks like:
KillAura: High CPS, perfect aim.
Speed: Sudden and large velocity changes, abnormal Y-
coordinates.
o Highlight how cheats bypass server rules.
B. Explain the Anti-Cheat’s Role
1. Overview:
o Show Grim and Vulcan’s detection goals: flagging and mitigating
cheats using simulations, velocity checks, and packet analysis.
2. Live Alert Demonstration:
o Trigger the anti-cheat while running the cheats:
Grim: Demonstrate how Simulation flags mismatched
movement.
Vulcan: Show alerts like KillAura (K) or Velocity (A) for
abnormal patterns.
2. GroundProof
Purpose: Detects illegal vertical movements (e.g., Fly cheats, NoFall).
Code Breakdown:
3. BadPacketsN
Purpose: Inspects malformed or contradictory packet data sent by the client.
Code Breakdown:
o How It Works:
Detects packets with impossible timestamps, positions, or
rotations.
Targets cheats that modify packets to spoof legitimate behavior.
4. Timer
Purpose: Detects irregular action intervals (e.g., Speed or Timer cheats).
Code Breakdown:
o How It Works:
Monitors the time gap between actions.
Flags rapid actions, such as attacking faster than the game's
CPS limit.
5. NoFall
Purpose: Detects cheats that suppress fall damage.
Code Breakdown:
o How It Works:
Verifies if the player took fall damage after a significant drop.
Flags players bypassing fall mechanics.
6. AimDuplicateLook
Purpose: Detects automated aiming behaviors (e.g., KillAura aim-lock).
Code Breakdown:
o How It Works:
Compares the player’s aim rotation between consecutive
packets.
Flags perfect aim, which is humanly impossible.
Vulcan AntiCheat
Vulcan uses modular detection to track nuanced patterns in player behavior
over time. Below are detailed explanations of its modules.
1. Motion (B)
Purpose: Detects Speed cheats or inconsistent motion behavior.
Code Breakdown:
How It Works:
Tracks player velocity and acceleration.
Flags unnatural spikes caused by Speed or Fly cheats.
2. Jump (A)
Purpose: Detects abnormal jump heights.
Code Breakdown:
o How It Works:
Compares player jump height to Minecraft's natural jump
limits.
Flags cheats that modify jump mechanics (e.g., Fly or
BunnyHop).
3. Criticals (B)
Purpose: Detects unauthorized critical hits.
Code Breakdown:
o How It Works:
Verifies if critical hits occur only during valid mid-air
conditions.
Flags invalid hits triggered by cheat tools.
4. Autoclicker (C, J)
Purpose: Detects automated or macro-based clicking.
Code Breakdown:
o How It Works:
Tracks the time between clicks.
Flags repetitive clicking patterns exceeding CPS limits.
5. Aim (L, S)
Purpose: Detects aim-assist or bot-like aiming patterns.
Code Breakdown:
o How It Works:
Tracks player aim adjustments during combat.
Flags perfect aim changes or erratic snaps to targets.
6. KillAura (K)
Purpose: Detects repeated attack patterns associated with combat cheats.
Code Breakdown:
o How It Works:
Combines attack patterns with aim data.
Flags attacks that exceed human reaction capabilities.
7. Velocity (A)
Purpose: Detects unnatural knockback reduction.
Code Breakdown:
o How It Works:
Verifies knockback is within expected limits.
Flags players modifying velocity to resist knockback.
8. Hitbox (A)
Purpose: Detects illegal hitbox interactions.
Code Breakdown:
o How It Works:
Checks if the player’s hits align with valid hitbox ranges.
Flags cheats extending attack range or bypassing hitboxes.
Summary
Grim and Vulcan use distinct approaches:
1. Grim: Focuses on packet validation and simulation-based checks.
2. Vulcan: Employs modular analysis for nuanced patterns over time.
4. Supporting Materials
Documentation:
Provide annotated copies of the Grim and Vulcan source code.
Highlight:
o Key methods responsible for detecting KillAura, Speed, and other
cheats.
o Logs showing how alerts are generated.
Traffic Analysis:
Include Wireshark logs showing differences between legitimate and cheating
clients.
TRI DUC
Theory
Information
Proxy used: HAProxy.
192.168.1.215: Proxy server (is used to capture both PC and Laptop
data).
192.168.1.87: Cheating client (PC).
192.168.1.88: Vanilla client (Laptop).
Vanilla client use Optifine 1.21.1.
Cheating client is in 1.21.1 version.
Minecraft’s server is in 1.21.1 version.
Tool used to analyze: Wireshark.
Network protocols
TCP
In Minecraft, TCP (Transmission Control Protocol) is used for most of
Minecraft's communication, particularly in server-client interactions for
gameplay (Player movement, chat messages, block updates, and
inventory management are sent as TCP packets).
Its features like reliability, sequencing, and error-checking are crucial for
consistent gameplay experiences.
TCP ensures that all packets are delivered and arrive in order, which is
crucial for synchronization between players and the server. For example,
when a player moves, the server must receive that data in the correct
sequence to update the game state accurately.
TCP can introduce latency due to its strict error-checking and
retransmission mechanisms, which can affect gameplay responsiveness
in high-latency or packet-loss environments.
UDP
UDP (User Datagram Protocol) is less commonly used in Minecraft but
is critical for certain features and mods that prioritize speed over
reliability. For example, the Minecraft client pings the server using UDP
to fetch server information (Message of the Day, player count).
Futhermore, Minecraft servers are frequent targets of UDP-based
Distributed Denial of Service (DDoS) attacks due to UDP’s
connectionless nature. Security measures like rate-limiting and packet
filtering are often employed to mitigate this risk.
However, UDP does not guarantee packet delivery or order, which
makes it less suitable for Minecraft’s core gameplay mechanics where
synchronization is critical.
Analysis of Killaura
Open Wireshark and load the file containing the captured data
“SuccessKillaura”.
Filter traffic to focus on packets involving the Minecraft server
(103.110.32.47) and the proxy (192.168.1.215):
ip.addr == 192.168.1.215 && tcp.port == 25565.
Running default (no Anti-Cheat)
Plugin Anti-Cheat of Minecraft (Vulcan and Grim) is offline during this
analysis.
Packet Rate
Go to Statistics > IO Graphs:
Set the Y-axis unit to Packets/Tick.
Use ip.src == 192.168.1.87 (cheating client) and ip.src == 192.168.1.88
(vanilla client) as separate filters.
Compare the packet rate over time.
The cheating client (red line) send packets at a similar rate to the vanilla
client (green line) since the cheating client tried to disguise as a normal
client, make it harder for server to detect the cheating client.
Packet Size
Go to Statistics > Packet Lengths.
Compare the distribution of packet sizes for both clients.
Use ip.src == 192.168.1.87 (cheating client) and ip.src == 192.168.1.88
(vanilla client) as separate filters.
1. Cheating Client:
Cheating clients will often have a spike at specific lengths.
Cheating actions often generate smaller, repetitive packets.
Cheating clients have consistent sizes in the payload (attacks).
The cheating client sends far more packets than the vanilla client in the
same timeframe, indicating higher activity. This behavior is consistent
with cheats like KillAura or speed cheats that send numerous packets to
simulate actions like rapid attacks or excessive movement.
The presence of these larger packets (160 - 319 and 320 - 639 bytes
ranges) suggests the client is performing operations that involve
additional or modified data, such as attack combinations or other cheats
generating non-standard packets.
Burst Rate: 0.2800 (compared to 0.1500 for the vanilla client). The
cheating client exhibits a significantly higher burst rate, indicating
periods of rapid packet generation. This can occur when the cheat client
sends multiple attack or movement commands in quick succession,
overwhelming the server.
2. Vanilla Client:
Packet sizes will vary based on legitimate actions like movement, chat,
or interaction.
The vanilla client sends packets at a steady and predictable rate, aligning
with standard player actions in Minecraft (normal movement, block
placement).
Most packets fall into the 40-79 bytes (67.37%) and 80-159 bytes
(32.63%) ranges, with no packets in higher ranges. This clean
distribution is typical of normal gameplay traffic without additional data
modifications or excessive packet sizes.
Packet Timing
Add a filter to separate traffic for the cheating and vanilla clients: ip.src
== 192.168.1.87 || ip.src == 192.168.1.88.
Right-click on a packet, select Follow > TCP Stream.
Navigate to View > Time Display Format > Seconds Since Previous
Displayed Packet. This adjusts the Time column in the Packet List
Pane to show the time elapsed since the last displayed packet, helping
you detect gaps or bursts in communication.
Note the time delta between packets in the stream.
1. Cheating Client:
Packet timing is vary based on player actions, resulting in an uneven
pattern, similar to Vanilla client since the cheating client need to disguise
to fool the server.
There are repeated TCP Retransmissions and duplicate
acknowledgments (duplicate ACKs).
Retransmissions occur when the original packet is either lost or not
acknowledged, while duplicate ACKs occur when the server
acknowledges the same sequence number multiple times, indicating that
packets are arriving out of order or are being retransmitted excessively.
While some retransmissions are normal in a network with packet loss,
the high frequency here suggests that the server is deliberately ignoring
certain packets due to protocol violations or detected cheating behavior
or the client is sending packets too fast, overwhelming the connection.
This is suspicious given that many cheating clients attempt to exploit the
protocol by:
- Sending malformed packets to bypass checks.
- Spamming high-frequency packets to overwhelm the server or gain
an advantage (speed or teleport cheats).
Retransmissions and duplicate ACKs might result from cheats
generating packets faster than the server can handle.
2. Vanilla Client:
Packet timing is vary based on player actions, resulting in an uneven
pattern.
The MCJE protocol (likely referring to Minecraft Java Edition) shows
Invalid Protocol data is not compatible with the current plugin version.
This suggests the client might be sending malformed or non-standard
packets, which is unusual for a legitimate client. This could be due to:
- A modification or "cheat client" generating non-standard protocol
packets.
- A version mismatch or intentional exploitation of protocol
incompatibilities.
Since Vanilla client uses Optifine 1.21.1, it might be because the
Optifine have an outdated protocols that have not yet removed.
Conclusion
Cheating clients often modify packet behavior in the following ways:
1. Increased Packet Volume:
o Cheats like KillAura or speed cheats send a large number of
packets in a short time to simulate rapid actions, such as
attacking multiple entities or moving at unnatural speeds.
2. Modified Packet Lengths:
o Larger packets may include additional or manipulated data to
bypass server-side anti-cheat mechanisms or exploit
vulnerabilities in the protocol.
3. Higher Burst Rates:
o Cheating clients often produce bursts of packets during
specific actions (e.g., rapid attacks), which deviate from the
steady packet flow of a vanilla client.
4. Irregular Packet Distribution:
o The packet length distribution from the cheating client
indicates non-standard operations, whereas the vanilla client
has a predictable range of packet sizes.
The cheating client's increased packet count, higher burst rate, and non-
standard packet lengths suggest it is performing automated or unnatural
actions beyond what a normal player could input.
The vanilla Minecraft protocol is designed to handle steady player inputs
and actions. Excessive or unusually large packets from a client can
disrupt gameplay and indicate exploitation.
Running Anti-Cheat
Plugin Anti-Cheat of Minecraft (Vulcan and Grim) is online during this
analysis.
Packet Rate
Go to Statistics > IO Graphs:
Set the Y-axis unit to Packets/Tick.
Use ip.src == 192.168.1.87 (cheating client) and ip.src == 192.168.1.88
(vanilla client) as separate filters.
Packet Size
Go to Statistics > Packet Lengths.
Compare the distribution of packet sizes for both clients.
Use ip.src == 192.168.1.87 (cheating client) and ip.src == 192.168.1.88
(vanilla client) as separate filters.
3. Cheating Client:
Cheating clients will often have a spike at specific lengths.
Cheating actions often generate smaller, repetitive packets.
Cheating clients have consistent sizes in the payload (attacks).
4. Vanilla Client:
Packet sizes will vary based on legitimate actions like movement, chat,
or interaction.
Same reason when not running Anti-Cheat.
Packet Timing
Add a filter to separate traffic for the cheating and vanilla clients: ip.src
== 192.168.1.87 || ip.src == 192.168.1.88.
Right-click on a packet, select Follow > TCP Stream.
Navigate to View > Time Display Format > Seconds Since Previous
Displayed Packet. This adjusts the Time column in the Packet List
Pane to show the time elapsed since the last displayed packet, helping
you detect gaps or bursts in communication.
Note the time delta between packets in the stream.
3. Cheating Client:
Cheating clients send packets at consistent, rapid intervals (attacking
every 50ms).
4. Vanilla Client:
Packet timing will vary based on player actions, resulting in an uneven
pattern.
Same reason when not running Anti-Cheat.
Conclusion
After we analyzed packet rates, sizes, timing, and contents when running
Anti-Cheat, we compare the differences:
1. Cheating Client:
- High packet rates.
- Consistent packet sizes.
- Repetitive patterns in payloads.
2. Vanilla Client:
- Moderate or varied packet rates.
- Mixed packet sizes.
- Non-repetitive payloads reflecting natural actions.
Packet Size
Go to Statistics > Packet Lengths.
Compare the distribution of packet sizes for both clients.
Use ip.src == 192.168.1.87 (cheating client) and ip.src == 192.168.1.88
(vanilla client) as separate filters.
1. Cheating Client:
Cheating clients have consistent sizes in the payload (attacks).
2. Vanilla Client:
Packet sizes will vary based on legitimate actions like movement, chat,
or interaction. During the analyzing, the Vanilla client was lagging,
leading to a spike in packet size.
Navigate to View > Time Display Format > Seconds Since Previous
Displayed Packet. This adjusts the Time column in the Packet List
Pane to show the time elapsed since the last displayed packet, helping
you detect gaps or bursts in communication.
Note the time delta between packets in the stream.
1. Cheating Client:
Cheating clients send packets at consistent, rapid intervals.
2. Vanilla Client:
Packet timing will vary based on player actions, resulting in an uneven
pattern.
Conclusion
After we analyzed packet rates, sizes, timing, and contents, we noticed
that the cheating client likely sent more packets overall but in bursts
rather than consistently over time while the vanilla client might send
packets at a steady rate. This leads to the misleading results in the I/O
Graph due to its time-based sampling intervals.
Running Anti-Cheat
Packet Rate
Go to Statistics > IO Graphs:
Set the Y-axis unit to Packets/Tick.
Use ip.src == 192.168.1.87 (cheating client) and ip.src == 192.168.1.88
(vanilla client) as separate filters.
Go to Statistics > I/O Graph > Interval and reduce it (e.g., 0.1s) for a
more granular view of bursty traffic.
Compare the packet rate over time.
1. Cheating Client (red line):
The red line (cheating client) could reflect bursty behavior, where high
packet rates occur in short timeframes but fewer packets are sent during
other intervals.
Cheating clients using speed cheats often rely on irregular packet bursts
to simulate accelerated movement. These bursts can temporarily
overwhelm the server or client but might not span the entire duration of
the capture.
2. Vanilla Client:
Packet sizes will vary based on legitimate actions like movement, chat,
or interaction.
Navigate to View > Time Display Format > Seconds Since Previous
Displayed Packet. This adjusts the Time column in the Packet List
Pane to show the time elapsed since the last displayed packet, helping
you detect gaps or bursts in communication.
Note the time delta between packets in the stream.
1. Cheating Client:
Cheating clients send packets at consistent, rapid intervals.
2. Vanilla Client:
Packet timing will vary based on player actions, resulting in an uneven
pattern.
Conclusion
After we analyzed packet rates, sizes, timing, and contents, we noticed
that the cheating client likely sent more packets overall but in bursts
rather than consistently over time while the vanilla client might send
packets at a steady rate. This leads to the misleading results in the I/O
Graph due to its time-based sampling intervals.