Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/25/21 in all areas

  1. I think this vulnerability is caused because, in CInputHandshake::Analyze, it keeps the connection open even if the processed packet fails, so the same connection can send infinite packets increasing the buffer size until it reaches 4gb of ram (32bit binary limit). Replace every return -1; there with { d->SetPhase(PHASE_CLOSE); return 0; } And that's all. yfw: int analyze_protect{0}; int analyze_protect_count{0}; If you're working on files that don't have c++11 enabled in 2021, you're probably doing something deep wrong.
    3 points
  2. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) I would not recommend using this as it's missing many features, head over to Mali's release for an updated version. [Hidden Content]
    2 points
  3. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Python-Code-Translator-2-to-3 Is a Python program that reads Python 2.x source code and applies a series of fixers to transform it into valid Python 3.x code that works on all versions (py2.x - py3.x). The standard library contains a rich set of fixers that will handle almost all code. A flexible and generic library, so it is possible to write your own fixers based on your purposes. Warning: This tool purpose wasn't for doing the transition to python3, is just for the IDE purpose. INSTALLATION [Hidden Content] USING Add your .py scripts to the modules folder. Run main.bat Take the output files and move them into your application. FIXERS print Converts the print statement to the print() function. Matching multiple formats, comments, and more. Exception handling Convert except to except BaseException, since BaseException is the base class for all built-in exceptions. Converts except X, T to except X as T. xrange Renames xrange() to range() and wraps existing range() calls with list. has_key Changed dict.has_key(key) to dict..contains__(key) dict Fixes dictionary iteration methods. dict.iteritems() is converted to dict.items(), dict.iterkeys() to dict.keys(), and dict.itervalues() to dict.values(). Similarly, dict.viewitems(), dict.viewkeys() and dict.viewvalues() are converted respectively to dict.items(), dict.keys() and dict.values(). It also wraps existing usages of dict.items(), dict.keys(), and dict.values() in a call to list. exec - TODO Converts the exec statement to the exec() function. apply - TODO Removes usage of apply(). For example apply(function, *args, **kwargs) is converted to function(*args, **kwargs). raise - TODO Converts raise E, V to raise E(V), and raise E, V, T to raise E(V).with_traceback(T). If E is a tuple, the translation will be incorrect because substituting tuples for exceptions has been removed in 3.0. You can use it together with Skeleton of Python modules for IDE, from @Takuma. Download: [hide][Hidden Content]]
    2 points
  4. Here's a pretty good writeup about the subject: [Hidden Content] TLDR; get an OVH server, enable the permanent DDoS protection, use secondary IPs for your public stuff, set up pf, rate limit your auth ports and game ports as well because Layer 7 attacks on Metin2 are getting popular and not just the typical auth flood. These usually work by flooding poorly written systems that directly interact with the database. The golden rule for both your website and game is that a user should not be able to trigger a database connection or query directly and unrestricted (such as through loading a page or sending a packet). Either use a cache (the dbcache in Metin or Redis for web applications are an example) or throttle the connection (you can use nginx's ReqLimit module in a webserver and pf in your game server) Another case of involuntary DDos is when your server is too successful and people jam your uplink trying to download or patch your client.
    2 points
  5. First things first, here's a rough (and obviously incomplete) explanation. You'd differ between DoS and DDoS. DoS (Denial of Service) simply put is using up the resources of the machine by leveraging on a weak spot of the program. You'll see often people targeting the auth server and flooding it with packets and if the server has bad code in it, it'll use up too many resources. This could lead to lags or in worst cases the server to not respond anymore. Now, if you think DoS is bad, we're gonna take it to a new level: DDoS (Distributed Denial of Service). This time it's not only one pc trying to flood the server and consuming all it's resources.. it's a lot. The strength of the attack varies and depends on how many attackers are gonna target your server. There are many ways on how a DDoS works and you don't necessarily need to leverage on bad code in order to attack the server: Even a SYN/FIN Flood can make the server say bye bye - or at least it would, if it could. Now let's get on how to protect against it. If you know how it works you can think about a few strategies on how to fortify against those attacks: 1. Make sure your source doesn't have flaws that could be exploited by attackers to use up your resources 2. Set up a good hardware firewall to block incoming attacks 3. Configure your firewall correctly to drop connections once a connections seems to go mad 4. Harden your system (there are some tunables you can set to harden your system a bit against attacks) There are also more techniques (rerouting traffic, etc..) but I guess for the most people this does not matter too much.
    2 points
  6. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) [Hidden Content]
    1 point
  7. M2 Download Center Download Here ( Internal ) [Hidden Content]
    1 point
  8. M2 Download Center Download Here ( Internal NEW V2 ) Download Here ( GitHub ) Includes winter and day-night change.
    1 point
  9. M2 Download Center Download Here ( Internal ) Intro This release will explain how to "convert" your root .py files to .c ones. Actually, Cython only converts those files to pure CPython code. Download Main Branch VS Impl Branch (highly suggested) As requested by many people, you can download the compatible and clean official cn root dated 20131228-0034 without further edits: rootCn_20131228-0034_edit.rar uiscriptCn_20131228-0034.rar cN-serverinfo-edit.py Is Cython really worth it? Pros All the modules are compiled, and they can't be "extracted as .py" anymore. We can always disassemble the launcher with IDA, but the result will be pseudo-c code after waiting 6-8h of analyzing. Since we're not using .pyx files but directly .py ones, there's no "so much optimization". At least, 10% of performance increasing is guaranteed. Cons For testing purposes, it's heavy to maintain. Everytime you try to re-compile your root files, you should wait 5-10 minutes. You can always use the uncythonized root (.py files) when you perform tests, and compile cython whenever you will make an update in your live server. The launcher's size will increase ~10mb. You can actually pack it to save space. If you directly use a .pyd (still 10mb), the launcher's size won't increase. VideoTutorial Credits Me (lollo_9_1/martysama0134) Night (OST suggestion) Random Testers What's New: vsimpl Visual studio implementation automatic cythonization when compiling only the edited files will be compiled v2.0 The module's name check is now case-insensitive (colorInfo == colorinfo) Added a new function rootlib/uiscriptlib.getList() to retrieve a tuple of all the available cythonized modules. Now you can compile a uiscriptlib library from the uiscript*.py files! (implemented as __USE_EXTRA_CYTHON__) Added a sample ui.py containing the code to run uiscriptlib.
    1 point
  10. Hello, int CInputMain::Analyze(LPDESC d, BYTE bHeader, const char * c_pData) if (ch && ch->IsPC()) { if (get_global_time() < ch->analyze_protect) { ch->analyze_protect_count = ch->analyze_protect_count + 1; ch->ChatPacket(CHAT_TYPE_INFO, "<test server> analyze_protect_count. Count %d", ch->analyze_protect_count); if (ch->analyze_protect_count >= 300) { ch->analyze_protect_count = 0; d->SetPhase(PHASE_CLOSE); return (0); } } else ch->analyze_protect_count = 0; ch->analyze_protect = get_global_time() + 1; } In char.h int analyze_protect; int analyze_protect_count; In void CHARACTER::Initialize() and Destroy analyze_protect = 0; analize_protect_count = 0;
    1 point
  11. M2 Download Center Download Here ( Internal ) GitHub repository: [Hidden Content]
    1 point
  12. A good degree in telecommunications.
    1 point
  13. M2 Download Center Download Here ( Internal ) The characters on the icons are in standard costumes and hairstyles. Download: [Hidden Content]
    1 point
  14. Cool, I'm adding it in our server.
    1 point
  15. Hacking / Cheating Metin2 Dev is not a cheat or hack board. We do not tolerate any messages about hacking, cheating on Metin2 or decrypting Metin2 clients from Metin2 private servers. Banishment We ban all accounts that are linked to the same IP address. If you share your account, you accept your responsibility and you accept the consequences if your IP address or a linked account is banned. The rule also applies to the use of VPN, Proxy.
    1 point
  16. Great job, as always
    1 point
  17. 1 point
  18. M2 Download Center Download Here ( Internal ) VirusTotal Download Password: jawwad@wk
    1 point
  19. [Hidden Content] Fixed, the function didn't allowed you to login with the normal method, just with the saved account from acp.py, now will work both of them.
    1 point
  20. Change the function __OnClickLoginAutoButton with: [Hidden Content]
    1 point
  21. You're right, but if you really want to use something like this, you should do a customizable class, like: [Hidden Content]
    1 point
  22. Something I wrote in a hurry. introLogin.py (add it to the end of the lines) [Hidden Content]
    1 point
  23. M2 Download Center Download Here ( Internal ) Hello guys, I have finished couple mounts from wow and I would like to share this one with you! Best Regards, Baltazar
    0 points
×
×
  • 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.