Orion2 Client - A Universal Localhost

Page 1 of 2 12 LastLast
Results 1 to 15 of 19
  1. #1
    Moderator Eric is online now
    ModeratorRank
    Jan 2010 Join Date
    DEV CityLocation
    3,185Posts

    Orion2 Client - A Universal Localhost

    This is the Orion2 Client - A Universal Localhost for MapleStory 2.

    MapleStory 2 functions the same way as MapleStory does, but with less client protection. This means, by hooking Winsock, we're able to redirect Nexon's IPs to our own. MapleStory 2 should also use the same NMCO, so you can hook it too if necessary (we don't though). Since we're able to do all of this, I've simply updated my old OrionDLL from MapleStory into this project!

    Here's some important things to know:
    - The client does not contain IP checks, CRC checks, and other various crap that MapleStory clients do (this means it's a lot easier to do memory edits <3)
    - The client accepts custom IP and Port arguments, so we can send it to our own IP without actually having to hook winsock (since there's no IP checks, it won't crash us like MapleStory does)
    - In order to connect to your server, you need to first bypass a static function that I call "IsNXLEnabled". This function is what will enable the use of IP and Port arguments, and has to be bypassed for the client to open. My AoBs have worked since the beginning of time so this shouldn't be a problem, but Nexon has been doing a lot of updates so it's only a matter of time until they're ineffective.
    - Nexon supports old test server functionality that you can re-enable, such as accessing the login screen with a username and password box rather than auto-login from the nexon launcher. Also, you can enable the world selection screen (which is now useless with regions in effect).
    - The IP of the client is currently hard-coded to 127.0.0.1 in Orion.cpp (RedirectProcess), I forget why I didn't concat the IP from Orion.h but I'll change it eventually.
    - You should be able to log reports of exceptions when the client crashes thanks to @Darter and his sick hooks
    - Injecting the DLL is explained on the git, just add the dummy import to NxCharacter.dll's import table and rebuild it.

    Source code: https://github.com/EricSoftTM/Orion2-Client


  2. #2
    Eternal Slumber Meteorite is offline
    True MemberRank
    Jun 2008 Join Date
    872Posts

    Re: Orion2 Client - A Universal Localhost

    Could you go into some detail regarding the exception logging hook mechanism?
    Spoiler:
    Quote Originally Posted by Alcohol View Post
    Quote Originally Posted by jahngd View Post
    Um can anyone tell me nexons ip or pm?
    Theres is like blocked its 127.0.0.1 i think that is theirs, i belive....

  3. #3
    Account Upgraded | Title Enabled! Darter is offline
    True MemberRank
    Feb 2008 Join Date
    253Posts

    Re: Orion2 Client - A Universal Localhost

    LOOOOL AuthHook still works 5 years later ahahahaha even the nmco hooks :xdf:

    ------------

    Quote Originally Posted by Meteorite View Post
    Could you go into some detail regarding the exception logging hook mechanism?
    Nothing much to go into details about. Just adding a vectored exception handler and printing basic info about it ( throw address, CMSException names ). Just makes debugging easier since you know where to look.

  4. #4
    Dragonica Guy Spidpex is offline
    True MemberRank
    May 2014 Join Date
    NorwayLocation
    204Posts

    Re: Orion2 Client - A Universal Localhost

    Where can i find this orion2.dll file? I can't seem to locate it :S

  5. #5
    Moderator Eric is online now
    ModeratorRank
    Jan 2010 Join Date
    DEV CityLocation
    3,185Posts

    Re: Orion2 Client - A Universal Localhost

    Quote Originally Posted by Semitron View Post
    Where can i find this orion2.dll file? I can't seem to locate it :S
    You're supposed to compile this project to generate the Orion2.dll. This project doesn't currently support any release builds, so you're going to need to build this one yourself. Once you've gotten Orion2.dll, you'll need to read the quick how-to on the git to add it to NxCharacter's import table.

  6. #6
    Newbie posterboy is offline
    MemberRank
    Apr 2019 Join Date
    3Posts

    Re: Orion2 Client - A Universal Localhost

    Quote Originally Posted by Eric View Post
    You're supposed to compile this project to generate the Orion2.dll. This project doesn't currently support any release builds, so you're going to need to build this one yourself. Once you've gotten Orion2.dll, you'll need to read the quick how-to on the git to add it to NxCharacter's import table.
    Hi Eric,

    I've compiled the repo and gotten the Orion2.dll, but when I try to replace the original MS2's NxCharacter.dll with the new one, I can't open up the client. It gives the error "Cannot fine 'NxCharacter.dll'. Please, re-install this application". Any ideas why? Do I need to do something to update the orion2 client to the latest version of ms2?

    Thanks a bunch :)

  7. #7
    Moderator Eric is online now
    ModeratorRank
    Jan 2010 Join Date
    DEV CityLocation
    3,185Posts

    Re: Orion2 Client - A Universal Localhost

    Quote Originally Posted by posterboy View Post
    Hi Eric,

    I've compiled the repo and gotten the Orion2.dll, but when I try to replace the original MS2's NxCharacter.dll with the new one, I can't open up the client. It gives the error "Cannot fine 'NxCharacter.dll'. Please, re-install this application". Any ideas why? Do I need to do something to update the orion2 client to the latest version of ms2?

    Thanks a bunch :)
    You're adding the Orion2 dummy imports to NxCharacter.dll through CFF Explorer, correct? Just making sure because renaming Orion2.dll -> NxCharacter.dll isn't what you're supposed to do. Also, make sure after you load the DLL and add Orion2's exports in CFF Explorer that you rebuild and then save. If that's what you're doing already, and it still throws the same error, then it's because the DllMain returned false (very weird). The only way my DLL will return false is if hooking something fails, and usually when that happens I send a message dialogue telling you that.

    I'll look into it myself on the latest MS2 client later today to see if it's something I need to fix or not, since if you were able to build the project I'd assume you know what you're doing enough to update the imports.

  8. #8
    Newbie posterboy is offline
    MemberRank
    Apr 2019 Join Date
    3Posts

    Re: Orion2 Client - A Universal Localhost

    Quote Originally Posted by Eric View Post
    You're adding the Orion2 dummy imports to NxCharacter.dll through CFF Explorer, correct? Just making sure because renaming Orion2.dll -> NxCharacter.dll isn't what you're supposed to do. Also, make sure after you load the DLL and add Orion2's exports in CFF Explorer that you rebuild and then save. If that's what you're doing already, and it still throws the same error, then it's because the DllMain returned false (very weird). The only way my DLL will return false is if hooking something fails, and usually when that happens I send a message dialogue telling you that.

    I'll look into it myself on the latest MS2 client later today to see if it's something I need to fix or not, since if you were able to build the project I'd assume you know what you're doing enough to update the imports.
    Yep! Adding the imports, rebuilding & saving over the old one.

    I figured that I might have done something wrong when compiling into the DLL, so I redownloaded and compiled again, but now I'm getting the following errors:


    Thanks for the help!

  9. #9
    Member Hoxia is offline
    MemberRank
    Feb 2016 Join Date
    29Posts

    Re: Orion2 Client - A Universal Localhost

    i just sended discord message about how nexon changed launch arguments.
    pls check
    Last edited by Hoxia; 02-10-19 at 12:41 PM.

  10. #10
    Moderator Eric is online now
    ModeratorRank
    Jan 2010 Join Date
    DEV CityLocation
    3,185Posts

    Re: Orion2 Client - A Universal Localhost

    Decided to touch this project again after a long, long while. I've committed to GitHub some cleanup, fixes, and updates to the source code.

    Here's some key changes:
    - Fixed Custom Window Names (no longer assigns the class name)
    - Implemented logging functions to simplify debugging
    - Fixed Forced Multi-Client (it now checks if MULTI_CLIENT is enabled before hooking CreateMutexA)
    - Disabled the GetCurrentDirectoryA hook (secondary bypass method) since the primary bypass will always work
    - Created CLIENT_PORT and CLIENT_LOCALE definitions so you can configure your own port/locale
    - Rewrote RedirectProcess to utilize the defined CLIENT_IP/CLIENT_PORT/CLIENT_LOCALE values when sending the target
    - Fixed RedirectProcess args for modern versions (it's now <Target.exe> <IP> <Port> -ip -port --nxapp=nxl --lc=<Locale>) thanks to @Hoxia
    - Updated the NXL Bypass AoB to work for v113 (latest MS2 ver). Just like the older clients, the AoB scan requires 2 skips again instead of 1.

    You can find this new commit here.

  11. #11
    Newbie posterboy is offline
    MemberRank
    Apr 2019 Join Date
    3Posts

    Re: Orion2 Client - A Universal Localhost

    Hey Eric, thanks for all the effort you're putting into this.

    I'm still having trouble with the NxCharacter file, specifically still getting the error "Cannot fine 'NxCharacter.dll'" when I try to launch.

    I have built the project without any errors, and followed the instructions exactly to add the Orion2.dll imports to the NxCharacter.dll file, however I'm still unable to launch. Any assistance is much appreciated.

    Thanks!

  12. #12
    Registered Ochi is offline
    MemberRank
    Mar 2016 Join Date
    19Posts

    Re: Orion2 Client - A Universal Localhost

    In case anyone else encounters these issues.

    Quote Originally Posted by posterboy View Post
    Yep! Adding the imports, rebuilding & saving over the old one.

    I figured that I might have done something wrong when compiling into the DLL, so I redownloaded and compiled again, but now I'm getting the following errors:


    Thanks for the help!
    Create a new function and copy the ASM into the function. Then call the new function from the lambda. Apparently this is due to a security risk that was fixed in VS2017.
    Quote Originally Posted by posterboy View Post
    Hey Eric, thanks for all the effort you're putting into this.

    I'm still having trouble with the NxCharacter file, specifically still getting the error "Cannot fine 'NxCharacter.dll'" when I try to launch.

    I have built the project without any errors, and followed the instructions exactly to add the Orion2.dll imports to the NxCharacter.dll file, however I'm still unable to launch. Any assistance is much appreciated.

    Thanks!
    Make sure to also copy Orion2.dll into your MapleStory2 directory.

  13. #13
    Moderator Eric is online now
    ModeratorRank
    Jan 2010 Join Date
    DEV CityLocation
    3,185Posts

    Re: Orion2 Client - A Universal Localhost

    @Ochi Thanks for pointing that out! If you wish to use macros in lambda's, you can always downgrade your SDK as well and rebuild the solution.

    This whole lambda issue is because we intend to virtualize and obfuscate our code with Themida, which basically all of you have no real use for. If you aren't intending to release a public server that you want to protect, then you can just comment out or remove the VM_START and VM_END macros in classes like WinSockHook that have them.

    On another note, I wanted to update this thread to mention that I have pushed a handful of changes to the Orion2 Client:
    - Updated the VEH (exception handler logging) -- added wide-character filters and thread name exception logging
    - Updated process redirection (fixed target startup paths and other arguments)
    - Fixed FindAoB (scan ranges caused exceptions to occur, size of AoB was not taken into account, and skip count was incorrectly handled)
    - Updated NXL Bypass (now works with the fixes applied to FindAoB)
    - Refactored the Orion2 injection method (no more thread routines, guaranteed to initialize 1st try and called at the top of CGameApp::InitInstance)
    - Fixed a bug that caused null IP's to occur, making WinSock connect to 0.0.0.0
    - Implemented a universal NGS bypass (if the NGS servers ever die or update, the MS2 client will still be able to launch now)
    - Implemented a Swear Filter bypass (when enabled, removes mapping of "banWord" files, allowing you to use swear words without being censored)

    I recommend updating to the latest revision of the client for these fixes.

  14. #14
    Registered Ochi is offline
    MemberRank
    Mar 2016 Join Date
    19Posts

    Re: Orion2 Client - A Universal Localhost

    I updated to the new version and still get some errors. Are these expected?


  15. #15
    Moderator Eric is online now
    ModeratorRank
    Jan 2010 Join Date
    DEV CityLocation
    3,185Posts

    Re: Orion2 Client - A Universal Localhost

    Quote Originally Posted by Ochi View Post
    I updated to the new version and still get some errors. Are these expected?

    Yes those are normal. It's just a hidden thread where they are changing the name and intentionally throwing RaiseException. I think the NotFoundException might be because of Swear Filter (client trying to find banWord xml's), which is also normal.



Page 1 of 2 12 LastLast

Advertisement