Jump to content

TOM_RUS

Members
  • Posts

    164
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by TOM_RUS

  1. Do you have some info about the RSA key used (modulus size, public key) and how it is used ?

    If the key size is small enough, it could be brute-forced (see distributed.net efforts... and now, we habe more powerful computers + CUDA)

    Also, even strong crypto can be defeated if used in a wrong way...

    If we have a packet with only a few bytes crypted (and useful), we could aswell bruteforce a crypted value which, when decrypted leads to the desired value for these bytes... which could ask much less work than reversing the key.

    Modulus size is 256 bytes (2048 bit), exponent size is 4 bytes.

  2. Hi guys,

    I'm trying to make this work with wine on ubuntu 10.04. I have do the following:

    - Installed wine and winetricks

    - Installed the vcrun2010s dlls with winetricks (to get msvcp100.dll)

    - Compile and copy the binaries and dlls from windows to ubuntu.

    But when I try to run wardend.exe from terminal it gives me some errors:

    [email]user@user-desktop:~/.wine[/email]/dosdevices/c:/Program Files/wardend$ wine wardend.exe
    Trying to load PE image for unsupported architecture (AMD-64)
    err:module:import_dll Loading library MSVCP100.dll (which is needed by L"C:\\\\Program Files\\\\wardend\\\\ACE.dll") failed (error c000007b).
    err:module:import_dll Library ACE.dll (which is needed by L"C:\\\\Program Files\\\\wardend\\\\wardend.exe") not found
    Trying to load PE image for unsupported architecture (AMD-64)
    err:module:import_dll Loading library MSVCP100.dll (which is needed by L"C:\\\\Program Files\\\\wardend\\\\wardend.exe") failed (error c000007b).
    err:module:LdrInitializeThunk Main exe initialization for L"C:\\\\Program Files\\\\wardend\\\\wardend.exe" failed, status c0000135
    

    So, the "Trying to load PE image for unsupported architecture (AMD-64)" is because I have compiled for win32 and my ubuntu is x64, isn't it?

    But, anyone knows what's happening with MSVCP100.dll and ACE.dll? I have ACE.dll in the same folder with wardend.exe and I have copied it in System32 to be sure. Anyone was able to get this working on Linux? Any tips, advices? I'm not used to wine :S

    Of course, thanks for the patch. It looks very well ^^

    Are you sure your windows binaries compiled as x86? Because it looks like they aren't. I guess it's better to look for similar errors on unix/wine forums.

  3. In this case, some clients can be kicked because of some problems to synchronize between mangosd and wardend

    This is because data stream encryption is desynchronized. You have to do both encryption and checks in either wardend or mangosd to fix this.

    Also

    The easiest way to fix this problem will be move all cheat checking code from wardend to mangosd, and use wardend only to get encryption keys... It will also reduce useless network traffic between wardend<>mangosd and make it faster overall.

    will eliminate desync problem.

  4. May be it's time to move it to public section? I've done limited testing and it seems to work :)

                       if (memContent[i]!=checkList[i].mem->Result[pos])
                           valid = false; // It returns false because I need to have proper result stored for 3.3.5
    

    I changed it to "false" and haven't got kicked, I guess you already have proper data in DB.

    Also your MEM_CHECK and FILE_CHECK client structs probably wrong for cases where "memory can't be read" or "file doesn't exist".

  5. About MPQ file check, how to check it fully?

    I don't want to extract the MPQ to check all the files and this check is only for people that change the textures, do we care?

    But hes I will test the result, not the SHA1, or I can put some SHA1 of files in the DB but I doubt it is useful.

    Do you have other idea for the SHA1?

    For grammar, I will check. When I am tired, my English is horrible ;)

    Cheaters can change whole game world, not just textures. It's not that hard to put SHA1 of the files in DB in addition to file names. This can be useful for someone.

  6. Memory check are not validated too (so I accept anything) because I don't know what the client returns.

    Client returns n bytes from memory address specified in cheat check packet. So you can just query your client with all mem checks and store results. If you receive some different result, something is wrong, as it's mostly used for checking read only code segment. Ofc there's some checks for data segment as well (like wall climb angle, gravity etc...)

    Timing are not validated because I don't know how to compute the client tick count from the server. I simply accept any value.

    Client returns it's tickcount in CMSG_TIME_SYNC_RESP packet.

  7. because as i read in DBC not include this event for future times. So 3.x client can't show it. This is impossible fix from server side.

    Actually, I think it's possible to send Holidays data using SMSG_CALENDAR_SEND_CALENDAR. This opcode has uint32[26] array and two uint32[10] arrays similar to Holidays.dbc. I think we can take data from 4.x Holidays.dbc and send them in SMSG_CALENDAR_SEND_CALENDAR. Ofc that's only theory, I haven't tried to do that...

  8. You can use lua APIs:

    ReportBug("description")

    ReportSuggestion("description")

    CMSG_BUG struct (same as in master branch):

    uint32 type; // 0, 1 - bug or suggestion
    uint32 data_len;
    string data; // some additional data, like map, character, system info, coords, zone, auras etc...
    uint32 desc_len;
    string desc; // description given by user
    

×
×
  • 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. Privacy Policy Terms of Use