Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General Questions #4

Open
ghost opened this issue Oct 2, 2020 · 10 comments
Open

General Questions #4

ghost opened this issue Oct 2, 2020 · 10 comments

Comments

@ghost
Copy link

ghost commented Oct 2, 2020

Forgive me if this sounds trivial, but how did you know what to modify in the first place to bypass Lunar restrictions and how are you going to find out what to modify to emulate a Lunar logo next to the nametag that everyone can see?

I haven't learned a hint of java so I'm also unfamiliar with the common conventions that it has.

Again, please forgive me if these questions were trivial, but I wish to know the answer.

@levi-nz
Copy link
Owner

levi-nz commented Oct 3, 2020

Lunar Client's anti-cheat is honestly pretty simple and easily bypassable. There's a video somewhere of another developer that created a bypass of it within the last 7-14 days cheating on protected queues on their practice using 3.4+ reach, autoclicking, and some other things all in ranked and didn't get banned for 1-2+ seasons. I believe the account he used still isn't banned. AAL and whatever cheat prevention/detection they use is honestly a joke considering how large their client is.

I wrote a Google Doc back in June of how Lunar and their partnered servers tell if a player has the anti-cheat enabled or not. I never used it, maybe it will be help to some people though. https://docs.google.com/document/d/1Zta22csC_1bOu4stNfiH4poiYZA0cNusKbnDC8p7Yzk/edit?usp=sharing

This project was only ever intended to bypass public API's other people have made. I saw that back around mid 2019 I think it must've been, people were creating these API's for their own servers, some were leaked, some were intentionally open-sourced. The only way they check was with a simple plugin message (piece of data the client can send to the server.) They were advertising their servers as "Lunar Client protected" when their server was never officially supported by Lunar Client and never had proper protection at all. These were mainly UHC servers I was competing with, so I took the shot at eliminating lying competition trying to advertise "Lunar protected UHC matches". It was just coincidence that this also worked on Lunar itself (although doesn't bypass the anti-cheat because that was never my intention. The things that the server does to verify if a player actually has the anti-cheat enabled is a whole different story, check the doc link above.)

Some things have changed now, as they now have a logo next to people's username when another player is using the client. I haven't bothered updating this mod for that yet though, honestly not even sure if it works already, it may, but I doubt it.

I will get around to reversing their client when I get back into Minecraft-related development eventually, then I'll update this mod.

As far as learning Java goes, there are plenty of tutorials. It depends if you already know a language or not. Java is very similar to C in terms of its syntax. The code in this project is mainly bytecode though, which is Java's instruction set (what Java code compiles down to, which is executed by the Java Virtual Machine.) This mod edits the instructions of specific classes before they are loaded by the JVM (Java Virtual Machine) at runtime (when the program/Minecraft is running) to change some things required to spoof it, hence why this mod doesn't support 1.8 (at least right now) because the class/method names in each version are different.

There's a Wikipedia page with all the bytecode instructions and what they do, but if you don't know Java you most likely won't understand it unless you've worked with ASM (Assembly) or other low-level languages before. https://en.wikipedia.org/wiki/Java_bytecode_instruction_listings

@gabrielriex
Copy link

I love how comprehensive and educating you are on projects you have no profit off of and continue to reply to people’s questions. Thank you for providing links and information.

Could you possibly link me to the video you were referencing about bypassing the lunar anti cheat?

Moreover, similar to other people, id like this mod for 1.8.9, if I were to pay a developer to port it, what would you say is a reasonable price to use port it? I have little knowledge on how difficult this would be so I’m wondering if I’m underpaying or overpaying.

Thank you!

@levi-nz
Copy link
Owner

levi-nz commented Oct 5, 2020

I'll try find the video.

Porting to 1.8.9 (or any other version) should only require changing the class/field/method references in the transformer class. At least with 1.7/1.8, the only difference in the class I modify is the names of the classes/fields/methods. If you're wanting to port to a newer version, like 1.9 or higher, that may require actual work. Considering all they'd have to do is find the correct mappings and change some string (text) values in one class, I wouldn't pay more than $15. Finding the mappings is easy, there's a tool for it somewhere, forgot what it's called. If you don't use the tool you can always decompile the client yourself and find them.

@ghost
Copy link
Author

ghost commented Oct 6, 2020

Thank you for taking the time to write such an in-depth reply.

I've found the few mappings that were changed are:

handleJoinGame			--> a		from a
S01PacketJoinGame		--> gt		from hd
NetHandlerPlayClient		--> bcy		from bjb
netManager			--> c		from e
NetworkManager			--> ek		from ej
C17PacketCustomPayload		--> im		from iz
Packet				--> ff		from ft
dispatchPacket			--> a		from a    
/scheduleOutboundPacket?    

and the program you referenced in an earlier post is
https://github.com/bspkrs/MCPMappingViewer/

For dispatchPacket, the source has it as 'a', but when I looked in 1.7.10, it was 'b', so I'm not sure about it. From what I'm thinking, it could also be scheduleOutboundPacket which is 'a', but not included in 1.8.9.

@levi-nz
Copy link
Owner

levi-nz commented Oct 7, 2020

Thanks for all the mappings. I have basically completed the port but there's another issue as the "FMLCorePlugin" class was removed in 1.8 Forge. Trying to find a work-around.

@glamingles
Copy link

Sorry to ping again but is the mod meant to be able to display if other people have lunar client? It only spoofs me but doesnt let me see if other ppl have the client, not sure if its a bug or just not implemented yet

@levi-nz
Copy link
Owner

levi-nz commented Oct 8, 2020

@glamingles In the latest release, the Lunar Client icon next to your username is not implemented. This wasn't actually a feature in Lunar Client at the time of the latest release, but once I release the 1.8.9 port I will look into adding it.

@gabrielriex
Copy link

Hey, did you manage to find the video you mentioned before? I’m really curious about Lunar’s AAL

@Carterace8
Copy link

Could you please make it so you can see people's lunar logo/ and people can see yours. That would be really cool because people usually go off if you have the logo by your name.

@gabrielriex
Copy link

gabrielriex commented Nov 19, 2020

Could you please make it so you can see people's lunar logo/ and people can see yours. That would be really cool because people usually go off if you have the logo by your name.

I think Lunar updated something with 1.7. As of now, if you use the mod in 1.7, only 1.8 players will be able to tell you have the tag next to the name. In 1.7, they added the tag next to the name but unfortunately they can see who is using the spoofer as there’s no tag next to the name

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants