Jump to content

[Exploit + fix]Lets hack: Stack subclass skills ( Race condition exploit ).


Recommended Posts

Posted

It fell under my notice some weeks ago, credits to the one that told me in msn. Instead of just telling you how to do the exploit, ill go into a bit more details for those interested into understanding the mechanisms behind the exploits of that kind ( called race condition exploits ). Now since i got informed that the serious servers ( l2inc bla bla ) have it fixed (in private), i assume it wont do that much harm to share it. Plus , ill post guidelines for fixing it.

 

Where does it work ?

 

Kinda everywhere atm. Both L2JServer and L2JFree and all their forks ( and all the chroncles ).

 

What do you need ?

 

1)A bit slow server, pick one that has lots of ppl online and is during its peak hour. Probably at early night for EU.

2)Auto-learn of skills enabled.

3)A way to get level-up when you are able to change subclass.

 

How to do the exploit ?

 

1)Get in the subclass you want to get the illegal skills from.

2)Get a mob that has enough exp reward to increase your level, to the desired level where  you auto-learn the desired skills.

3)Kill the mob and on the same time, as fast as you can click on change subclass to your main.

4)If all went right, your main class will have the newly learned skills of the subclass.

 

How does it work ?

 

This is an exploit that belongs to a more wide category of exploits called race conditions. A race condition happens when two threads ( for simplicity , think of just 2 CPU cores ) try to access the same resources ( skills , items bla bla ) at the same time. This produces strange results at the outcome of one or both of the threads handing the resources. Take for example the following:

 

public class task1 implements Runnable
{
public void run()
{
vulnerableClass.check = false;
}
}

public class task2 implements Runnable
{
public void run()
{
if(vulnerableClass.check)
System.out.println(vulnerableClass.ckeck);
}
}

public class MainClass{

ScheduleGeneral(new task2());
ScheduleGeneral(new task1());
}

 

Now what will the System.out.println print out ? True or false ? Its code says, if check is true, print check. So you expect it to print true. It wont. And heres the why. Think of the two CPU cores we talked before , they run task1 and task2. Task2 enters the if check, finds the variable being true and procceeds. But before it can complete the system output in the console, the other task, task1 changes the variable to false. This is called a race condition. Something similar (not that much) happens when you do the subclass exploit.

 

1)You send the Action packet which kills the mob. CPU processes that packet and starts calculating SkillLearn objects etc. Before it can finish and add you those SkillLearn objects ( ill say it very simple ) the other packet, (RequestBypassToServer) changes your subclass to the new one. After the subclass gets changed, the new skills get added. Not that much acurate, but you kinda get the idea on how it works.

 

PS: Based on that, since l2jfree keeps a PacketQueue for each gameClient, it wont allow you to execute both packets at the same time. No problem, get a person in party, and make him kill the mob at the same time you press change subclass. That way the packets execute in parallel avoiding the sequencial execution restriction l2jfree implements. Thats an assumpion, i didnt test yet in l2jfree, but i assume it will work.

 

Tested in :

L2Nitro ( interlude crap ).

L2Idol (L2JServer freya ).

 

You may need multiple tries if the server is fast enough. But you will get it finally. Took me about 5-6 tries to stack them in l2idol.

 

 

Posted

Bump. Since i already found some people using their new weapon in their servers and none even cared to reply, i found it rude that i come here and actually get into the pain to explain you what a race condition is and get no feedback and testing. So at least what you can do is give some feedback:

 

I would like someone to confirm for l2jfree if possible ... Do it with two different players in party. One kills the mob the other switches subclass, to avoid their packetqueue protection :)

Posted

So if i made it work i will take the new skills not all to the other sub?

And they stuck?

but how i gonna take the lvl and change sub ?

btw hide it for 1000 posts

Posted

So ,while changing subclasses we get skills from 60lvl(ex) sub

 

You need a good synchronisation ,plus a mob to level up once(or prolly in goddard,anyway)

 

Though i think it's already shared it here,it may be useful

Posted

Okay okay , perfect for giving explanation for the mechanism.I also doubt if some servers give you this possibility but you can "Drag" a mob in town so you can do it succesfully.

 

 

 

Hide it for 500 or more.This share is amazing.+1

Posted

If you read the exploit mechanism explanation you will figure out that paralize wont work.

 

PS2: I found a program that searches your source code for race conditions. But its expensive and cant find it cracked atm. When we find that, i believe we will get more exploits from the source code of the l2js.

Posted

There is already an illegal skill check mechanism implemented in l2j nowadays and btw you could as well stop this substacking with a isInCombat() restriction at the villagemaster instance.

Posted

There is already an illegal skill check mechanism implemented in l2j nowadays and btw you could as well stop this substacking with a isInCombat() restriction at the villagemaster instance.

 

true :D

 

 

ehhh l2j failed (A)

Posted

There is already an illegal skill check mechanism implemented in l2j nowadays and btw you could as well stop this substacking with a isInCombat() restriction at the villagemaster instance.

 

no, because you do not kill the mob, someone from your party does

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • Hello guys, I’d like to introduce your audience to my original project, which has gained popularity in Europe and among the Russian-speaking community. I just never got around to posting about it here until now. At one point, I wanted to develop a launcher (game file downloader) in the browser, and that idea eventually evolved into a full-fledged CMS engine with extensive functionality. SphereWeb is a massive ecosystem for Lineage 2 JAVA servers, packed with everything a server administrator and players might need. From October 2024 to April 24, 2025, my project has been installed on 250 different domains. SphereWeb is your best choice — a modern web engine designed specifically for administrators of Lineage 2 Java game servers. It offers a rich and user-friendly interface for managing your server with ease. ✅ Player Control Panel – covers all player needs: Authorization, registration, password change, account linking and synchronization, contacting the admin via support system, teleporting a character (and sending items to warehouse) to a town, warehouse management (sending items in-game), and making server donations. ✅ Admin Control Panel – opens up new horizons, giving you access to: Extensive panel customization (more on this later) Donation history with charts News and page creation Stream management (add streams) Item shop creation Starter packs creation Bonus code generation XenForo news integration Email message settings Global activity log Traffic insights (track where your users come from) Extensions section (plugins – more on that later) Server management Auto software updates Tech support Custom translations Now, about the Control Panel settings: The standard settings are organized into several tabs: Language There are 5 available languages: Russian, English, Spanish, Portuguese, and Greek, covering 99% of translation needs. You can also set a default language for the panel.   Features Toggle built-in features of the control panel: News, Shop, Balance, Statistics, Support, Balance Transfer, Bonus Code, Streams, Data Emulation. Enable/disable options to keep the panel clean and focused on what you need. Captcha Support for Google reCAPTCHA, Cloudflare Turnstile, or default hCaptcha. Old-school recommendation: use Google reCAPTCHA v2. Fake Online Boosting Basic settings for boosting the online counter. Registration Settings Configuration options for the registration process. Email Connect your panel to an SMTP server. Misc General-purpose settings and adjustments. Template Choose and preview the design template for your landing page. Logo Upload your control panel logo and favicon. Palette Customize the color scheme of your control panel interface. Menu Add links to your site’s navigation menu. Background Upload high-resolution background images for login, registration, and password recovery pages. Notifications Set up Telegram notifications for selected events. In Sphere 2, I’ve paid special attention to plugins, making it easy to add and expand functionality. By default, the panel includes several built-in extensions (plugins).   Giveaway – allows you to host item giveaways for users directly on the website. Internal Forum – a built-in forum system inside the Control Panel (more details on it below). Launcher – a free solution for updating game files. It delivers unmatched speed and runs directly in the browser, allowing full design customization. Traders – (currently for Lucera2 only) displays a list of offline shops, their items, prices, and player locations directly on the website. Roulette – a fun game where users spin the wheel to win items. Item Editor – a tool for creating custom in-game items. Item Increase – tracks and displays item count by ID across the server in graph form, showing which players hold the most. Registration Statistics – a simple chart showing registration trends over time. SQL Collection – a plugin for adding or adjusting Java server builds if your current build isn’t supported or needs customization. ✅ Supported Java Server Builds The system currently supports a variety of popular Java server builds. Full list available in the admin panel. 🧩 Forum Plugin In the first version of Sphere, a basic internal forum was quite popular among server admins — so in Sphere 2, it came back better than ever. Inspired by XenForo, the forum is rich in features and designed for both community and solo players: Players can create clan communities to connect and play together. Clan creators can upload clan logos and header banners, customize text color for the clan name. Clan members can post on the public clan wall or chat in a dedicated clan chat. Clan logos and banners appear across the forum for all members. For players who like to show off: Under each username, the forum can display PvP/PK stats, in-game time, and character list. Players can choose to hide this data if they prefer privacy. Admins can assign moderator roles to users for specific forum sections, ensuring proper content management and community moderation.   💰 Donations & Rewards The administrator has a wide range of reward settings for player donations — almost every suggested method has been implemented: Cumulative discount system – discounts increase as the total donation amount grows. One-time bonus – an extra reward for a specific donation. Permanent shop discounts – based on the player's total donation history. One-time item shop discounts – also based on total donations. Item-based rewards – configurable rewards delivered automatically after donation. ✅ Supported Payment Systems (Current list is available in the admin panel and may vary by region.) 🔄 SphereWeb Auto-Update System Sphere is actively developed — I improve it almost daily. To ensure everyone stays updated, I’ve implemented multiple update methods: Automatic – once I push updates to GitHub, they are downloaded to Sphere clients within 5 minutes. Manual – if automatic updates are disabled or your site was offline during update release, you can trigger the update manually with one click. File Scanner – this feature scans your Sphere installation, compares files with the latest version, and shows missing or modified files you can restore. 📸 Control Panel Screenshots (Here you’d typically show screenshots or say where they can be found.)   💬 Final Words A lot of work has gone into this project. I occasionally post updates in the Sphere Telegram channel — when I don’t forget. I’m truly proud of the results. 🚀 Want to Install It? Before you rush in, please note: Installation won’t work on localhost. A valid SSL certificate is required. Repo: GitHub - Cannabytes/SphereWeb2 Upload the archive to your hosting. Open your website in the browser — the installer will guide you. ⚠️ Some Russian hosting providers block wide IP ranges, which may interfere with installation. 💸 Pricing Three usage plans available: Free – limited to 20 game account registrations per day. $12.5/month – no Sphere limitations. $20/month – no Sphere limitations + access to all commercial plugins. Your balance is shown in the admin panel, and you can renew access anytime. ✅ All users receive updates, regardless of subscription tier. A lot of work has been done, and from time to time I share updates in the Sphere Telegram channel — when I don’t forget. I’m truly proud of what I’ve built. Did you like it? Want to install it yourself? Please note — you won’t be able to install it on a local server. A valid SSL certificate is also required. Steps to install: Download the package from the GitHub repository: Cannabytes/SphereWeb2 Extract the archive on your hosting. Open your website in a browser — the installer will launch automatically. Just follow the instructions. 🔧 Minimum Requirements: PHP 8.2 MariaDB or MySQL 5.8 SSL certificate for your website   💵 Pricing SphereWeb offers 3 usage options: Free Plan – limited to 20 game account registrations per day. $12.5/month – no limitations, full access to Sphere features. 3. $20/month – no limitations + access to all commercial plugins. Your current balance is shown in the admin panel, and you can renew your license whenever you wish. Regardless of your plan, you will always receive updates. 🆕 Latest Updates: User Registration Source Tracking: Now, when a user registers, you can see where they came from before landing on the site via Telegram notifications. Bulk Deletion of Bonus Codes: Added functionality to bulk delete bonus codes for better management. Starter Pack Editor: A new editor for creating and managing starter packs is now available. Item Removal from Warehouse: Admins can now remove items from a user's warehouse. Server-Specific Settings: Each server now has a "Functions" button, providing additional customization options for each server. Warehouse Cleanup: Admins can now clear the warehouse for all users or by specific item ID. Custom Return Button: The "Return to Site" button can now be disabled, and you can set a custom link for it. Character List UI Overhaul: The character list in the admin panel has been redesigned to be more minimalist and user-friendly. User Info Page Improvements: The user information page has been enhanced for better navigation and access to key data. Donation History Updates: The donation history page has been improved for better data presentation. Item Stacking and Splitting: Users can now stack or split identical items (e.g., ID 57 (150) + ID 150 = ID 57 (300)). Admins can configure which items can be stacked and split. Account Deletion: Users now have the option to delete their own accounts from the account list. Success Chest Plugin: A new "Success Chest" plugin has been added, allowing admins to define chests with specific items, their prices, and visual parameters. Reworked Warehouse: The warehouse now operates in a separate modal window. When items are purchased, they are automatically added to the warehouse without page reloads. Registration Reward: Admins now have the ability to reward users for registration, adding more incentives. Item Stacking and Splitting Customization: Admins can now specify which items players can split and stack in their warehouse. These settings are available in the admin panel under the server's "Functions" button, offering granular control over item management. Account Deletion Feature: Players now have the ability to remove their accounts from the account list (but not from the server). In the future, this feature will be customizable for each server. Success Chest Plugin: A new "Success Chest" plugin has been added, allowing admins to define the items inside the chest. Players can then randomly draw one item from the chest. This feature is still in early testing, and any feedback or issues will be addressed in future updates. Improved Warehouse/Inventory: The warehouse/inventory system has been enhanced. Now, when items (such as starter packs or chests) are purchased, they are immediately added to the warehouse without requiring a page refresh. Additionally, the modal window for the warehouse now opens when the warehouse button is clicked with the mouse wheel. 😊 Log Sorting by Server: Logs now include the ability to sort by server, making it easier to manage and review data for each individual server. Registration Source Tracking: Telegram notifications now include information about where a user came from before registering on your site. Bulk Deletion of Bonus Codes: Admins can now bulk delete server-specific bonus codes, as well as bonus codes that were generated for all servers. Customizable Starter Packs: A new option has been added to modify and customize starter packs, giving more flexibility to server admins. Item Removal from Warehouse in Profile: Admins can now remove items from a user's warehouse directly from their profile. "Functions" Button in Admin Panel: A new "Functions" button has been added to the admin panel, offering additional tools for server management. This includes the ability to clear the server’s warehouse entirely or by specific item ID. Disabling the "Return to Site" Button: Under Admin Panel -> Settings -> Miscellaneous, there is now an option to disable the "Return to Site" button in the site menu
    • We are waiting you today at 8pm +3 GMT website: https://l2evo.net The patch will be available 30 min before the grand opening. Come join the best Interlude pvp server.  
    • We are certainly not an ambulance, but we will definitely cure you of blacklists and empty pockets. Live freely with SX! Each of you will receive a trial version of SX to familiarize yourself with the product, all you have to do is post in this thread
  • Topics

×
×
  • Create New...