Jump to content

Recommended Posts

Hi guys.

The game core sends different login result to the server for password wrong and user id not found.

Just one example it's possibile to test with sending packets 9 accounts per second.

 

Affects: Every game core

 

Fix:

Search for this in input_db.cpp:

case HEADER_DG_LOGIN_NOT_EXIST:
		LoginFailure(DESC_MANAGER:.instance().FindByHandle(m_dwHandle), "NOID");
		break;

case HEADER_DG_LOGIN_WRONG_PASSWD:
		LoginFailure(DESC_MANAGER:.instance().FindByHandle(m_dwHandle),	"WRONGPWD");
		break;

and replace the WRONGPWD with NOID.

 

So you blocked the way to detect if an account exists.

 

Best Regards,

Mr.Slime

  • Love 6
Link to comment
https://metin2.dev/topic/10718-login-name-checker/
Share on other sites

  • Premium
35 minutes ago, Mr.Slime said:

C++ better of .txt ahahha ;)

The result is just the same, no matter which one is better, the locale_game.txt method is a bit better because you don't have to change anything in sources and moreover the result will be exactly the same

Link to comment
https://metin2.dev/topic/10718-login-name-checker/#findComment-63222
Share on other sites

Okay you can change locale_game.txt but what if a user changes it back?

c++ > txt files

With his fix the server won't respond with an accurate message. Next thing is that people could write a tool to connect with the server and start the bruteforce - this way they won't even need the locale_game.txt and just fetch the result packet the server sends them. Telling people to consider changing a simple text file on a local client instead of a serverside source isn't really that secure^^' It's easier, yes. But comfortability sacrifices security.

 

Therefore: Thanks, I for myself didn't see it. Should be in the next vanilla core release with an option to change it (of course on by default so make sure it's secure)

  • Love 2

We are the tortured.
We're not your friends.
As long as we're not visible.
We are unfixable.

Link to comment
https://metin2.dev/topic/10718-login-name-checker/#findComment-63223
Share on other sites

  • Premium

I never told .txt was more secure than c++ but it's really more usefull to create a new error message with packet than using the NOID statement, or at least change the text in locale_game.txt

However, if the client is securized a bit, there won't be any problem for locale_game, but indeed you can trace the packet to fetch the result, you're right !

So yeah, c++ method is way better than only a locale_game.txt method, but I think using both could be better (new packet, new error, new message)

Link to comment
https://metin2.dev/topic/10718-login-name-checker/#findComment-63224
Share on other sites

Don't use any images from : imgur, turkmmop, freakgamers, inforge, hizliresim... Or your content will be deleted without notice...
Use : https://metin2.download/media/add/

Please use https://metin2.download/ when uploading files smaller than 100MB, otherwise the approval will take longer due to manual upload.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / 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.