Jump to content

Question

Posted

Hello, lets say i made a nice code and i build server (l2jserver.jar)

and i gave it to someone for test before he buy it...

 

Is there any way to protect the jar from decompile-reverse? We all know that extract source

from jar is like open facebook.. so easy..

 

any chance?

12 answers to this question

Recommended Posts

  • 0
Posted

Unfortunately due to the write once run anywhere nature of java, it is fairly easy to decompile. You can use things like native class loaders and stuff, but those are still fairly simple to circumvent and dump the class files.

A deobfuscator just jumbles up the byte code and metadata a bit, with enough time on your hands you could still revert obfuscated code to readable java source code.

The best solution to protect your code is simply to not let the user gain access to it, now this depends what you are doing, maybe running a server and having clients connect to it could be an option. 

  • 0
Posted

The only way to protect your software is to run it as a service (SaaS).

However i highly doubt we will ever see that in l2j so, just make your code really hard  to read. That won't help from an experienced guy taking your code, 

but the crappy leechers will straggle.

  • 0
Posted

No matter how hard or fake classes ill use to lead you in wrong way still someone with experience can find it..

and is not only the test lets say you sell some files you have to give the l2jserver.jar  so the other can easily decrypt it unfortunately.. but oh well

seem a - java has compare to c and c++

  • 0
Posted

No matter how hard or fake classes ill use to lead you in wrong way still someone with experience can find it..

and is not only the test lets say you sell some files you have to give the l2jserver.jar  so the other can easily decrypt it unfortunately.. but oh well

seem a - java has compare to c and c++

It's a little price to pay for the fact that it runs everywhere.

  • 0
Posted

No offense, but I doubt the time used to try to de-obfuscate your custom worths the price of the custom. So a obfuscator solution is fine, if you can't setup a live server and make the guy tests directly on the server, without him getting access to the server files.

 

yGuard, ProGuard, etc.

  • 0
Posted (edited)

No offense, but I doubt the time used to try to de-obfuscate your custom worths the price of the custom. So a obfuscator solution is fine, if you can't setup a live server and make the guy tests directly on the server, without him getting access to the server files.

 

yGuard, ProGuard, etc.

Have to agree here. But there are already automated name re-generators, which change the fact that in the same expression, 'a' can be both field, local param and method. After applying such a regenerator (0 minutes time investment) most of the job done by the obfuscator (shrinker) is successfully reversed. You can thus only defend by writing extremely sub-optimal, illogical code -> which means the offered code will really suck in all possible ways after this.

 

Launch4j. Check this out. This better solution for hidding source code.

Terrible solution, even at what it does (making standalone apps with an embedded JRE). Haven't you heard about Excelsior.JET?

 

seem a - java has compare to c and c++

True, when dealing with C/C++, you will not instantly get the full source, compared to decompiling C#/Java. But have you never heard about IDA & HexRays? After finding a few key points and dissecting central structures/classes, you can easily reconstruct the whole logic, even when dealing with heavily-templated C++ x64 code.

 

 

 

Now, on topic: I suggest to use the VM approach, which has been successfully applied to asm code (so protecting C/C++ - yes, they badly need protection, just like Java/C#) and now even to C#. It makes the reverse engineering costs way higher than anything you are charging. Just make sure to implement the whole logic yourself, or at least check that there isn't any openly accessible unpacker (custom instruction/program flow back to real class bytecode converter).

Edited by _dev_
  • 0
Posted

Most of you lost the point. I dont speak for Preview server.. afcourse when a client ask you u dont give him the files u preview via teamviewer or open a live server

but we speak for the kids that take your jar decrypt it and share codes.. but most of you also said it cannot happen (protection) soo..

  • 0
Posted

Have to agree here. But there are already automated name re-generators, which change the fact that in the same expression, 'a' can be both field, local param and method. After applying such a regenerator (0 minutes time investment) most of the job done by the obfuscator (shrinker) is successfully reversed. You can thus only defend by writing extremely sub-optimal, illogical code -> which means the offered code will really suck in all possible ways after this.

 

 

Terrible solution, even at what it does (making standalone apps with an embedded JRE). Haven't you heard about Excelsior.JET?

 

 

True, when dealing with C/C++, you will not instantly get the full source, compared to decompiling C#/Java. But have you never heard about IDA & HexRays? After finding a few key points and dissecting central structures/classes, you can easily reconstruct the whole logic, even when dealing with heavily-templated C++ x64 code.

 

 

 

Now, on topic: I suggest to use the VM approach, which has been successfully applied to asm code (so protecting C/C++ - yes, they badly need protection, just like Java/C#) and now even to C#. It makes the reverse engineering costs way higher than anything you are charging. Just make sure to implement the whole logic yourself, or at least check that there isn't any openly accessible unpacker (custom instruction/program flow back to real class bytecode converter).

 

It's a biggest pleasure.  :happyforever:

 

http://www.excelsiorjet.com/buy

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • ## [1.4.0] - 2026-01-28   ### ✨ New Features - **Vote System**: Lineage 2 servers can now use our vote–reward system. Players vote on the website and claim rewards in-game (1 vote = 1 claim) - **Vote Page**: On each server’s page (`/servers/<server>`), a **“Vote for Server”** button opens a dedicated vote page with cooldown info and optional Turnstile verification - **By Votes View**: The **“By Votes”** tab on the main page shows **actual vote counts** per server - **API Documentation**: New **API Docs** page at `/docs` (and footer link) with HMAC auth, endpoints, and examples for game server integration - **Vote API (My Servers)**: Server owners can open **“Vote API”** in My Servers to manage credentials, cooldown, allowed IPs, and open the docs   ### 🔄 Improvements - **Server Pages**: Single-server data is cached and loads faster; server pages can be opened by ID or by name (e.g. `/servers/my-server-name`) - **API Root**: Visiting the API root redirects to the docs URL configured in admin (default: site docs page) - **Admin Panel**: New **“Vote System”** tab for global settings (Turnstile, API security, default cooldown, docs URL)   ### 🔐 Security & Reliability - Turnstile (CAPTCHA) support for vote submissions to reduce abuse - HMAC-protected game server API for secure vote check/claim and stats
    • "I recently purchased the account panel from this developer and wanted to leave a positive review.   The transaction was smooth, and the developer demonstrated exceptional professionalism throughout the process.   What truly sets them apart is their outstanding post-sale support. They are responsive, patient, and genuinely helpful when addressing questions or issues. It's clear they care about their customers' experience beyond just the initial sale.   I am thoroughly satisfied and grateful for the service. This is a trustworthy seller who provides real value through both a quality product and reliable support. 100% recommended."
    • Server owners, Top.MaxCheaters.com is now live and accepting Lineage 2 server listings. There is no voting, no rankings manipulation, and no paid advantages. Visibility is clean and equal, and early listings naturally appear at the top while the platform grows. If your server is active, it should already be listed. Submit here https://Top.MaxCheaters.com This platform is part of the MaxCheaters.com network and is being built as a long-term reference point for the Lineage 2 community. — MaxCheaters.com Team
    • ⚙️ General Changed “No Carrier” title to “Disconnected” to avoid confusion after abnormal DC. On-screen Clan War kill notifications will no longer appear during Sieges, Epics, or Events. Bladedancer or SwordSinger classes can now log in even when Max Clients (2) is reached, you cannot have both at the same time. The max is 3 clients. Duels will now be aborted if a monster aggros players during a duel (retail-like behavior). Players can no longer send party requests to blocked players (retail-like). Fixed Researcher Euclie NPC dialogue HTML error. Changed Clan leave/kick penalty from 12 hours to 3 hours. 🧙 Skills Adjusted Decrease Atk. Spd. & Decrease Speed land rates in Varka & FoG. Fixed augmented weapons not getting cooldown when entering Olympiad. 🎉 Events New Team vs Team map added. New Save the King map added (old TvT map). Mounts disabled during Events. Letter Collector Event enabled Monsters drop letters until Feb. 13th Louie the Cat in Giran until Feb. 16th Inventory slots +10 during event period 📜 Quests Fixed “Possessor of a Precious Soul Part 1” rare stuck issue when exceeding max quest items. Fixed Seven Signs applying Strife buff/debuff every Monday until restart. 🏆 Milestones New milestone: “Defeat 700 Monsters in Varka” 🎁 Rewards: 200 Varka’s Mane + Daily Coin 🌍 NEW EXP Bonus Zones Hot Springs added Varka Silenos added (hidden spots excluded) As always, thank you for your support! L2Elixir keeps evolving, improving, and growing every day 💙   Website: https://l2elixir.org/ Discord: https://discord.gg/5ydPHvhbxs
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..