Informations
Jump to content

Lorem Ipsum...

Click to Dismiss this Notification
Ładowanie danych...

Recommended Posts

Note: This tutorial was originally created for a private server and is based on information that may be outdated. AhnLab HackShield has not received updates since 2013.

1. Initialize the HackShield Directory

Start by navigating to the Extern/include directory and create a new folder named hackshield. If there are existing files, make sure to remove them. Next, transfer the contents from (Your HackShield SDK Zip)/Include to Extern/include/hackshield. Repeat this for both the Client and Server Extern sections.

For the Client, copy the following files from (Your HackShield SDK Zip)/Lib/Win/x86/MultiThreaded to Extern/lib:

Additionally, copy (Your HackShield SDK Zip)/Developer/Lib/Win/x86/Multithreaded/HShield.lib to Extern/lib/HShield_d.lib, making sure to rename it. For the Server, copy (Your HackShield SDK Zip)/Lib/FreeBSD/x86/AntiCrack/LibAntiCpXSvr_st.a to Extern/lib.

Next, create a file named hshieldLibLink.h in Extern/include/hackshield (for both Client and Server) and include the following code:

 
This is the hidden content, please

2. Client Source: Adding /CLR

Important: Rebuild libjpeg, lzo, and cryptopp with /MD and /MDd flags, as the defaults for CryptoPP are /MT, and for libjpeg and lzo are /MD if using CMake.

Edit the VCX file projects by going to C/C++ -> All Options and searching for /M. For the Release configuration, set the "Runtime Library" to /MD, and for Debug, set it to /MDd.

Next, in the project settings under "General," enable "Support with Common Language Runtime" (/clr). Additionally, change the /RTC value to "Default" and add the following command in All Options:

 
This is the hidden content, please

If you encounter issues, follow the special instructions to rebuild all modules with the updated Runtime Library. For Crypto++, modify config.h with the following changes to support synchronization:

Comment out the original relevant section and replace it with:

 
This is the hidden content, please

3. Integrate HackShield in the Client Source

Open UserInterface/HackShield.cpp and look for the segment that defines the monitoring server address. Replace it with:

 
This is the hidden content, please

This address should point to a server that monitors instances of HackShield.

In UserInterface/Locale_inc.h, add:

 
This is the hidden content, please

In HackShield.h, replace:

 
This is the hidden content, please

with:

 
This is the hidden content, please

Next, make sure to replace the executable file name in UserInterface/HackshieldLicense_metin2client.h as follows:

 
This is the hidden content, please

Example:

 
This is the hidden content, please

Now, configure your project to compile correctly. In UserInterface Properties, ensure that Common Language Runtime Support (CLR) is set to /clr. In C/C++, change "Enable C++ exceptions" from "Yes (/EHsc)" to "Yes with SEH exceptions (/EHa)".

If you encounter the "DEFAULT_HSMS_TIME_OUT not defined" error, edit Extern/include/hackshield/hshield.h. Remove the line containing DEFAULT_HSMS_TIME_OUT, and add the following:

 
This is the hidden content, please

4. Server Configuration

In game/src/Makefile, change:

 
This is the hidden content, please

to:

 
This is the hidden content, please

Then, update game/src/HackShield_Impl.cpp with:

 
This is the hidden content, please

In your Auth and Game configuration files, remember to add:

 
This is the hidden content, please

5. Client Binary Setup

Copy files from (HackShield SDK Zip)/Bin/Win/x86/HShield to your Client Binary Folder. For debugging or quality assurance, it's recommended to copy everything from (HackShield SDK Zip)/Developer/Bin to (Client Binary Folder)/HShield.

Remember, never distribute the development files; always use the release versions. For periodic updates, copy all content from (HackShield SDK Zip)/Bin/Win/x86/Update to your HShield folder in the Client Binary Folder.

6. Configuring HackShield

Set up the AntiCrack feature by navigating to (HackShield SDK Zip)/Bin/Win/x86. Utilize AntiCrack/HSBGen.exe to generate your HSB file and AntiCrack/HSBHelper.exe to validate the file integrity.

The generated output file must match the name specified in HackShield_Impl.cpp. If your executable is signed, ensure this is completed after generating the HSB. For packers other than UPX, select the "Execute Packet Exe File" option.

7. Additional Configuration

To set the HackShield update server, open Util/HSUpSetEnv.exe. This facilitates the updating of HackShield files from a remote server.

If you want FTP transfer capabilities, you need to configure an FTP server with your desired username and password. Share the PatchSet folder on your web server for updates.

8. Disabling HS Monitor and Customization

For customization, you can modify the name and version in UserInterface/HackShield.cpp:

 
This is the hidden content, please

Make sure to adjust the locale prefix if you change the locale folder:

 
This is the hidden content, please

For modifying the name and folder of EhSvc.dll, edit the relevant sections in the code as shown in the original tutorial.

Conclusion

Following this guide should enable successful integration of the HackShield SDK into your Metin2 project. If you have further inquiries or require clarifications, don’t hesitate to reach out!

Link to comment
Share on other sites


Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

spacer.png

Disable AdBlock
The popup will be closed in 5 seconds...