Jump to content

Recommended Posts

Posted (edited)

All,

 

I'm developing an API for NODEJS that supports L2OFF and L2J (in the future)

 

Here's the module: https://www.npmjs.com/package/l2-api

 

I'm adding more functions and I would like to you help me with the password encryption algorithm.

 

This is an open source project. Feel free to contribute in Github.

Edited by Puchito
Posted

This is inside L2OFF, so...

 

You have to use Admin socket of CacheD... Otherwise you will get old data, races, and performance/security issues. 

Oh, also my kitty might get pregnant. 

 

Seriously, idea is very nice, I was looking for something like that, but all data should be taken from CacheD, because this module doesn't modify SQL each time, it's a CACHE. Also, taking something already prepared from memory is much more faster, then SQL query.

 

About races - when your module get mature, and you would like to change data, no way to use SQL, since changes won't be visible in game, and even probably overridden by CacheD module. 

 

 

Posted

@MasterToma thank you !

 

I was planning to use mssql queries for fetching data and cached for updating data.

 

Is mssql data not up to date? I thought every time the cached performed an action it updates the database.

 

Can you provide me a link or any documentation about CacheD functions? I only found the Depmax64 basic functions in PHP. For instance, if i want to fetch the ranking from the cached, how can i do that?

 

Cheers!

  • 1 month later...
  • 1 month later...
Posted

Here you go:

 

https://ufile.io/rld02qiw

 

This ZIP contains:

 

- L2Crypt.js = Native L2 Password Encryption

- hAuthD.js = MD5 Password Encryption for hAuthD

- L2CacheD/CacheD.js = A bunch of CacheD packets

 

I wrote this code years ago. It is horrible, ugly, and looking back at it makes me want to gag. But it does work. Atleast it did for AdvExt64's Interlude CacheD

  • 5 months later...
Posted

How to crypt password using L2Crypt.js?

I have the error:

 

"message": "Implicit conversion from data type nvarchar to binary is not allowed. Use the CONVERT function to run this query.",

 

how to solve? I use KNEX

Posted (edited)

I had the same issue with frameworks and query builders and so on. This is how I managed to insert the encrypted password. The encrypted password from L2Crypt.js should look like this: 0x256891DE63C270EDD8416767AA301616 . Then you insert this using CONVERT inside user_auth

 

CONVERT(BINARY(16), '$pass', 1)

And for the answers of the security questions (answer1 & answer2 inside user_auth)

 

CONVERT(BINARY(32), '$answer1', 1)

 

Edited by PARADISE
Posted
9 hours ago, PARADISE said:

I had the same issue with frameworks and query builders and so on. This is how I managed to insert the encrypted password. The encrypted password from L2Crypt.js should look like this: 0x256891DE63C270EDD8416767AA301616 . Then you insert this using CONVERT inside user_auth

 


CONVERT(BINARY(16), '$pass', 1)

And for the answers of the security questions (answer1 & answer2 inside user_auth)

 


CONVERT(BINARY(32), '$answer1', 1)

 

 
something like:

knex('user_auth')
   .insert({
      CONVERT(BINARY(16), 'pass', 1), 
      quiz1,
      quiz2, 
      CONVERT(BINARY(16), 'answer1', 1),
      CONVERT(BINARY(16), 'answer2', 1),
   });

what would the query look like?

 

 

  • 6 years later...
Posted
On 5/11/2019 at 3:18 AM, tk422 said:

Here you go:

 

https://ufile.io/rld02qiw

 

This ZIP contains:

 

- L2Crypt.js = Native L2 Password Encryption

- hAuthD.js = MD5 Password Encryption for hAuthD

- L2CacheD/CacheD.js = A bunch of CacheD packets

 

I wrote this code years ago. It is horrible, ugly, and looking back at it makes me want to gag. But it does work. Atleast it did for AdvExt64's Interlude CacheD

who have this files? or info about cached packets?

  • 3 weeks later...
Posted
On 5/11/2019 at 8:18 AM, tk422 said:

给你:

 

https://ufile.io/rld02qiw

 

该邮编包含:

 

- L2Crypt.js = 原生L2密码加密

- hAuthD.js = hAuthD 的 MD5 密码加密

- L2CacheD/CacheD.js = 一堆 CacheD 数据包

 

这段代码是我多年前写的。它很糟糕、丑陋,回头看让我想呕吐。但它确实有效。至少AdvExt64的Interlude CacheD是这样

hello , can you reupload this file . thanks 

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

    • Im responding to an anonymous account with 3 posts, almost no background, and practically zero useful information added to the discussion. On top of that, the topic title is misleading  calling it "Lucera Source Code" gives a completely different impression from what is actually being presented.   I didn’t say anything different. Therefore, I have no clue how his process produces the same desirable result.   And here you are creating drama. Your topic title clearly says "Lucera Source Code," which is not actually the case, or at least that’s how it looked when I first clicked on it, so I don’t think I was completely off. There’s also no significant information about your process like  what difficulties you faced, what tools you used, or anything else meaningful. Yet you still expect others to provide value based on what? I’m not talking about your project itself which, by the way, good job. I’m talking about the topic itself as a source of value for this forum, because right now it doesn’t really offer much in that regard. So regarding the semantics, yes, wording does matter.  
    • You are funny guy! 😄 😄 😄    I was working with Lucera long before “AI apps” became fashionable. This was not something I generated in one day with a prompt. It took me years of work, testing, debugging and fixing broken decompiled code.   Of course a decompiled source is not the original private repository with the original comments, history and developer structure. Nobody said it is the same Git repository. But saying it is only “guesses” is also wrong.   When you decompile, rebuild, fix thousands of compile/runtime issues, restore broken logic, reconnect scripts, fix bad casts, repair database calls, compile it again and run it in-game, at that point it is no longer just a guess.   It becomes a working reconstructed source base!   The important part is not whether it is byte-for-byte identical to the original private source. The important part is that I can now work directly inside the code, change core logic, rebuild scripts, fix bugs and continue development without being locked behind closed binaries.   Does it compile? Yes. Does it run in-game? Yes. Can I modify core systems directly? Yes. Can I continue development independently? Yes.   So call it reconstructed, decompiled, cleaned, restored or whatever name you prefer. The result is still the same: I have a working source environment that gives me control over the lucera2 project.   And that was exactly the goal!   🙂 
    • You clearly have no idea who you're talking to.   I've been working in the cheat industry for years and have developed cheats for multiple games, including projects that operate at kernel level and bypass protections far more advanced than anything Lineage 2 has ever had. Compared to that, Lineage 2 is low tier and technically simple.   As for the topic title, it's perfectly fine. The only thing I forgot is that this forum hasn't changed after all these years. It's still full of people who would rather argue semantics and act like experts than contribute anything meaningful to the discussion. Whether you call it reverse engineering, reconstruction, or educated guesses doesn't change the fact that the result works and achieves its purpose.   Honestly, I don't think there's any reason for me to keep posting here. Most of the replies add nothing of value and only prove why many experienced developers stopped sharing their work on this forum years ago.       Nobody said Lucera is a bad product. In fact, the reason people spend time decompiling it is because it is a good product and has value.   What I find funny is that everyone openly acknowledges that Lucera gets decompiled, yet when someone actually discusses the technical side of it, people suddenly act like it's some impossible or mythical process.   Reverse engineering software is nothing new. It has existed for decades and happens in every industry, from games to operating systems to commercial applications. Lucera is no exception.     I never said Deazer is a bad developer. Quite the opposite, he's a skilled developer and Lucera is one of the most stable projects I've worked with.   My only criticism is that, as a customer, you're heavily dependent on him. If he's willing to help, you'll get an answer quickly. If he's not interested in the issue or simply doesn't feel like dealing with it, then you're left to research and solve it on your own.   That's not necessarily a technical problem with Lucera itself, it's just one of the downsides of relying on a closed source project where a lot depends on a single developer.   From a stability standpoint, though, Lucera has always been among the best files available in my experience.
    • Scammers inc.  What you want to learn? Cooding? or just work with data files on builds.
    • You are not working with the original source code. You're working with educated guesses about what the original software might look like, and in the end, that's all you own  "guesses".   Does it compile? Yes. Is it the same as the original source? No.   Your topic title is completely off and misrepresents how software development and reverse engineering actually work.  
  • 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..