Minecraft, But It's Reverse Engineered...

  Рет қаралды 138,501

LiveOverflow

LiveOverflow

Күн бұрын

In this episode we learn how Minecraft servers are implemented by looking at PaperMC and tracing the dependencies. Turns out the custom Minecraft servers rely on decompiling the server source code! It's insane what this Minecraft community has created.
Paper Server: github.com/PaperMC/Paper
Minecraft EULA: www.minecraft.net/en-us/eula
Fabric Intermediary Mappings: github.com/FabricMC/intermediary
Fabric Yarn Mappings: github.com/FabricMC/yarn/tree...
Grab the files: github.com/LiveOverflow/minec...
Minecraft:HACKED Playlist: • Minecraft:HACKED
Episode 02:
00:00 - Let's Play: Map Exploration
02:47 - How Does Minecraft Help With Hacking?
06:06 - Introduction to Minecraft Servers
09:13 - Minecraft Reverse Engineering
17:03 - Let's Play: The Return to Base
Music:
C418 - Minecraft Soundtrack
=[ ❤️ Support ]=
→ per Video: / liveoverflow
→ per Month: / @liveoverflow
=[ 🐕 Social ]=
→ Twitter: / liveoverflow
→ Instagram: / liveoverflow
→ Blog: liveoverflow.com/
→ Subreddit: / liveoverflow
→ Facebook: / liveoverflow

Пікірлер: 298
@peacefulexistence_
@peacefulexistence_ 2 жыл бұрын
A few more details about modding: There's two major modloaders, forge and fabric. Fabric is relatively new. Both Forge and Fabric have (had?) their own mappings, which are different. Mojang also released the official ones, however due to legal and technical (they weren't complete) issues, they couldn't be used until a few years after their release. Forge mappings are under a more restrictive license, so due to legal stuff, if you looked onto Forge mappings, you couldn't contribute to Fabric mappings. Same for mojang mappings, if you looked at them you couldn't contribute to both forge or fabric. Forge currently uses the mojang mappings, so the legal and technical stuff seems to have been resolved, I haven't been closely following. The ways that Forge and Fabric work is actually different. While Forge decompiles the source code, applies patches and then recompiles, Fabric manipulates the bytecode of the jar (Afaik, it's long since I checked). Both load jar files from a set directory and inject them into the classpath. While Forge provides a framework, Fabric *just* injects jar files. There's also the old method of modding, which involves replacing the classes in the minecraft jar, which also means that you cannot have many mods at once. This method is long dead, however. I cannot provide details for servers / plugins, because I only worked with Forge and Fabric. Minecraft modding is fascinating, and it gets even crazier the deeper you dive in, so good luck!
@cheos
@cheos 2 жыл бұрын
Gonna append to this with a little extra information: Regarding the legal stuff with mojang mappings: There are still a lot of uncertainties but both forge and fabric now provide them in good faith as mojang has stated multiple times that the use of official mappings is allowed even though the actual legal text is pretty unclear in that regard. Then there is still something to say about replacing actual classes: OptiFine This old piece of code still does something like replacing Minecraft classes - at least when installed directly and not loaded through forge (or fabric when using OptiFine + OptiFabric). By now there are way better alternatives of OptiFine out there (like Sodium + Iris for fabric or Magnesium + Oculus for forge), but i won't go too deep talking about that stuff here. So then there's just one thing left. Servers / Plugins. In the beginning there was (just like with modding) the method of replacing class files. Then, CraftBukkit came - it is mostly referred to as Bukkit now, though they are not exactly the same system (it's complicated...) - CraftBukkit implemented a plugin loader and an API for said plugins to use. Even though direct server code access was and still is possible, it was and is to this day, strongly discouraged. With Minecraft 1.8 around the corner, the developer of (Craft)Bukkit, MD-5, decided to build an all-new system on top of Bukkit, Spigot. Spigot brought many improvements with it and was mostly intended as a replacement of Bukkit. Even though Spigot was available, Bukkit builds were still used until pretty recent versions, where the build system was changed to no longer output both Bukkit and Spigot jars, but only the Spigot ones. This was probably a change for the better as Spigot literally is just an improved version of Bukkit. Then there's Paper, a spigot fork originally created by Aikar, now maintained by a large community. It is basically spigot, but provides a vastly extended and overhauled API while still being compatible with all Spigot plugins. Paper also provides many more features, optimizations and config options as compared to Spigot. It is now probably the most used Minecraft server software. Purpur, a pretty unknown fork of Paper exists too, but i don't think it will ever overtake any of it's alternatives such as Spigot or Paper. With BungeeCord, Waterfall and Velocity, there is also quite a number of Minecraft server proxies. These are all built independently from any Minecraft server. All provide a plugin loader + API. Out of the three, BungeeCord (by MD-5) is probably the most popular with Waterfall being a fork of it just like Paper is of Spigot. Waterfall brings many improvements over BungeeCord, but is rarely used as far as i know. Velocity is not in any way connected to BungeeCord and was intended to vastly improve on existing Minecraft proxy systems - but i personally don't think it is worth to use as BungeeCord/Waterfall provides much better compatibility with Spigot/Paper servers. All of the proxies have their quirks, especially when it comes to forge and fabric servers. I think i've covered most things now except SpongeForge. Sponge(Forge) is basically a mix of Forge and Spigot, providing both forge mod and plugin support on the server side. Sponge is an honourable mention here because it brought the now commonly used (across both forge and fabric) mixin system to the light of day. So, i think that's it. If you managed to read through all of that and managed to understand it, then congrats! If you have any suggestions for improvement of any of the sentences above, add another reply and i'll get to fixing it as soon as i can :)
@schwingedeshaehers
@schwingedeshaehers 2 жыл бұрын
@@cheos I don't think purpur is so unknown as you think. on th mypet dc there where multiple cases of errors with Purpur.
@the-old-channel
@the-old-channel 2 жыл бұрын
@@cheos I think Fabric server deserves more attention. It’s just an official server, but with Fabric mod loader. So, you modify the behavior with Fabric Mods instead of Spigot Plugins. With the right setup this kind of servers can be even more optimized than Paper ones (with Lithium, for example or many other server-side optimization mods) It’s extremely popular in technical community since it does not change the game behavior by default (lots of technical stuff is broken on paper/spigot). If you are looking more into technical Minecraft, you might want to take a look at the Carpet Mod and its Scarpet scripting language.
@theepicblock1169
@theepicblock1169 2 жыл бұрын
Fabric uses Mixin, which injects java bytecode at runtime without needing decompilation. Would also recommend QuiltFlower instead of FernFlower which has some better decompilation. A Fabric dev environment is also quite easy to set up.
@NotFab
@NotFab 2 жыл бұрын
​@@cheos You are mostly correct, except around the (Craft)Bukkit and md_5 part, SpigotMC was a performance-optimized fork of Bukkit (originally CraftBukkit) created and maintained by md_5. Bukkit (on the other hand) was purchased/owned by mojang (md_5 may have been one of the many contributors but certainly it's not his project) - Mojang liked the idea and decided it was worth the price tag so the community always had it (the original owner was EvilSeph) - it remained an Open-Source project (under LGPL) and people continued to submit patches, however back in 2014 one of the developers of Bukkit (EvilSeph) decided to shut down the project (without any authority to do so, since he sold the project to Mojang and Mojang would continue to update it without him), however he caused panic in the community which eventually resulted in one of the other developers (Wolvereness?) getting fed up and issuing a DMCA takedown to both Bukkit and Spigot, since it contained code that he/she had wrote and the original license he/she thought governed the project was in fact void, since Bukkit was owned by Mojang and contained Mojang-owned code (the minecraft-server code). After everyone in the Bukkit team threw the towel and stopped developing the project, however md_5 consulted with his lawyers which gave him a greenlight and kept the project going by himself (and eventually some Bukkit developers), always updating Bukkit and then updating his own fork - Spigot which was made on top of Bukkit. This remains the case to the this day, and is why you can't download a .jar of the server anymore, you have to "compile" it yourself (via BuildTools). As for Sponge/SpongeForge, Sponge is just a new minecraft server implementation, not based on Bukkit at all (and incompatible with Bukkit-API plugins) that was created after this whole drama. SpongeForge is the Sponge server base with the Forge API/mod loader on top, providing the ability to mod servers in addition to plugins and is the modern alternative to Cauldron (Bukkit + Forge).
@Lucavon
@Lucavon 2 жыл бұрын
To expand on that old drama: Bukkit was the original modded server with a plugin API. It died when one of the maintainers who wrote one of the core systems caught wind that Mojang actually owns Bukkit, legally speaking, because they bought it. He was not happy that his free contributions were made to a project that was ultimately owned by the ones who made the game, so he'd essentially worked for them for free (bukkit was very popular, especially due to huge commercial minigame servers that used it, which themselves got people to buy Minecraft). So that developer filed a DMCA takedown to end Bukkit. The spigot team found a legal loophole to continue using the old code, at the expense of legally not being able to offer direct downloads, requiring people to build their own jar using the so called BuildTools. Later came paper, trying to fix some of spigot's issues. To be honest, I don't really like spigot. The devs have a bit of an attitude and aren't really all that open to community contributions that add new features and the like, most of the time at least. This is one of the problems paper aims to solve. I've personally contributed a feature to it and they've merged it, it would've been unthinkable with spigot. Well, to summarize: bukkit modifies the vanilla (unmodified) server, spigot expands bukkit, paper expands spigot. In addition, there's bungeecord, which is a proxy that you can use to more or less link several Minecraft servers that the player can switch between in-game simply by running /server (target), all without disconnecting and reconnecting. This was created by one of spigot's main people. Similar to the other spigot-paper situation, the paper people made their own fork based on it, named waterfall. Then there's also a separate project, geyser, which translates Minecraft Bedrock Edition (mobile, consoles, etc) packets to Java edition packets and vice versa, allowing bedrock players to join java servers. This is just what I remember, I didn't fact check, don't 100% believe what I say. It shouldn't be all wrong, though.
@thehydrogen
@thehydrogen 2 жыл бұрын
An important distinction to make is Bukkit/CraftBukkit. Bukkit refers to the Plugin API which is still in use for all server implementations - although expanded upon. CraftBukkit is the original server implementation, which has mostly been forgotten now to the bigger forks such as Spigot and later Paper.
@shivansh7152
@shivansh7152 2 жыл бұрын
Wow the geyser plugin/project is quite surprising. I remember 6 some years ago my main problem with Pocket Edition was the absolute lack of servers close to me (and well, the controls were bad for pvping, still are) This solves a ton of problems.
@Piklets
@Piklets 2 жыл бұрын
Adding on to geyser: There’s also geyser reversion, which essentially acts as a translator between Edu minecraft and geyser. Due to the way geyser add ons have changed, it doesn’t work with the latest geyser version - but running via version/via backwards on the Java server with the old geyser version lets it all work. The person who makes geyser reversion also operates an Aus MC server network - so for quite a while we were the only Java, Bedrock & Edu cross-play server. They’ve been pretty busy - but are planning to recode it with the new geyser add on system (or potentially completely decouple it - and act as it’s own proxy to the Bedrock protocol, which geyser can then translate to Java).
@Valery0p5
@Valery0p5 2 жыл бұрын
I've used Geyser during the pandemic and I loved it, since I only own the Android pocket edition version.
@SuperLlama53
@SuperLlama53 2 жыл бұрын
I made some of the first survival server mods back in 2010 before they had Bukkit or any obfuscation mappings so we had to do this stuff ourselves. Seeing JD-GUI displaying obfuscated Minecraft code again is nostalgic :D One time while trying to figure out how to spawn mobs for Runecraft, I found the chicken class based on its texture string and made it divide by zero in the constructor. This crashed the server when one spawned and gave me a stack trace back through the obfuscated code so I could find the code that spawned it. Then I made a joke patch that caused every block placed to become a chicken. I remember being surprised about the lack of language in the license agreement preventing this stuff too. Back in the early days Notch wrote his own short and readable license agreement by hand without any legalese. He did get mad when people distributed any unmodified classes or full jars but usually didn’t mind custom patches.
@sihmy9870
@sihmy9870 2 жыл бұрын
Imagine Live overflow and John Hammond as your class teacher 🔥
@nicosoftnt
@nicosoftnt 2 жыл бұрын
We would get along very well 😂
@愛
@愛 2 жыл бұрын
and FitMC
@seal4080
@seal4080 2 жыл бұрын
@@愛 🤨
@m8_981
@m8_981 2 жыл бұрын
@@愛 bruh
@gardedesombres3254
@gardedesombres3254 2 жыл бұрын
And cts
@yakovliam
@yakovliam 2 жыл бұрын
As a professional developer for Spigot/Paper Minecraft protocol projects, I applaud your explanations of how Minecraft and those projects work. I'd love to see you experiment even more with all of these concepts.
@aaaa-fi1dm
@aaaa-fi1dm 2 жыл бұрын
Loving the series so far. Also love the little detail with herobrine at 14:15.
@AsILetYouDie
@AsILetYouDie 2 жыл бұрын
And at 2:41
@aaaa-fi1dm
@aaaa-fi1dm 2 жыл бұрын
@@AsILetYouDie Haha nice eye didn't see that one.
@YigitSonmezer
@YigitSonmezer 2 жыл бұрын
@@AsILetYouDie where's Herobrine at 2:41 i can't see it
@AsILetYouDie
@AsILetYouDie 2 жыл бұрын
@@YigitSonmezer in the cave on the other side of the river
@eyetealer
@eyetealer 2 жыл бұрын
At 17:40 aswell, I also love the little detail at 02:06 "1/2 player sleeping". Herobrine might be back ;). Mojang also didn’t mention the „remove Herobrine“ part in the patchnotes since 1.17 (I think). They’ve done it every version as an easteregg :D. Btw: Happy Easter
@timoreo
@timoreo 2 жыл бұрын
FYI, the file you showed (at around 10:58 ) that jd-gui wasn't able to decompile, but fernflower could was marked as "synthetic" as you saw, that marking means that this class was generated by a compiler. Looking at the name it has a $ inside, this means it's actually an inner class, it looked like generated code from an Enum This marking tends to throw off some decompilers such as jd-gui that try to show the most 1:1 source code as the one that was compiled The biggest difference between yarn & official mappings is the license, i belive that yarn mappings were actually created *after* mojang released the official ones, but where as the officials have a bit of a restrictive license, yarn is CC0 (allows everything) As for the relations between the different "custom servers", it's a bit complicated, notably after the dmca of the github repo you saw, but basically Bukkit defines the "api" for plugins, CraftBukkit implements that API, Spigot applies patches to craftbukkit and bukkit, paper applies patches to spigot (and by extension, craftbukkit & bukkit)
@mooky44
@mooky44 2 жыл бұрын
u are smart wanna help me on my homework lol
@MBHDPRODUCTION
@MBHDPRODUCTION 2 жыл бұрын
@@mooky44 ahahahah
@mooky44
@mooky44 2 жыл бұрын
@@MBHDPRODUCTION gotta get that help by any means
@NeunEinser
@NeunEinser 2 жыл бұрын
Yarn was created before Mojang released their mappings, I was actually on their Discord when this happened. Yarn was created to have a better license compared to MCP, which is what Forge uses. It was also continued for the same reasons after Mojang released their mappings, and similarily to MCP mappings, a rule was put in place that you must not look at official mappings when contributing to yarn.
@kirdow
@kirdow 2 жыл бұрын
Glad to see this wasn't just an april fools joke after all (although still kinda is in a way? eh). Looking forward to what you do with this series. Hopefully you can make this 'Season' longer than PwnAdventure Season 1 was. Minecraft Hacking/Modding has so much potentiality I'm sure you'd find a lot of valuable content to make videos of. Especially if you look into the world of anti-cheats and anti-cheat plugins available. Knowing you, you'd most likely find much enjoyment in cracking the codes and sharing your journey with us. As always, proud to support your channel, hope to see what you give us in the future both with this and other videos. Keep it up man!
@shivansh7152
@shivansh7152 2 жыл бұрын
Hey I would like to go deeper into the more technical minecraft modding/hacking scene, do you know where I could start?
@pvic6959
@pvic6959 2 жыл бұрын
@@shivansh7152 this video is probably a good start lol
@relt_
@relt_ 2 жыл бұрын
i laughed so hard when i saw the ending. perfectly cut thank you for this series
@Atume1982
@Atume1982 2 жыл бұрын
Did you spot the other player standing outside the window? His name starts with Hero???? and absolute perfect ending.
@relt_
@relt_ 2 жыл бұрын
@@Atume1982 yes, thats why it was so fucking funny herobrine in a live overflow video
@LeoDDJ
@LeoDDJ 2 жыл бұрын
Also the foreshadowing bit at the beginning (2:00), where there was another player
@relt_
@relt_ 2 жыл бұрын
@@LeoDDJ no
@fishypugbruh
@fishypugbruh 2 жыл бұрын
Herobrine apperences: 1:28 1:38 14:16 17:41
@PROPLAYEN
@PROPLAYEN 2 жыл бұрын
💀
@___________482
@___________482 2 жыл бұрын
gg for finding all of them! I only found the last one by myself. How did you manage to find them all?
@FVT-tn8ji
@FVT-tn8ji 2 жыл бұрын
I like how you explained every detail of reverse engineering/modding the server just to say "ANYWAYS" and get back to the Minecraft part :D Awesome series!
@paulwesley3862
@paulwesley3862 2 жыл бұрын
haha seeing Herobrine out the window in the very last frame at 17:41
@a_ghoul
@a_ghoul 2 жыл бұрын
same at 2:42
@denisde4ev
@denisde4ev 2 жыл бұрын
2:05 1/2 players sleepin
@thatsforstarcraft1523
@thatsforstarcraft1523 2 жыл бұрын
14:16 as well
@qqii
@qqii 2 жыл бұрын
I'm really greatful for this series, because your perspective is very much what I need. Like you sometimes I don't have the motivation to follow the "best practice path". Spinning my interest into something useful was never something I really understood - so seeing you do this is amazing!
@nothappyz
@nothappyz 2 жыл бұрын
You should look into sponge's mixins. They pretty much revolutionized jar patching
@luiscanterohernandez6668
@luiscanterohernandez6668 2 жыл бұрын
Paper is a fork from spigot, spigot is a fork of bukkit, bukkit is an api for minecraft servers. When you run any of this server it usually download the official minecraft jar and use it to apply patches and other things. Minecraft eula said that you can not publish any code developed by mojang, so the people how had developed this servers can't actually edit the source code. I am more familiar with Fabric that uses mixins to edit the code before is runned, but is the same idea you create a jar that edit the server locally and run it. This way you are legal but you can still having all this tools to modify minecraft
@Lition98
@Lition98 2 жыл бұрын
Keep up the episodes coming, they keep motivating people to do more research about hacking stuff
@ziccodx
@ziccodx 2 жыл бұрын
Luckily, Liveoverflow is a superhero of just upward teleportation. Who knew it would turn out useful
@Aziqfajar
@Aziqfajar 2 жыл бұрын
As long as EULA for Minecraft doesn't add restriction for reverse engineering, it will stay alive imo
@yann1446
@yann1446 2 жыл бұрын
Enter Microsoft
@ow_
@ow_ 2 жыл бұрын
@@yann1446 official mappings were released 5 years after microsoft bought mojang
@xanlord2k
@xanlord2k 2 жыл бұрын
Even if they did, it's null and void in both the US and EU.
@Koroistro
@Koroistro 2 жыл бұрын
It's also worth mentioning that there was a fair bit of feedback from the modding community to the vanilla version of the game. For example, Pistons were born as a mod, then implemented in the game itself. Not to mention that some high profile mod-developers were later hired as actual game devs for the actual game!
@dannihijacked2508
@dannihijacked2508 2 жыл бұрын
and horses too
@shaneaf310
@shaneaf310 2 жыл бұрын
Summary of the DMCA is that the bukkit team basically decided for various reasons that they where done (EULA, changes in MC going forward requiring large changes to the API which they didn't have the motivation to deal with considering everything else, etc), and so they closed the project, mojangs devs came along like "nope, you can't close this, we own it", and thus one of the OG devs DMCA'd the project, generally that the craftbukkit software was a major stepping stone in the scope of multiplayer and is a part of what made it huge; Bukkit, the API, and CraftBukkit, the implementation of that into the vanilla server, are basically both dead now with spigot maintaining a fork of them still retaining the original projects names Paper, is a fork of Spigot, this we have our entire set of tooling which is designed to patch over spigot, as well as the various decompile steps, the community has maintained patches over fernflower for years to improve the output which makes it cleaner, you'll see much nicer results with forgeflower or quiltflower than with fernflower or JD-GUI, but, you can't cleanly browse the decompiled source as it just dumps the .java files into a jar by default. Paper uses a mixture of the mojang mappings file for class/method names, and uses yarn for param names on methods as mojang doesn't include those one cool project people have mentioned MCP, which maintains decompile patches for the entire tree to fix mistakes in the decompilation, vs in our side of the ecosystem in which we just patch the files which we modify (long term, we do wanna do the entire server tree, but, we have various other projects before we get to that). The joy is is that there's basically 10 years of efforts towards improving the entire toolchain, remapping tools (e.g. the tiny remapper), improvements towards the decompilers, tools for analysing jars to make the output more consistent, etc; papers distribution method is also "fun", paperclip, our bootstrap, downloads and patches the vanilla server jar with a binary diff, we did update it when mojang turned into a bundling bootstrap, but, that's part of the magic of how we offer a clean download on the website. The good news is that much of our team is active within the wider community as well as part of various groups whom interact with mojang, so, people worrying that mojang is gonna feed us to the dogs is far from our current interactions with one another, we're part of why the mappings where released! :D Also, glad to see that you agreed to liking tacos :)
@SnailDOS
@SnailDOS 2 жыл бұрын
Wow? The effort put into this video, editing, cinematic, even the intro. Well done. Your content is amazing.
@lexikiq
@lexikiq 2 жыл бұрын
the minecraft modding community is incredibly cool & impressive. very happy to see it showcased and researched! :)
@dunste123
@dunste123 2 жыл бұрын
You got a chuckle out of me at the end. Learned a lot over all :)
@roz9318
@roz9318 2 жыл бұрын
You wait until he hears about Glowstone, a Minecraft server written entirely from scratch not using any Mojang code
@lightning_11
@lightning_11 Жыл бұрын
I'm glad Mojang still obviously supports modding. I was concerned that, as Java became like Bedrock, modding would be dropped in exchange for something more like the Minecraft Marketplace.
@quentinlauterbach
@quentinlauterbach 2 жыл бұрын
Such a good series man!! also nice ending ;^)
@zephyfoxy
@zephyfoxy 2 жыл бұрын
I reverse engineer android malware every day for my job, and when I saw that obfuscated java code I actually recognized that style of obfuscation when it comes to the scrambling of class/method/var names. It's not a show stopper but it makes me feel cross-eyed sometimes.
@thehydrogen
@thehydrogen 2 жыл бұрын
NMS (the original Minecraft server) -> CraftBukkit (which was originally developed by Mojang under aliases) -> Spigot -> DMCA -> Paper and the workarounds
@xanlord2k
@xanlord2k 2 жыл бұрын
EULAs in the EU that have a "no reverse engineering" clause are not enforcible. US law also makes reverse engineering null and void. Check Sony v. Bleem. EDIT: I misremembered the case. It's Sony v Connectix (an earlier commercial PS1 emulator): en.m.wikipedia.org/wiki/Sony_Computer_Entertainment,_Inc._v._Connectix_Corp.
@zephyfoxy
@zephyfoxy 2 жыл бұрын
I looked up this case and it seems to only revolve around Bleem using screenshots of games owned by Sony. It specifically stated that the legality of the emulator itself was not a stake, so I don't see how this case pertains to law around RE. The only time the phrase "reverse engineering" was used that I found was just an explanation that the emulator was made by reverse engineering the console, but again that wasn't the focus of the lawsuit.
@mrcorpz3713
@mrcorpz3713 2 жыл бұрын
Minecraft modding is a deep rabbit hole, 10+ years old stuff.
@DevPieter
@DevPieter 2 жыл бұрын
This is so awesome! I really enjoy this series.
@ciberman
@ciberman 2 жыл бұрын
Amazing! Waiting for the next episode!
@DavidRockin1
@DavidRockin1 2 жыл бұрын
I started playing Minecraft in 2011 when I was 11. At the time I was programming and doing web development for a few years. I've spent literally half my life playing Minecraft, making servers & developing new & maintaining existing server plugins. It's been an amazing ride, and I have learned A LOT. It's the same for MANY other people out there, they all just wanna make something cool and fun, and if they can get $5 then it's a win-win for them. People outside of the minecraft community don't understand how important Minecraft is, and how the community has been literally a MAJOR important part to the game. Especially in the very early days of Minecraft, when people made some simple basic singleplayer mods, that ended up actually becoming part of the game.
@chaos2492
@chaos2492 2 жыл бұрын
Loving this series!
@PreFiXAUT
@PreFiXAUT 2 жыл бұрын
Fun to see that Bukkit is still referenced to this day. I did quite some Server Modding/Plugins for Bukkit back in the day and was actually how I got into programming. So seeing this Series is really bringing back memories. A bit history of the Servers from what I can remember: - Bukkit: A slightly modified vanilla Server, which was made as a side-project from one of the Mojang Dev (While still working on the game). It didn't really add any features (as the server can only do so much, that a client would also understand), but it had a complete and insanely well written/documented API to do anything you could think of. This spawned a huge plugin development scene where all the mini-game server originated from. Otherwise Immensely used by general folks as installting/managing plugins was rather simple. Due to the licensing issues (by publishing the server fully with source-code and all, not like Paper does it nowadays), the project got DMCA striked and quickly became "irrelevant". - Spigot: A modification of Bukkit, which had performance improvements and a couple neat features like load-balancing. As far as I remember it also had some minimal forge interoperability - so you could have certain forge client mods running on the server as well. Operated as basically a fork of Bukkit and was more widely used on mini-game servers, due to the mentioned load-balancing and it was a bit more complex to setup. Due to the Bukkit DMCA, most devs switched to Spigot, but same fate as Bukkit arose, and got DMCAd at one point. - Sponge: Don't know too much about it, but as far as I remember this one wasn't based on Bukkit and instead made their own efford of providing an API to the Server. --- After Bukkit got joiked, I did leave the scene, that's why I don't know too much about the other Servers. Hopefully this is somewhat informative ... and correct, has been a while.
@jakob_123
@jakob_123 2 жыл бұрын
I love these series! Also nice little detail at 17:41 :)
@TheKelor
@TheKelor 2 жыл бұрын
I'm sooooo hyped by this serie
@eyluismi168
@eyluismi168 2 жыл бұрын
Loving this serie! :D
@tashima42
@tashima42 2 жыл бұрын
This is one of the most interesting videos I ever watched both about Minecraft and Hacking
@jacopoberagnoli6878
@jacopoberagnoli6878 2 жыл бұрын
The amount of work you put in this videos is actually crazy!
@Reeces_Pieces
@Reeces_Pieces 2 жыл бұрын
This is my favourite let's play series.
@kalvinpearce
@kalvinpearce 2 жыл бұрын
I appreciate that frame at the end ❤
@Leeon4rdoo
@Leeon4rdoo 2 жыл бұрын
Please more modding videos! Minecraft has such a huge potential and a lot to learn from it!
@Kynatosh
@Kynatosh 2 жыл бұрын
As a Minecraft modder and a long time subscriber I like these series ;)
@weshuiz1325
@weshuiz1325 2 жыл бұрын
Your first painting will be crap Your first dish wil be crap But your first program will be perfect And it will be "Hello world"
@good_username_taken5069
@good_username_taken5069 2 жыл бұрын
I love it! This series is awesome!
@etopowertwon
@etopowertwon 2 жыл бұрын
It seems LiveOverflow evolving from usual LetsPlayer into Prison Escapist. BTW @LiveOverflow at some point you should check how prisons use chunk bans exploit for the defense(e.g. Gaia's Vault).
@birdbeakbeardneck3617
@birdbeakbeardneck3617 2 жыл бұрын
loving the intro
@querela92
@querela92 2 жыл бұрын
The good old times. :-) When I tried to create my own mods like building spheres, read through the Bukkit source code ... Btw, I was completely fascinated with the event system in Bukkit :-) But all the dynamic class loading and patching was great ...
@timeTegus
@timeTegus 2 жыл бұрын
This is such a cool video series 😎
@DavidE95959
@DavidE95959 2 жыл бұрын
As someone who was around when bukkit/craftbukkit and spigot were getting big its nice to see that those efforts are still alive thanks to projects like paper. and i especially liked the explanation about (intermediate) mappings, i never knew its done that way. anyone remember hey0 hMod, that the OG minecraft server.
@smoban
@smoban 2 жыл бұрын
dude i love this series
@Wheagg
@Wheagg 2 жыл бұрын
That's an amazing plot point! Maybe I should develop a "hack" client that uses that quarry to do packet manipulation, learning python with it could be hard tho.
@AshtonSnapp
@AshtonSnapp 2 жыл бұрын
That rabbit decided it didn’t want to live anymore.
@mikaay4269
@mikaay4269 Ай бұрын
If there are legal clauses about not being allowed to decompile, disassemble, blah blah, you can just move to certain countries that won't be listed where these sorts of clauses will hold up in court about as much as claiming that farting in a bucket is illegal
@dom1310df
@dom1310df 2 жыл бұрын
I suspect the EULA is silent on the matter of decompilation for creating mods because such an act is permitted under EU law even if the license says otherwise.
@JayJay-ly4er
@JayJay-ly4er 2 жыл бұрын
ayyyy 😇 it’s a series!!
@PsychotherapistSam
@PsychotherapistSam 2 жыл бұрын
There even was/is this thing called MCP or Mod Coder Pack released by one of the Mojang Developers, basically including the raw Sourcecode of the game with instructions on running it / building it.
@randomdevlol2746
@randomdevlol2746 2 жыл бұрын
Heya! Here's a basic summary of the mess with Minecraft servers (Java at least, hopefully implementations in other languages are neater): - Craftbukkit: Essentially an API layer of functions. Iirc no real functionality is in here, just interfaces and maybe the occasional abstract class. Almost every Java and Bedrock server implementation I've looked at has used this or has an API very similar to this. - Bukkit: Implementation of Craftbukkit that builds off of decompiled versions of Minecraft's official server jar - Spigot: fork of Bukkit that improves some things and adds more functionality - Paper Spigot: fork of Spigot for further optimization Then there's BungeeCord and Waterfall (PaperMC's fork), which is just a proxy that allows networks like Hypixel to exist on multiple servers instead of just one.
@GuyMichaely
@GuyMichaely 2 жыл бұрын
Why doesn't Mojang simply make the code for minecraft public? If they release source mappings with which we can recreate the source code 1:1, why would they want modders to take the extra step of decompiling and applying source maps? Wouldn't it be simpler for everyong if mojang released the source code?
@user-vv9lz2ik2t
@user-vv9lz2ik2t 2 жыл бұрын
The best video series ever
@RedStone576
@RedStone576 2 жыл бұрын
what a cool series
@zyklixel8165
@zyklixel8165 2 жыл бұрын
*I think that the whole IT "Community" can learn something from Minecraft. For Example the log4j exploit or the mirai ddos network which both could've caused or caused huge losses were both discovered or made by the minecraft community. That's just mind-blowing for me!*
@tommymairo8964
@tommymairo8964 2 жыл бұрын
When you change the variable/class/method names you could utilize the intellij refactor tools. So you won't need to modify all occurrences in the project.
@cotneit
@cotneit 2 жыл бұрын
1:17 ah yes, the famous sunflower fields, that was smooth
@Reichstaubenminister
@Reichstaubenminister 2 жыл бұрын
A third of this is video is gameplay, another third is hacking and the last third is just a big shitpost. Love it, looking forward to more.
@shapelessed
@shapelessed 2 жыл бұрын
This is 3 morning coffes type of addiction right there...
@av3stube480
@av3stube480 2 жыл бұрын
The old user converter is most likely there to support version migration. I'd wager it just loads the old config files, converts them into an object of some sort, then saves them in their new configuration.
@wojciechwilimowski985
@wojciechwilimowski985 2 жыл бұрын
How to deal with professional burnout 101: place yourself in a situation you remember from before you started your career, and realize you now see through the facade like Neo
@mgtowgaming8070
@mgtowgaming8070 2 жыл бұрын
Glad to see the channel covering more game hacking. Game hacking is probably how a majority of reverse engineers got into the hobby.
@AntoineViallonDevelloper
@AntoineViallonDevelloper 2 жыл бұрын
In France, decompiling cannot be forbidden in a Eula. Actually, it's even better, a Eula is not considered a contractual agreement.
@trevorhaddox6884
@trevorhaddox6884 2 жыл бұрын
IntelliJ has a plugin that is made for working on Minecraft. It has all the mapping and stuff. Or you can create a dev environment with Forge or Fabric and just use their mappings.
@jeffreyhendricks3428
@jeffreyhendricks3428 2 жыл бұрын
I cannot believe what I am seeing it with my eyes! LOOL TY SO MUCH!
@RealYukiSan
@RealYukiSan 7 ай бұрын
12:51 very much appreciate their work :"
@astroorbis
@astroorbis 2 жыл бұрын
The way you show Herobrine for a single frame at the end xD
@NStripleseven
@NStripleseven Жыл бұрын
That’s really interesting actually, Mojang just lets you decompile their code and mess with it.
@tappineapple3381
@tappineapple3381 2 жыл бұрын
I see what you did there at 2:43 and 14:15 and at the end XD. How many did you add in there haha
@hopser6620
@hopser6620 2 жыл бұрын
really opened my eyes to how generous mojang actually is. Great video as always!
@blvckbytes7329
@blvckbytes7329 2 жыл бұрын
Meeeeeh. It's for their own profit, and they know that. Without proper servers and their plugins, minecraft wouldn't be half of what it actually has become over the years. They still obfuscate like douches and thus put a lot of work and effort towards the dev community.
@figboot
@figboot 2 жыл бұрын
@@blvckbytes7329 I don't think you're giving Mojang enough credit. Modding has historically been a part of Minecraft for a long time. Hell, Dinnerbone was a lead developer on Bukkit, and even added features to the base game to accommodate modders (see: plugin message packets). Now, I agree that now Mojang Studios/Microsoft does not put the kibosh on modding because it would kill their game, but it hasn't always been this way. Obfuscation is annoying, but obfuscated code runs faster. Remember the old java launcher? It isn't obfuscated at all because it isn't performance sensitive.
@kennytvn
@kennytvn 2 жыл бұрын
A wild Minecraft Drama approaches
@Sollace
@Sollace Жыл бұрын
8:04 (minecraft player + modder since beta days) Oh, I would absolutely _love_ to make a mindmap like that, just to put into paper the history of modding and how everything came to be.
@Shuna322
@Shuna322 2 жыл бұрын
14:14 This is actually woken me up in the middle of the night
@freebyte
@freebyte 2 жыл бұрын
hahaha i love the small details like Herobrine at 14:15
@notapplicable7292
@notapplicable7292 2 жыл бұрын
It might be worth doing a video on shadow block tech in both 1.17 and 1.18. Its an interesting bug and an interesting challenge to catch the bug.
@guack1453
@guack1453 2 жыл бұрын
honorable mention: Valve, a game company entirely built on mods
@bananprzydawka7129
@bananprzydawka7129 2 жыл бұрын
ITS NOT AN APRIL FOOLS JOKE?!?! YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYYYY!!!!!!!!
@Janos0206
@Janos0206 2 жыл бұрын
So cool, can't wait for the next one! Hack the planet!!
@edwardgierek1487
@edwardgierek1487 2 жыл бұрын
glad last video wasnt a april fools video
@pascha4527
@pascha4527 2 жыл бұрын
Haha the Herobrine cameo. Youre an OG minecraft player, I see.
@m4rt_
@m4rt_ 2 жыл бұрын
In my opinion, Hacking means using something in unintended ways. I heard this from someone, but I don't remember who, but it was on a podcast named "The Hacker Next Door", where they compared hacking to using duct tape, where they said that if you use duct tape but not for ducting then you are a hacker.
@thomas3754
@thomas3754 2 жыл бұрын
Spigot hosts their sources on their own Git server
@Jan12700
@Jan12700 2 жыл бұрын
There are really many channels for Minecraft history videos and technical things, e.g. TheMisterEpic or SalC1. TheMisterEpic also made a video about the history of the Minecraft servers and the first code for servers yesterday. SalC1 does also videos about Seed finding Project, such as .pnj or the worlds in the Minecraft main menu. He did also a vid why Java Servers are bad, they can't do Multitheading and therefor are much much more expensive than Bedrock servers Is there not an extra law in the EU that allows revere engineering? Since Monjang is based in Sweden, they know about it and act accordingly. 10:33 Earlier before 1.4 there was no .jar file and the class files where just in the bin folder. You also always had to delete the meta-inf file if you want to use mods. So a question, what exactly is in there, what does the file do?
@toinfinityandyourmom2219
@toinfinityandyourmom2219 7 ай бұрын
You can decompile everything legally. It may be against their eula but that doesn't mean it is illegal.
@tristanmacc
@tristanmacc 2 жыл бұрын
awesome vid
@whomthis
@whomthis 2 жыл бұрын
1:39 - idk, but is kinda sus ඞ
@zanez7953
@zanez7953 2 жыл бұрын
i love you minecraft and i love you liveoverflow
@Povilaz
@Povilaz 2 жыл бұрын
Awesome.
@rocstar3000
@rocstar3000 2 жыл бұрын
7:36 StackOverFlow comment lmao
@CAEC64
@CAEC64 2 жыл бұрын
14:15 im just gonna pretend i didnt see that
@Mefedroniarz
@Mefedroniarz 2 жыл бұрын
You should check on „skylords reborn” project which revives abandoned by EA card game „Battleforge”
@level-8
@level-8 2 жыл бұрын
Nice HeroBrine reference 17:41
Modding is Hacking...
22:23
LiveOverflow
Рет қаралды 84 М.
Scanning The Internet for Minecraft Servers
26:40
LiveOverflow
Рет қаралды 75 М.
small vs big hoop #tiktok
00:12
Анастасия Тарасова
Рет қаралды 30 МЛН
WHO DO I LOVE MOST?
00:22
dednahype
Рет қаралды 80 МЛН
OMG😳 #tiktok #shorts #potapova_blog
00:58
Potapova_blog
Рет қаралды 4,3 МЛН
Flying Without Elytra
25:20
LiveOverflow
Рет қаралды 101 М.
The End Of Humans In Minecraft
13:12
LiveOverflow
Рет қаралды 131 М.
These Minecraft Servers Were BANNED by Mojang...
11:41
TheMisterEpic
Рет қаралды 825 М.
So I changed Minecraft's code...
10:03
Fundy
Рет қаралды 5 МЛН
I Banned A Corrupt Admin From His Own Server
14:04
roshambogames
Рет қаралды 4,6 МЛН
Forcing AI to Break Minecraft
13:18
Knarfy
Рет қаралды 972 М.
The State of log4shell in Minecraft Months Later
27:05
LiveOverflow
Рет қаралды 66 М.
GTA3 Code Review: Weapons, Vehicles, Cops and Gangs
15:00
Code With Ryan
Рет қаралды 1 МЛН
How Many Minecraft Files Can You DELETE?
8:04
mysticat
Рет қаралды 2,4 МЛН