Sari la conținut
Te plictisesti? te asteptam pe platforma noastra de jocuri online!
Robot

[HowTo] Client protection from Metin2Nirvana

Postări Recomandate

I've been using this method since August 1st, 2013 and it's been working great. Most cheats are automatically blocked, just make sure you check sites that post metin2 cheats frequently to make sure there aren't any new ones that actually work. Those ones will need to be manually added. I'll begin by listing the features of using this method:

 

- DLL files can normally be renamed to .mix, .dll, or .flt and inserted into the client before launching and they would inject the dll into the client. With this protection those files are deleted on client launch, there's no way around this.

 

- MSS32.dll is an important file for protecting against cheats, and it's being checked by the client to ensure it's not tampered with.

 

- There are exploits out there (and possibly more to be found or more which aren't yet released publicly) which this protection method can help detour. It hides the revision of the binary from the Details tab in Windows Properties for this reason. If they don't know which version you're using it's a good start already to protect against exploiting the binary.

 

- This will prevent cheats from loading whether the player sets them up to automatically inject them on startup or while the game is already on.

 

- This DOES block m2Pythonloader and Kernel Detective.

 

- This DOES block the new ProDamage hack by lalaker1 with randomized window classes as well as switchbotv3.

 

- I don't know of any cheats that actually work with this setup active...

 

- Works even on lower end computers without a problem.

 

- It restricts debugging the client.

 

 

Caveats:

 

- About 25% of Windows 8 users can't run the client. I'm not entirely sure what the problem is but it appears to be an issue from Windows 8 (thanks again Microshit). The user is warned upon  running the client of a "FATAL ERROR" in which the Index file located in the pack folder is missing. It isn't missing. So far, the only workaround known for this issue is to run the game using Razer Game Booster. I feel that it's worth it because it stops cheaters from playing. It's up to you if you want to lose some of your Windows 8 users. UPDATE 2/11/2014: If you purchase the latest version of the software it WILL work with Windows 8!

 

- Virtual Box: Bug fixed loading virtual dll files under Windows 8 x64
- Virtual Box: Bug fixed running some virtual exe files on Windows 8

 

- It may be detected by antivirus software as a virus because it's encrypted, it has no way of knowing what the file is really doing or really contains. Currently it's only detected by 2/50 scanners on Virustotal.com and it's not a definitive sign of a virus, only a warning that the virus scanner can't read the file. 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

- You can't run the command prompt while the game is open, nor can you have one open when attempting to launch the game.

 

 

 

Setup Instructions:

 

Open the file "prototype.py" in the root archive and find this:

 

def RunApp():
	musicInfo.LoadLastPlayFieldMusic()
	
	app.SetHairColorEnable(constInfo.HAIR_COLOR_ENABLE)
	app.SetArmorSpecularEnable(constInfo.ARMOR_SPECULAR_ENABLE)
	app.SetWeaponSpecularEnable(constInfo.WEAPON_SPECULAR_ENABLE)

	app.SetMouseHandler(mouseModule.mouseController)
	wndMgr.SetMouseHandler(mouseModule.mouseController)
	wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())

On a new line enter this:

 

injectionprotection = os.listdir('.')
	injectionprotection.sort()
	for Data in injectionprotection:
		if Data.find('.mix') != -1 or Data.find('.m3d') != -1 or Data.find('.flt') != -1 or Data.find('.asi') != -1: 
			os.remove(Data)

Add the following to the imports:

 

import os

Save and close the file.

 

Now we'll block the introLogin.py bug allowing users to run client extractors or python cheats on client launch. Open "intrologin.py" from the same archive and find this:

 

self.__LoadLoginInfo("loginInfo.py")

Replace the entire line with this, edit the message to your liking:

 

if not os.path.exists('logininfo.py') and not os.path.isfile('logininfo.py'):
			self.__LoadLoginInfo("loginInfo.py")
		else:
			dbg.LogBox('Ah so you want to try to extract the client?n'
								'Or maybe you want to run your favorite cheat?n'
								'Not gonna happen...n'
								'It seems I have already thought of this.n'
								'I am ATLEAST one step ahead of you...n'
								'------------------------------------------------n'
								'n'
								"TRY HARDER BRO")
			exception.Abort("Unsupported file, please delete it. (TRY HARDER BRO)") # Syserr.txt
			return

Add the following to the imports:

 

import os

Save and close the file.

 

Now you need Enigma protector. You can purchase it here: 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
or download an older cracked version here:  

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

You will also need a plugin created by my friend Anfidya: 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

Place the .dll file in the "Plugins" directory of your installation of The Enigma Protector.

 

Here's the Enigma settings file already ready-to-go minus some minor changes you need to make:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Now you will need to maintain two versions of your client, one for the public and one private one. Copy your client to another hard drive or directory on your computer. You should have two identical copies of the same game but you're going to do all your work on the private client from now on. You will keep your eix and epk archives in the pack folder of the private client and do your work there. You need to keep a client binary in your private client which isn't encrypted by Enigma so that you can create a new one whenever necessary. When you release a patch you will need to re-pack the binary even if you didn't change anything there or in Enigma. All it takes is a change of any of the archive files for the binary to need a re-encryption by Enigma. This is because the eIndex files are going to be hidden inside the binary. The miles folder can be used to inject cheats too, so we're going to hide that and all it's contents in the binary as well. The binary is protected from debuggers and people can't just unpack it with WinRAR or something to get files out of it.

 

Despite Enigma offering messages displayed before client closing, I don't use them because they allow the client to stay open until the user clicks the OK button. This means they can just sit there with the cheat running and move the popup window. I've included my settings file for Enigma. You need to customize the Settings in the INPUT tab:

 

kdrZ7gG.png

 

- Modify the "file to protect" and "output protected file name" using the Browse buttons.

- Modify the "Name"

- Modify the "Version" (hint: don't put it the same as your binary version)

 

You also have to edit the file name if you aren't going to call your client metin2.bin (note that on some newer binaries it has to begin with "metin2" or it doesn't work. I'm sure there's a way to edit this but it isn't so important.

 

EeGxwx0.png

 

It's alright to show a message before termination, to assist the player with the reason why it won't work. This is only going to check during launch of the application and the file name can't be changed while the application is already running.

 

You should go to "External Files" and delete my MSS32.dll file by clicking the red "X" and add your own MSS32.dll file to make sure it's the correct one. If you skip this step and your MSS32.dll doesn't match mine EXACTLY then the client will fail to run.

 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Now you need to add some custom rules for cheat detection:

 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

You can see here I've already setup the miles folder for you. You need to click "pack" so that it's highlighted like in the image then click "Add" then "Add File(s)" and select all your .eix files as well as your Index file from the pack folder. An easy way to do this is set your Windows Explorer to detailed view and organize by File Type then use SHIFT + click to select a beginning and ending file.

 

z6UeEnJ.png

 

This next part is mostly preference, and to avoid letting anyone know which version you use for a binary. It adds customization to your client, it's a fancy thing that isn't too necessary but if you want to change this stuff go for it!

 

RWtOA9I.png

 

An example of what that does:

 

A6OQeWO.png

 

Now you just press "Protect".

 

You need to copy your new protected bin to your Public Client and go delete the entire "miles" folder as well as the contents of the folder from your Public Client folder. Also go into the "pack" folder of your Public Client and delete "Index" and ALL of your ".eix" files (sort with detailed view again).

 

In the end you should have a Public Client like this or very similar:

 

TVzyls2.png

 

FoXW6K4.png

 

 

Your Private Client should look something like this:

 

2tNGWDW.png

 

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

Partajează acest post


Link spre post
Distribuie pe alte site-uri
-

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum

×