Skip to content
MPGHThe Dark Arts
/
RegisterLog in
Forum
Community
What's NewLatest posts across the boardTrendingHottest threads right nowSubscribedThreads you follow
Discussion
GeneralIntroductionsEntertainmentDebate FortFlaming & Rage
Board
News & AnnouncementsMPGH TimesSuggestions & HelpGiveaways
More Sections
Art & Graphic DesignProgrammingHackingCryptocurrency
Hacks & Cheats
Games
ValorantCS2 / CS:GOCall of Duty / WarzoneFortniteApex LegendsEscape From Tarkov
+14 moreLeague of LegendsGTA VMinecraftRustROTMGBattlefieldTroveBattleOnCombat ArmsCrossFireBlackshotRuneScapeDayZDead by Daylight
Resources
Game Hacking TutorialsReverse EngineeringGeneral Game HackingAnti-CheatConsole Game Hacking
Tools
Game Hacking ToolsTrainers & CheatsHack/Release NewsNew
Submit a release →Share your cheat, tool, or config with the community.
AINEW
AI Tools
General & DiscussionPrompt EngineeringLLM JailbreaksHotAI Agents & AutomationLocal / Open Models
AI × Gaming
AI Aimbots & VisionML Anti-CheatGame Bots & Automation
Create
AI Coding / Vibe CodingAI Art & MediaAI Voice & TTS
The AI frontier →Where game hacking meets modern machine learning. Jump in.
Marketplace
Buy & Sell
SellingBuyingTradingUser Services
Trust & Safety
Middleman LoungeMarketplace TalkVouch Copy Profiles
Money
Cryptocurrency TalkCurrency ExchangeWork & Job Offers
Start selling →List accounts, services, and goods. Use the middleman to trade safe.
MPGH The Dark Arts

A community for offensive security research, reverse engineering, and AI.

Community

ForumMarketplaceSearch

Account

RegisterLog in

Legal

Privacy PolicyForum RulesHelp & FAQ
© 2026 MPGH · All rights reserved.Built by the community, for the community. For educational purposes onlyContent is shared for security research and education — we don't condone illegal use. You're responsible for complying with applicable laws. Use at your own risk.
Home › Forum › MultiPlayer Game Hacks & Cheats › Minecraft Hacks & Cheats › Minecraft Tutorials › Serialize Files

Serialize Files

Posts 1–4 of 4 · Page 1 of 1
Wampwire
Wampwire
Serialize Files
If your client has donator options, needs a file to be downloaded or anything to get from internet, then this might come in useful.
The outcome of this is creating your own file type (ie it has a custom extension).

To start, I created a new project. This new project would contain all of the class files for the file creator.
Go ahead and open up a new project and create... 2 packages. Name them to whatever you want.
Mine is Gui and Files.

The gui will contain the gui.. (duh).. and the files will have the files and stuff..
To start, lets create a new class in the Gui package. Lets call this class A_ScreenGui.


 
JFrame
Code:
public static void main(String args[]) {
	/** Creating Main JFrame */
	JFrame frame = new JFrame("[SFS]");                                       //Initialize JFrame
	frame.setVisible(true);                                                           //Make the JFrame visible
	frame.setTitle("Secure File System");                                       //Set the title for JFrame
	frame.setSize(400, 200);                                                        //Set the size of the frame
	frame.setLayout(new FlowLayout());                                       //Set a flowing layout
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);          //Create a default exit of the program
		
	JButton Make = new JButton("Make");                                     //Create a JButton called Make
	//JButton Unzip = new JButton("Unzip");                                  //Creates a JButton to unzip/open the file
	Make.setSize(new Dimension(40, 40));                                    //Sets the size for the buttons
	//Unzip.setSize(new Dimension(40, 40));                                 //^^
	frame.add(Make);                                                               //Adds the button to the JFrame
	//frame.add(Unzip);                                                            //^^
	//Unzip.addActionListener(new ActionButtonListener());            //Adds a listener
	Make.addActionListener(new ActionButtonListener());              //^^
}


The functions should go underneath the JFrame main void unless you want it to add it in another class to keep organized.

 
Functions
Code:
/** Functions */
public static void Serialize() {
	FileOne f1 = new FileOne();                                                 //Creates an object class
	f1.username = "Wampwire";                                                 //Sets a String username to be "Wampwire"
	f1.donator = "true";                                                           //String donator = "true"
	f1.version = 1;                                                          //version
	f1.something = 1;                                                             //Something equals to 1 :)
		
	try {                                                                              //Use a try catch method
	        FileOutputStream fileOut = new FileOutputStream("FileOne.sfsx"); //Creates a File called FileOne with the extension of sfsx
		ObjectOutputStream out = new ObjectOutputStream(fileOut);     //Creates the FileOut into an Object Output Stream (OOS)
		out.writeObject(f1);                                                             //Writes the object f1 (FileOne class) via OOS
	        out.close();                                                        //Closes Object Output Stream (because were memory efficient fuckers :P)
	        fileOut.close();                                                    //Closes the FileOutputStream
	        
	} catch(IOException e) {                                               //Catches any input output exceptions and prints them out in the console
		e.printStackTrace();
	}
}


Lets create the basis of FileOne class. Go ahead and create a new class in the File package.

 
FileOne
Code:
public class FileOne implements java****.Serializable{                           //Makes class serializable
	public String username;                                                        //Creates a String called username
	public String donator;                                                          //String called donator
	public int version;                                                               //Int Version
	public transient int something;                                             //Int Number (transient) doesnt serialize (would return 0)
}


We need this so that we can listen (see) any changes done to the buttons. Either is pressed or not.

 
ActionButtonListener
Code:
public class ActionButtonListener implements ActionListener {                              //Makes the class behaviour the same as ActionListener
    public ActionButtonListener(){}                                                                  //Leave empty but still initialize it
    	public void actionPerformed(ActionEvent e) {                                            //Get the action and name it as e
    		if(e.getActionCommand().equals("Make")) {                                      //If button "Make" was pressed, call void
    			A_ScreenGui.Serialize();                                                        //Calling the void we created
    		}
    		//if(e.getActionCommand().equals("Unzip")) {                                    //You havent added this in to this project so dont worry
    		//	A_ScreenGui.Deserialize();
    		//}
    	}
}


Ok. Youre almost done. All you have to do is create a class file, or use my method where the FileOne is used as a template and serialize it.
Upload it to the internet and use IOStreams/BufferedReaders or Sockets to download the file.

Now, you might think... Whats the point of this if we cant read it, or java cant read it... Well, we gotta create a deserializer (Sounds fancy, doesnt it? :P) Go to your minecraft client, create a new class and create this void.

 
Deserializer
Code:
public static void Deserialize() {                                                         //Creates a void
	FileOne f1 = null;                                                                     //Sets the object FileOne to f1 which equals to null
	try {                                                                                     //Try catch statement
		FileInputStream fileIn = new FileInputStream("FileOne.sfsx"); //Grabs the file (put in the url to where your file is downloaded)
		ObjectInputStream in = new ObjectInputStream(fileIn);        //Creates fileIn into Object and grabs it
		f1 = (FileOne)in.readObject();                                          //Reads Object FileOne
		in.close();                                                                    //Close ObjectInputStream (efficiency fuckers)
	        fileIn.close();                                                                //Close FileInputStream (Even more efficiency)
	} catch(IOException e) {                                                        //Catch input output exceptions
		e.printStackTrace();                                                       //Prints the exception in the console
	        return;                                                                        //Return method .-.
	} catch(ClassNotFoundException c) {                                        //Catch FileNotFound exception
		System.out.println("FileOne class not found");                    //Prints out to console
	        c.printStackTrace();                                                      //Prints exception to console
	        return;                                                                          //Return Method
	}

	System.out.println("Deserialized FileOne...");                               //Print to console
        System.out.println("Name: " + f1.name);                                    //Print to console
        System.out.println("Donator: " + f1.donator);                             //Screw this shit
	System.out.println("Version: " + f1.Version); //...............
	System.out.println("Something: " + f1.something); //Returns zero as its not serializable variable
}


Now call this void from a place which suits you in your MC Client.
You can also add this void in your main program which serializes the file in the first place to test it (Thats why I commented a lot of things out at first).

Advantage to using this:
Sort of obfuscates the file, allowing safer donator statuses which arent hard coded into the client itself.
Allows all sorts of data to be used. Even allows voids (y)

Disadvantage to using this:
Easily "cracked" by creating identical program and deserializing the file.

To get rid of the disadvantage, I used string encryption and decryption. First it encrypts the strings, then it writes it to a file. Once it gets the file, its deserialized and then decrypted.

Maybe this will be usefull to some people to just look at it... Sorry about the comments, I wrote all them in and didnt bother to check how it looked so now I said screw formating..

Outcome of the Program, File, and Output in the console:
 
Images




#1 · 13y ago
JU
juanpablo0228
thanks for your help
#2 · 13y ago
Invader-Zim
Invader-Zim
cool thx for sharing.
#3 · 13y ago
LU
lucamasira
Guess I'll add this as some kind of security to my client later, thanks op. My client is completely unprotected atm lol
#4 · 13y ago
Posts 1–4 of 4 · Page 1 of 1

Post a Reply

Similar Threads

  • Good Cracks/Serials/Keygens websiteBy Elmo in Spammers Corner
    11Last post 9y ago
  • Edit server files to allow same serial multiple times. Myown server for LAN use only.By steven850 in Crysis 2 Help
    2Last post 14y ago
  • Free File HostsBy Paolo1993 in Spammers Corner
    5Last post 18y ago
  • File Scan hereBy Neogaidenx in Spammers Corner
    4Last post 18y ago
  • Looking for the old Warrock Game FilesBy Zededarian in WarRock - International Hacks
    2Last post 20y ago

Tags for this Thread

#client#files#minecraft#serialize