Final part of my series here getting ShowEQ working. Thanks again BlueAdept.
https://medium.com/@Packet99/decrypt...s-7248acb1797b
That was a great write up. I actually learned quite a bit from it. I wish I had the time to learn more about it. I never did learn about the op codes. I could do the struct changes in the past. It was pretty easy to do a dump and see the changes.
So the key is only introduced when you log on and doesn't change when you zone? For a little while, Sony had added something similar to EQ except when you zoned, it gave a new key. They used to have to decrypt it and then backfill the spawns in SEQ. The issue for EQ was that it was causing some additional lag along with some other issues and then during one patch, they just got rid of the whole thing. I believe that was during luclin era.
I would welcome any guides or tips you can do. It seems you have a pretty in depth knowledge of how SEQ works and of the EQ packets.
I do have a lot of questions for you, but most of them are more curiosity than substance. I am going to start a new thread with some questions for the whole SEQ community regarding its future. Have a look and see if any of it peaks an interest.
Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz
ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#
Famous Quotes:
Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)
Razzle: I showeq my wife
The key is sent whenever you receive a OP_SendLoginInfo packet. These packets happen on first log in, but also when you zone. I've seen the key change sometimes too, but generally it's the same for an entire session.
Interesting you mention the other encryption, I did see references to a decode key in the ShowEQ code base, however I couldn't figure out where it was used. Makes sense if the functionality was removed.
Feel free to PM me any other curiosities
Unfortunately I dont have the libeq.a files from back then nor do I have the source for the libeq.cpp for the decryption back then. I did not have that kind of access back then. The SVN should have source from that era, but the decryption routines were pulled out.
Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz
ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#
Famous Quotes:
Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)
Razzle: I showeq my wife
The last time people got it working with p99, they kept changing it since they really didn't want people using SEQ with it. Slippery_Slope wasn't sure he wanted to share the fix at all since the last time they kept breaking it until they abandoned the project. We both came up with a solution of a guide, without giving the exact fix, with enough information to get it working if a person really wanted it. I think he did a wonderful job of explaining it and, with a bit of work and a bit of coding, I think almost anyone could get it working.
He didn't have to do anything for anyone, but he wrote an outstanding article about it to help those who help themselves. I am sure p99 noticed this thread and, as far as I know, have not elected to change the encryption even after this was published.
Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz
ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#
Famous Quotes:
Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)
Razzle: I showeq my wife
After looking at this thread again I decided to try it myself. It took me 3 weeks to get it working. I am not a developer, though I work in IT and just code on the side in higher languages (java, php, mql) from time to time. A big fan of classic EQ I had the motivation to achieve that goal of a working ShowEQ in p99.
I went through slippery_slopes' guide and step by step I got closer and closer. The guide is outstanding and I can just emphasize to read it thoroughly again and again.
https://medium.com/@Packet99/decrypt...s-7248acb1797b
Especially page 4. It is all there, some things you have to find out yourself, some things you will already find in the ShowEQ code base for some things you have to be creative but there are many ways to implement it.
Then for the steps 1. Configuration, 2. Struct setup definition, 3. Session handling, 4. Struct usage and decryption:
The first 2 steps of Slippery's guide are easy, but the devil is in the detail of C++ especially in the pointer and reference system of C++ AND the very rigid const casting.
So Part 3 is the trickiest part while part 4 is manageable with some googling for a working rotating XOR encryption/decryption (hint: geeks4geeks) and once you understood how pointers are passed and used.
Part 3 took me long and thanks to some help I made it work.
After all I think there are perhaps easier and more crude ways to get it to run, but that guide is pretty solid.
Will I share the code? No. Then why do I even post this whole thing?
Because I encourage you to solve it yourself if you really wanna do it. It is possible. And it provides you with the ability to also start your own little code projects if you want that.
So for anyone who wants to get it working as well, do yourself a favor and read how pointer and reference is defined, passed and used in C++.
And understand how you can const cast and why you cannot pass const to nonconst.
I thought I can avoid that and it made my life hard as hell. Nights and nights of try and error and frustration. But once I understood it, it was much more smooth and easy to debug and code.
Anyway I would call it a success story and it proved a simple fact for a general aspects in life. "If you really want something, you have to get your ass up and start working on it yourself." And for this particular example you do NOT have to be a crack in C++ to achieve it. I am not and I will never be. If you never seen code, it would probably take you 2 more weeks. But it is manageable.
This here also helped me a lot to execute code and check if it is working, especially when decrypting:
https://www.onlinegdb.com/
Last edited by VallonZeker; 06-19-2019 at 12:44 PM.
Great post. Thanks.
Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz
ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#
Famous Quotes:
Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)
Razzle: I showeq my wife
Up late, kids at Grandma's, wife asleep with the baby - thought I would plug around in P99 and thought I would check back here to see what if anything has been happening w/ SEQ and P99. I went through that guide, and it would be neat to try and actually read/edit some code to get SEQ working. I've got 7 years in IT now, currently working as a VoIP engineer, and have no coding experience (I can write them .bat files though LOL - maybe even Google some .vbs!) Between the last few comments this has encouraged me to try and see how far I can get. Clearly everything up to decompiling/code related stuff I'm starting at square 0.
Thanks for the encouragement! This might be a good excuse to reach out to the programmers I worked with at my last job.
Anyone who has actually got it working with p99, I am not stopping you from posting your code, if you wish. I just want everyone to know that the last time this was working, they actively made changes to break it. As far as I know, since I do not play on p99, they have not made any changes to the encryption algorithms since this was posted.
Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz
ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#
Famous Quotes:
Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)
Razzle: I showeq my wife
Ha, that thing was fun to read. Definitely memory lane. I'm glad someone appreciates all the comments I put in while I was working through the major protocol changes on Zaphod's IRC back in the day with Doodman and ksmith.
As long as the client is compromised, protecting everquest is a losing battle. You just need engaged people to keep up with their changes, though. It's always cool to me that this project keeps chugging thanks to BA and Newby and Fransick and it makes me smile to know all the work that went into the protocol layer for showeq is useful many years later!
Thanks goes out to you purple and all the other Devs. Many people have stepped up over time to keep SEQ working. Every time someone has retired, someone always stepped up to fill the gaps. It is hard to believe that this project is almost 20 years old. The top honors go to Ashran and Megaton for creating SEQ and for Ratt picking it up after they retired. With out Ratt, Sony would have buried this project. He dealt with all the legal threats and still provides the hosting for the project. As for myself, even though I was a user from almost the start, I took over management of the project when Ratt retired because I use it and I am selfish because I didnt want to give it up. So I did what was necessary to keep people in line, do what I can and to try to keep it running.
You know it is one thing to keep a game running for 20 years because it is still making money. It is another thing to keep an opensource project, that doesnt generate money, going. My hats off to every single person who used, helped, or even just lurked. With out the user base, this project would have died a long time ago.
I really think I owe SEQ my thanks because I dont know if I would have learned linux without it. I now work at a job where I only support Red Hat linux users.
Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz
ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#
Famous Quotes:
Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)
Razzle: I showeq my wife
Soo true!! Back in 2001 SEQ was the reason to install my first Linux distri. I had no clue but Boy did that exercice help me in my study, grade and later my own business. It was one of the starting stones of a foundation for a carreer.
I still remember my first ./configure, make, make install. I had absolutely no clue what I was doing, but it worked and I felt like a supergenius.
I really think I owe SEQ my thanks because I dont know if I would have learned linux without it. I now work at a job where I only support Red Hat linux users.
Last edited by VallonZeker; 06-26-2019 at 12:48 AM.
There are currently 2 users browsing this thread. (0 members and 2 guests)