Jump to content

[L2Off] L2 C1 Source Code


Recommended Posts

As I promised. Decompiled and built L2LogD.exe: https://drive.google.com/open?id=0B6ic1ViGkLctcXZwbm0wbDlGQ00. Feel free to test it, report issues and get sources.

 

Contains minor but obvious fixes for original L2LogD from C1. Will prepare some video with code tomorrow. All, who contributed and helped me somehow, feel free to PM for source code. For those, who still wanna contribute and get the code - there is simple reverse task, which I left: http://www.maxcheaters.com/topic/214458-l2off-l2-c1-source-code/page-2?do=findComment&comment=2641410

Edited by MasterToma
Link to comment
Share on other sites

With smeli help, IL support has been completed. Tested with SINA IL Server Extender and IL client (737 with killed GG). For now there is a separate branch for it (https://bitbucket.org/master_toma/lineage2-c1-harbingers-of-war/src/312e63ca9d7f940fb11e6be1bbaf86f62eefab9b/?at=c6_ext), but I'm going to merge all changes for c1, c4 and c6 into single branch.

Edited by MasterToma
Link to comment
Share on other sites

  • 3 months later...

Hi,

I repeat answer to those, who PMed me as well: I didnt abandoned decompilation, just was on summer holiday, and going to publish new code on butbucket in a few weeks.

Link to comment
Share on other sites

On 4/30/2017 at 2:51 AM, MasterToma said:

Well, L2J is actually a great project, and many devs were inspired by it. The problem it's not in java, but rather in implementation details - if they would use L2OFF logic, we wouldn't have to write extenders.

 

No, it is not.  It has collectively lowered the bar for Lineage II -- to the point any moron can open a server.  Having been around since the start (l2off) and breaking in 2012 to return now.. the sorry state of Lineage II as whole... one only need look as far as the million java servers existing today.  Whatever L2J inspires?  Perhaps great things like idiot server owners paying big clans to play on the server.  Talk about inverted logic.

L2J will never be, or replace L2off or extenders... just as the level of skill required to create an extender... C/C++ and solid Intel asm knowledge vs a language that every "comp sci" wanna be is taught.

Mm, and oh - congrats on your reverse engineering.  I did the same years ago  of malware rootkit driver Rustock B & C.  IDA -> C source, 100% working.  I will commend you for that.

Edited by Fyyre
Link to comment
Share on other sites

1 hour ago, Fyyre said:

L2J will never be, or replace L2off or extenders... just as the level of skill required to create an extender... C/C++ and solid Intel asm knowledge vs a language that every "comp sci" wanna be is taught.

It could have if l2j was actually started properly, and it still could be but I guess people won't spend that kind of time anymore. Even today, numerous l2off dev switched to l2j and try to make the shit right.

Link to comment
Share on other sites

the issue is the players don't care so why should the server owners  / pack devs... like fyyre said the bar has been lowered and the bugs and just dumbassery of l2j is universally accepted by players as just what private servers are like cuz 90% have those issues, between shit geo engines which put u in the ceiling or show "cannot see target" all the time and universally incorrect algorithms and formulas for skills and the #1 thing which drives me fucking nuts is static point spawns for npcs - all of this shit is just accepted by players because that's just how private servers are right?

my work in l2j has shown 1 thing predominantly, it's a constantly losing battle between devs who actually know what they're doing and know what it should be, and the devs who are out there to make 5$ on a system they copypasted together which does 60s sleeps for an event queue in the main thread pool and uses CopyOnWriteArrayList for a write-heavy container like for every decent dev there's probably 20 shit ones fucking things up and i don't see that as likely to change

Link to comment
Share on other sites

16 hours ago, Sdw said:

It could have if l2j was actually started properly, and it still could be but I guess people won't spend that kind of time anymore. Even today, numerous l2off dev switched to l2j and try to make the shit right.

What l2off devs mate?  I can count maybe 10, and all but 2 or 3 have retired...  Although I will says props to eressea for her open source extender.  L2 needs more people like her.

I know you did great things with L2JUnity, even if I still think Nos is a little bitch *grin*

Edited by Fyyre
  • Like 1
Link to comment
Share on other sites

He retired as well but we still spend mucho time RE. Starting from L2J allows to have simulation of working feature till we replace it. It feels endless but less broken in the end and one day we will call it L2 :D

Link to comment
Share on other sites

On 10/14/2017 at 8:49 AM, Sdw said:

He retired as well but we still spend mucho time RE. Starting from L2J allows to have simulation of working feature till we replace it. It feels endless but less broken in the end and one day we will call it L2 :D

Makes sense.  I do remember him starting RCE.  He is a smart guy, he will go far.

Link to comment
Share on other sites

  • 2 weeks later...

Hi all. As I promised, I've returned. A lot of L2CacheD infrastructure code has been revealed and published. Main thing left - model-specific code, which contains logic, and L2CacheD <-> L2Server packet handling.

As some of you might now, there are about 220 packets in L2CacheD : Server protocol. But the good thing is, that 59 of them (almost 1/3) doesn't need any complex logic to decompile.  For exaplme, packet with Id=128:

// ADDRESS (0x004365F0)
bool __cdecl packet128_RequestDeleteCropData(CIOSocket *pSocket, const uint8_t *packet)
{
  guard(L"static bool RequestDeleteCropData(CSocket* pSocket, const unsigned char* packet)", L"static bool RequestDeleteCropData(CSocket* pSocket, const unsigned char* packet) (exit)", L"Socket.cpp", 8042);
  
  PacketUtils::Disassemble(packet, "dd", &v4, &v6);
  
  DBConn sql;
  sql.Execute(off_4F0B58, v4, v6);
  
  unguard();
  
  return false;
}

As you can see, it's very simple - read 2 ints from packet, and execute some SQL query. All is needed to commit file - manual clean up (it's done in the snippet above), variable renames (might be taken from SQL query itself), etc. For sure not a rocket since.

So, I'm looking for people, who want to help and contribute to this project (all sources are available, link in the first post), by decompiling very easy packets (while I'm doing more dirty job). You can check all packets here.

Right now there are only stubs, no real logic inside. Contact me, I'll send you details. 

Edited by MasterToma
Link to comment
Share on other sites

  • 1 month later...

Almost all model is decompiled, fighting only with warehouse logic.

Still looking for skilled devs, who wanna to contribute. L2Server/Admin handlers are waiting for you! :D 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.



×
×
  • Create New...