![]() What sets Macs apart from Windows machines is their design strategy, which is centered on usability. They can also be set up to run Windows via Boot Camp or by virtualization, and by extension, Windows games.įrom 2006 to 2020, Macs were virtually identical in many ways to Windows machines, as they used many of the same types of internal components. All Macs from 1998 to the present run a Unix-based operating system known as macOS (previously OS X). The problem is, CommonCrypto also works only by interpreting the data only inīig endian.Macintosh, or simply Mac, is a line of personal computers built and sold by Apple Inc. Way probably makes the most sense, and maybe it could end up a bit faster than There, and I’m not afraid of calling C functions in my Swift, so doing it this Only thing left now is to try to reimplement this without having a fork of aĬryptography library in my repository. I modify the UInt32 extension to treat the input as little endian, and voila! Not comfortable deriving any code from it, so this is all temporary. License for CryptoSwift is weird and seemingly nonstandard, so I’m My unit test pass well after midnight, I fork the CryptoSwift code byĮssentially copying its Blowfish class and other needed files directly into my No wonder it doesn’t work! Just to test my theory, and in desperation to see “A little-endian system, … stores the least-significant byte at the It will interpret the 4 bytes in each half of each block as being little This means that, when running on a little endian machine, such as my Intel Mac, Real Windows, so perhaps it’s in wine/dlls/kernel32?ĭWORD WINAPI DECLSPEC_HOTPATCH GetTickCount ( void ) We know the function is provided by kernel32.dll in Implement it? Thankfully, Wine is open source, so let’s crack open that sourceĬode and get sleuthing. We know that the game will call GetTickCount() in Wine, so how does Wine Keys won’t match and the game won’t be able to decrypt the arguments. The exact semantics of how it works has toīe identical to whatever the Wine shipped with FFXIV for Mac does, otherwise the Well, that’s a problem, it’s easy enough for XIVLauncher to simply DllImportįrom kernel32 to call the exact same underlying function that FFXIV itself Of milliseconds since the system was started. GetTickCount is a function provided by kernel32.dll, which gets the number Simple matter of just copying what they’ve done, right? Dealing with GetTickCountĪs per the XIV Dev docs, the plaintext arguments are first encrypted usingīlowfish, using GetTickCount() & 0xFFFF0000 as the encryption key.Īccording to the Windows developer documentation, Works, plus XIVLauncher already exists, and works. Thankfully, someĮnterprising developers have already documented how this format This whole mess is what we are going to attempt to reimplement. **sqex0003GLBqsICCnUUr1zHEXvdQZUE-k385enBr_CALwmVqQbuVPSuvbjJlbOvdY1VxxfYsl_l1aNT7LOqY1hXgMFApoeNwsc9knIUdWVWhV7yN_Y-fWjlwbN-IHtqp1Yr_NmtCN9W4CyB7Cn3asasHYWjuLT4KZDY_1JC8sluramSAH3csIL6xvhdkJA1_QoQclBco327gI6s-7SzfhWpqkfXinp0ZiDaufVOoCByrYyDYvyoykEmcOZcgEU81dMCUM_xlS8Fz6MXXkaRhFt3Y0fxQ_M4H0UUJnBRF15wb7Ayw0wQF6tFnwn52b4G36S6nG_wv3aXC-yVZZ_HPTbaaCW9aSefxy1xv5yTTTgC2d5vkSGdMaInqdHkQ7FcNhfZr9jlVfcWRNnPveFijgBG2rb7lWYUESWOBpTTp**// ![]() ![]() Running you will see something like this: ![]() If you load up Process Explorer on a Windows machine while FFXIV is The default launcher only allows you to save your username. On macOS username + password combos can be safely and securely stored in the The experience is extremely jarring and out of place on a Mac. The default launcher, already largely just a Web View, also runs in Wine, so That said, the main things my launcher brings to the table are: A Native macOS User Interface Security policies and the fact that the game runs in Wine. Of its features would be very difficult to implement in macOS due to its onerous Have the time to dedicate to reimplementing its enormous feature set, plus some My launcher isn’t anywhere near as featureful as XIVLauncher. In this post, I’ll do a deep dive into my journey of discovery to One of the more interesting challenges in doing so was dealing with how theįFXIV Launcher passes arguments between the launcher and the main gameĮxecutable. patcher for FFXIV is pretty famously disliked, and for Windows users there’s Version is essentially an identical build of the Windows version, except it FINAL FANTASY XIV is an MMORPG for Windows, macOS, and PlayStation.
0 Comments
Leave a Reply. |