Jump to content

scrabbyyy

Member
  • Posts

    210
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by scrabbyyy

  1. This is already discussed, but I will summarize the history here so you can answer to that thread in MPC.

     

    In 8th August 2014 a hacker hired by the owner of metin2.sg, Christopher Chia, infected one of the employees of the hosting company Eterhost. Through this employees' PC, he downloaded the WoM repository, database and website -which were hosted there- and deleted all of Eterhost customer's data (about 100 VPS or 5 TB worth of data). This became the most destructive hacking event ever happened in the metin2 world. 

     

    About 2 months later Christopher Chia himself (using an account called "AVeryGenerousMan") released all of these WoM files in epvp hoping to get some applause for his hacking endeavors. His server got ddosed by epvp users instead.

     

    More information about SG's criminal history is

    :) :) :) :)

  2. friends i wanna use my direct internal ip in windows like linux network system so u write your public ip in linux network settings but i wanna use this system in windows

     

    so how to maybe with modem configuration or network adapter configuration or how?

     

    so i not want to use 192.168.x.x just wanna use direct my external ip wanna get it direct with modem

  3. Hello everyone, i want to announce you that i stopped working on this source core. However , the source will remain open at anytime for anyone. 

    The main reason is that people are contacting me to resolve their bugs , to sell them my own core ( which i will never do probably ) because i like to help for free. But not compiling for every person anothe source.

    As of today ( 16 Feb ) i will stop the activity on this Source. I'll start in the future another project ( new revision ) but without the 5th Character. ( will be added later by yourself as it will be a open-source ) 

    I hope you all understand and will not get mad at me.

    I want to thank everybody that contributted to this!

     

    The topic can remain open for any discussions & oppinions.

     

     

    Best regards,

    Syron

    :):)

  4. Hello folks.

     

    Today i will show you have to solve some more or less serious bugs.

     

    P2P BASHPANEL:

    First of all, well mentioned bashpanel.

    The main cause of this bug is the fact, that game is opening the connection on the Public IP instead of Internal IP.

    First of all, let's talk about what P2P connections are.

    P2P is a way for all cores to communicate with each other.

    The main problem is that, whenever core receives a P2P packet, it doesn't check, if the sender is another core. That's a problem, becouse u can spoof the packet (for ex. using Infinity BashPanel, or simply any packet forge).

    The fix is really simple and already implemented, but was unnecessarliy commented out.

    Let's find: (in main.cpp)

     

    if ((p2p_socket = socket_tcp_bind(g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    

    As we see, p2p is deafult for the PublicIP, but above that, we can see:

    // if internal ip exists, p2p socket uses internal ip, if not use public ip
    	//if ((p2p_socket = socket_tcp_bind(*g_szInternalIP ? g_szInternalIP : g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    

    and that's the way how it should look. 

    To apply it, simply make it look like this:

    // if internal ip exists, p2p socket uses internal ip, if not use public ip
    if ((p2p_socket = socket_tcp_bind(*g_szInternalIP ? g_szInternalIP : g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    //if ((p2p_socket = socket_tcp_bind(g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    

    instead of:

    // if internal ip exists, p2p socket uses internal ip, if not use public ip
    	//if ((p2p_socket = socket_tcp_bind(*g_szInternalIP ? g_szInternalIP : g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    	if ((p2p_socket = socket_tcp_bind(g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    

    First bug fixed.

     

    Another way (for older revisions) is to use IPFW or other PacketFilters managers to block WAN connection on P2P ports.

    DB Account BUG:

    Let's move on.

    When DB port is Publicly available, user, which knows the account id, can simply use it.

    To fix it, let's make a "brute" fix, another way (using older revisions) is to write:

    BIND_IP: 127.0.0.1
    

    in ur config file, but let's fix it more quietly. 

    Simply move to ClientManager.cpp in DB, and change it like so:

    from:

    if (!CConfig::instance().GetValue("BIND_IP", szBindIP, 128))
    		strlcpy(szBindIP, "0", sizeof(szBindIP));
    

    to:

    if (!CConfig::instance().GetValue("BIND_IP", szBindIP, 128))
    		strlcpy(szBindIP, "127.0.0.1", sizeof(szBindIP));
    

    That's it. Fixed.

     

    Kind regards.

    so i tested with all arguments that just for close bind_ip or active

     

    so still cant connect my server with my local ip adress but players can join with bind_ip channel1

  5. Hello folks.

     

    Today i will show you have to solve some more or less serious bugs.

     

    P2P BASHPANEL:

    First of all, well mentioned bashpanel.

    The main cause of this bug is the fact, that game is opening the connection on the Public IP instead of Internal IP.

    First of all, let's talk about what P2P connections are.

    P2P is a way for all cores to communicate with each other.

    The main problem is that, whenever core receives a P2P packet, it doesn't check, if the sender is another core. That's a problem, becouse u can spoof the packet (for ex. using Infinity BashPanel, or simply any packet forge).

    The fix is really simple and already implemented, but was unnecessarliy commented out.

    Let's find: (in main.cpp)

     

    if ((p2p_socket = socket_tcp_bind(g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    

    As we see, p2p is deafult for the PublicIP, but above that, we can see:

    // if internal ip exists, p2p socket uses internal ip, if not use public ip
    	//if ((p2p_socket = socket_tcp_bind(*g_szInternalIP ? g_szInternalIP : g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    

    and that's the way how it should look. 

    To apply it, simply make it look like this:

    // if internal ip exists, p2p socket uses internal ip, if not use public ip
    if ((p2p_socket = socket_tcp_bind(*g_szInternalIP ? g_szInternalIP : g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    //if ((p2p_socket = socket_tcp_bind(g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    

    instead of:

    // if internal ip exists, p2p socket uses internal ip, if not use public ip
    	//if ((p2p_socket = socket_tcp_bind(*g_szInternalIP ? g_szInternalIP : g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    	if ((p2p_socket = socket_tcp_bind(g_szPublicIP, p2p_port)) == INVALID_SOCKET)
    

    First bug fixed.

     

    Another way (for older revisions) is to use IPFW or other PacketFilters managers to block WAN connection on P2P ports.

    DB Account BUG:

    Let's move on.

    When DB port is Publicly available, user, which knows the account id, can simply use it.

    To fix it, let's make a "brute" fix, another way (using older revisions) is to write:

    BIND_IP: 127.0.0.1
    

    in ur config file, but let's fix it more quietly. 

    Simply move to ClientManager.cpp in DB, and change it like so:

    from:

    if (!CConfig::instance().GetValue("BIND_IP", szBindIP, 128))
    		strlcpy(szBindIP, "0", sizeof(szBindIP));
    

    to:

    if (!CConfig::instance().GetValue("BIND_IP", szBindIP, 128))
    		strlcpy(szBindIP, "127.0.0.1", sizeof(szBindIP));
    

    That's it. Fixed.

     

    Kind regards.

    ohhh

     

    friend can i join to my windows server with my local ip 192.168.x.x or localhost with bind_ip of config channel1 ?

     

    if that possible with this u are awesome

     

    i will check it

     

    please look here and reply to me please:

     

     

    so my players connecting with bind_ip of config file from channel 1 but i cant join then with me local ip to my server

     

    that both connect will possible with this ?

×
×
  • 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.