Jump to content

eressea

Legendary Member
  • Posts

    534
  • Credits

  • Joined

  • Last visited

  • Days Won

    7
  • Feedback

    0%

Everything posted by eressea

  1. I think I solved it (I've added loader which loads original exe and then loads extender), no need to patching PE file anymore :) zconll: Please test it and let me know :) EDIT I've edited the first post to give more accurate info to newcomers :)
  2. You can try this one https://osamelahora.cz/MyExt64/L2Server.exe it's not perfect - there's not much place for code now (but it still fits fine). If anyone is able to do it more properly, please, please do it :) Original is https://osamelahora.cz/MyExt64/L2Server_orig.exe
  3. It currently supports protocols 83 (GF) and 152 (GE update 1), depending on what you set in config. You can also try protocol 87 (GF update 1) but I don't have such client so I can't test it. BTW added some checks to multisell to prevent using different multisell list than provided by NPC
  4. Link isn't dead, I just moved it to bitbucket https://bitbucket.org/l2shrine/extender-public Here you can go through files https://bitbucket.org/l2shrine/extender-public/src Btw I've added some more fixes from MXC, correct me if I'm wrong, but I think there's now only instance zone fix missing. Added features: - augmentation stat fix from mxc 1.07 - clan restrictions configuration (heavilly inspired by mxc 1.07) - resurrection fix from mxc 1.07 - tradeadditem packet dupe fix from mxc 1.07
  5. Added drop/spoil rate algorithm, do you think it's correct? :) https://bitbucket.org/l2shrine/extender-public EDIT: It's not correct yet, trying to find out what's wrong :) EDIT2: Now it should be correct :) EDIT3: Added custom probability-based event drop system + eventdata.ini example EDIT4: Added configurable item enchant chance (you can easily set enchant chance for individual levels) EDIT5: Added "friendly command channel" - no getting area damage/debuffs from command channel members and their summons/pets EDIT6: Added configuration option to disallow trade requests in olympiad, added "repeat skill on distance fail" fix (when you try to perform skill on mob but you're out of range, you'll follow the mob and the skill gets casted when you get in range; sometimes mob manages to move and increases distance again, buy your character isn't following anymore, tries to cast the skill and fails because of distance; this fix tries to mitigate this feature/bug - of course it's configurable in ini file) EDIT7: Added configurable max level (main/sub), added various fixes inspired by OSIE, added some other checks, added hook to WriteProcessMemory to allow easier reverse engineering of 3rd party extenders, added olympiad fixes from MXC 1.07 (thanks Mac, your code looks pretty good even in IDA. You did a great job!)
  6. Almost done with implementing Gracia Epilogue support (except mail and refund), added configuration, offline trade, expon/expoff, online user counter, added auto //gmon + nick color for builder https://bitbucket.org/l2shrine/extender-public
  7. New versions will be available on bitbucket https://bitbucket.org/l2shrine/extender-public
  8. I've added new version with some Gracia Epilogue work in progress (BuySell listing somehow works but you can't buy anything, also sell opens in buy tab, must figure out what to do with it... and refund doesn't work at all) https://osamelahora.cz/MyExt64/2016-06-23-R1/ EDIT: Now you can buy and sell things but it's far from perfect https://osamelahora.cz/MyExt64/2016-06-23-R2/
  9. Fortunatelly these crashes are not invisible, they're clearly visible in LinError.txt It would be worse if you manage to somehow corrupt stack or heap or something...
  10. Thanks :) So many things to test and fix :)) But if anyone got more, don't hesitate to write :)
  11. Thanks a lot! 1hp bug - is it this one http://boards.lineage2.com/archive/index.php/t-201517.html ? forever open SOD - can you please remember more details?
  12. I can't simply replace that wchar_t* in CSharedCreatureData structure to std::wstring so GetName() would have to create a copy every time you access it...
  13. I use templates when I need templates, not when I see opportunity to use templates :) I'd like to use std::wstring instead but I can't - do you even know what extender is and how it works? I have to do dangerous stuff there...
  14. New version https://osamelahora.cz/MyExt64/2016-06-19-R1/ What's new: bugfixes and Gracia Epilogue skill enchanting
  15. Wow, thanks :) If you find anything more, please let me know :)
  16. CLog is in fact from l2server itself - now I have only 2 functions and 2 constants, not much, but I don't need more for now I get some inspiration from OSIE (packet handler hooking etc), some inspiration from c4-based extenders I've found and of course some inspiration from l2server itself, but I don't copy code as is (except some tiny pieces of machine code in hex which probably can't be written better)
  17. I'm writing a brand new Gracia Final/Epilogue extender, if you want to try it or have a look at sources, I'll put some development versions here: it's hosted on bitbucket. https://osamelahora.cz/MyExt64/ https://bitbucket.org/l2shrine/extender-public Now it does almost nothing but I'll add some new stuff over time... I'm adding new stuff over time :) MyExt64 What is MyExt64 MyExt64 is new opensource extender for l2off Gracia Final server (l2_off_gracia_final) supporting Gracia Final and Gracia Epilogue chronicles. It uses some knowledge from OSIE extender, MXC extender and maybe other extenders. Features Supports protocols 83 (Gracia Final) and 152 (Gracia Epilogue update 1) Protocol 87 (Gracia Final update 1) should be working but is not tested Supports Gracia Epilogue skill enchanting + buy/sell Supports Gracia Epilogue refund Supports Gracia Epilogue mail system Bunch of bugfixes (some ported from OSIE, some ported from MXC extender) Voice commands - offline trade, experience gain on/off, server time, online player count Configurable item enchant (safe/chances) Custom drop/spoil rate algorithm Custom event drop algorithm (flat chance based) Players in the same command channel are treated as allies Configurable max level for main/subclass Global shout/trade Vitality multiplier Configurable clan restriction (penalties) Configurable buff slot count + max divine inspiration bonus Configurable vitality level ranges Configurable autoloot system Embedded Gracia Final AI (NASC) compiler How to use it If you're not familiar with l2off, it will probably require learning some stuff (MXC forum is a good start). To just use the last build, copy following files from server folder in this repository to your server folder: * MyExt64.dll - main extender file * MyExt64.ini - extender configuration * MyExt64Loader.exe - extender loader and run the server via MyExt64Loader.exe If you're more experienced with messing around PE files, you can add MyExt64.dll to import table of L2Server.exe and add call to DllMain. How to compile it You should get Visual Studio 2005. Maybe it would be possible to compile it on some newer Visual Studio, but you'll have to define your own templates for std::vector and std::map (and possibly more containers) to match memory layout of their VS2005 versions. MyExt64 has no external dependencies and requires only standard libraries for Windows development.
  18. Hi, on some machines I encounter this problem: 06/17/2016 04:36:05.828, [NO ERROR] JobType: 6 Duration: 30/30sec 06/17/2016 04:36:05.828, Problem occurred in Loading Declared War 06/17/2016 04:36:35.827, [NO ERROR] JobType: 8 Duration: 30/30sec 06/17/2016 04:36:35.827, Problem occurred in Loading Pledge [1] 06/17/2016 04:36:35.829, Problem occurred in Loading Pledge [2] Tried to analyze what's wrong and I think it's related somehow to some IO threads, that don't execute as expected (it seems like there's some thing that prevents packets coming from cached to be processed). For time reasons, I stopped with this and wrote simple workaround involving some function hooking, mutexes and conditional variables, so all those operations run in threads which are fine and "bad" threads only wait on conditional variable until "alternative" thread finishes its work. So now everything loads fine: 06/15/2016 00:05:18.083, [NO ERROR] JobType: 6 Duration: 0/30sec 06/15/2016 00:05:18.124, [NO ERROR] JobType: 8 Duration: 0/600sec Does anyone encounter the same problem? Did anyone come with a better solution (or at least better analysis)?
  19. DoS exploit: http://www.maxcheaters.com/topic/203384-crashing-l2off-server-with-requestexenchantskillinfo-packet/ Fix: hook function 0x44BD0C (at 0x91A6C8 and maybe other places): void* __cdecl fix44BD0C(void *self, UINT32 &type) { typedef void* (__cdecl *t)(void*, UINT32&); t f = reinterpret_cast<t>(0x44BD0C); if (type > 3) { type = 0; } return f(self, type); } EDIT: Relevant addresses: 0x75374C+0xC3 0x7538C4+0xB5 0x7539CC+0xCB 0x91A5EC+0xDC 0x91A734+0xDC 0x91A87C+0xB8 0x91A984+0xB8 0x91AA8C+0xB8 0x91AB94+0xB8
  20. Hi, not tested on AdvExt64/Vanganth but crashes unpatched l2off revision 83 (doesn't work with protocol version 148 or higher). It's very simple, you go to NPC where you enchant skills, open skill enchanting and then just send RequestExEnchantSkillInfo packet with invalid enchantType (valid values are 0-3): D0 0E 00 04 00 00 00 01 00 00 00 65 00 00 00 D0 : (uint8) ex packet 0E 00 : (uint16) RequestExEnchantSkillInfo 04 00 00 00 : (uint32) enchantType (4) 01 00 00 00 : (uint32) skillId (1) 65 00 00 00 : (uint32) skillLevel (101) If the server is vulnerable, it will crash immediatelly. Fix here: http://www.maxcheaters.com/topic/203385-fix-for-gf83-crash-with-requestexenchantskillinfo/ so be quick :)
×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock