recognize quiet disconnects menu

Shout-Out

User Tag List

Results 1 to 12 of 12
  1. #1
    klucky's Avatar Member
    Reputation
    1
    Join Date
    Jun 2009
    Posts
    11
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    recognize quiet disconnects

    Hello!
    Sometimes wow disconnects in some kind of quiet mode. You dont get the disconnect message and will be able to run arround in the world and see the mobs which where near you when the dc happend. Is there any pointer or method with which i can recognize this kind of disconnect?
    Thx for your help!
    MFG Klucky

    recognize quiet disconnects
  2. #2
    Robske's Avatar Contributor
    Reputation
    305
    Join Date
    May 2007
    Posts
    1,062
    Thanks G/R
    3/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I suppose you could force Wow to send a 'CMSG_PING' packet and wait for the 'SMSG_PONG', although I'm not sure how these actually behave.

    Anyway, I don't think I ever experienced such a disconnect without 'malicious' code being ran. (bots/hacks) So you might want to review that.
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding
    "I cried a little earlier when I had to poop" - Sku

  3. #3
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Somewhere in the CG_CClientConnection (or w/e it's called) class there's an "IsConnected" boolean. (Or rather, there used to be. Not sure if there still is.)

  4. #4
    klucky's Avatar Member
    Reputation
    1
    Join Date
    Jun 2009
    Posts
    11
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    this kind of disconnects especially happen on private servers .

    i guess the "force Wow to send a 'CMSG_PING' packet and wait for the 'SMSG_PONG'" thing could work ... i will try this out ...

    i think the "IsConnected" boolean will be 1 on this kind of disconnect cause else there would be an real disconnect or am i wrong?

    008CD4C0 ServerLink__CMD_GRUNT_CONN_PING
    008CBE00 ServerLink__CMD_GRUNT_CONN_PONG

    mhh and how do i send a focre ping with this?
    Last edited by klucky; 11-09-2010 at 07:49 AM.

  5. #5
    Robske's Avatar Contributor
    Reputation
    305
    Join Date
    May 2007
    Posts
    1,062
    Thanks G/R
    3/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post
    Somewhere in the CG_CClientConnection (or w/e it's called) class there's an "IsConnected" boolean. (Or rather, there used to be. Not sure if there still is.)
    That crossed my mind, but from his description it seems that Wow is unaware of the 'disconnected' state (as he stays in the game world). So I doubt CClientConnection::IsConnected would work.

    Originally Posted by klucky View Post
    this kind of disconnects especially happen on private servers .

    i guess the "force Wow to send a 'CMSG_PING' packet and wait for the 'SMSG_PONG'" thing could work ... i will try this out ...

    mhh and how do i send a focre ping with this?
    Send the packet yourself? http://arcemu.org/wiki/index.php?title=CMSG_PING
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding
    "I cried a little earlier when I had to poop" - Sku

  6. #6
    ramey's Avatar Member
    Reputation
    45
    Join Date
    Jan 2008
    Posts
    320
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    There's a connectionStatus offset of the NetClient class, which returns the current connection state. You should be able to reverse it really easy once you find it. There is also a Disconnect VMT function, which then you can force Disconnect, which works fine when connected and it disconnects you.

    I'm having some problems dealing with this 'quiet' disconnect too. The connectionStatus does change however and you can recognise if you're quietly disconnected by checking that and if you're in game.

    I'm just having problems with calling Disconnect VMT function because it boots to a ****ed up login screen for me.

    Let me know if you find anythingz.

    To Robske ^: It actually is aware, at least in the connectionStatus.

  7. #7
    klucky's Avatar Member
    Reputation
    1
    Join Date
    Jun 2009
    Posts
    11
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Mhh if i can recognize this quiet disconnects with connectionStatus offset it would be fine for me because i would completly restart wow then anyway. But atm i cant find this "connectionStatus offset" for 3.3.5a in http://www.mmowned.com/forums/world-...mp-thread.html.
    This are the only things with connection which i found:
    00465320 ClientConnection___ClientConnection
    00465450 ClientConnection___scalar_deleting_destructor_
    006B18C0 ClientConnection__CharacterAbortLogout
    004650E0 ClientConnection__ClientConnection
    00464410 ClientConnection__HandleAddonInfo
    00464640 ClientConnection__HandleAuthResponse
    00464780 ClientConnection__HandleCharacterLoginFailed
    00464C10 ClientConnection__HandleCharEnum
    00464730 ClientConnection__HandleClientCacheVersion
    00464A40 ClientConnection__SendCharEnumOpcode
    00464AB0 ClientConnection__SendPlayerLoginOpcode

    but i dont know if they are the right ones.

  8. #8
    BoogieManTM's Avatar Active Member
    Reputation
    52
    Join Date
    May 2008
    Posts
    193
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you're in-process I would personally check the socket itself. There's a few ways to do this, one being calling select() on the socket, and seeing if you get a FD_CLOSE, another would be to call getpeername(), if all is well it will return 0, otherwise there is a problem.

    Also in process you could just hook wow's recv() function and monitor how often it is called. you should be getting packets consistently and any 5-10 second delay is likely a serious problem.

  9. #9
    ramey's Avatar Member
    Reputation
    45
    Join Date
    Jan 2008
    Posts
    320
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by klucky View Post
    Mhh if i can recognize this quiet disconnects with connectionStatus offset it would be fine for me because i would completly restart wow then anyway. But atm i cant find this "connectionStatus offset" for 3.3.5a in http://www.mmowned.com/forums/world-...mp-thread.html.
    This are the only things with connection which i found:
    00465320 ClientConnection___ClientConnection
    00465450 ClientConnection___scalar_deleting_destructor_
    006B18C0 ClientConnection__CharacterAbortLogout
    004650E0 ClientConnection__ClientConnection
    00464410 ClientConnection__HandleAddonInfo
    00464640 ClientConnection__HandleAuthResponse
    00464780 ClientConnection__HandleCharacterLoginFailed
    00464C10 ClientConnection__HandleCharEnum
    00464730 ClientConnection__HandleClientCacheVersion
    00464A40 ClientConnection__SendCharEnumOpcode
    00464AB0 ClientConnection__SendPlayerLoginOpcode

    but i dont know if they are the right ones.
    They're functions, not offsets to a structure. Put some effort in and you'll find it easily.

  10. #10
    ddebug's Avatar Contributor
    Reputation
    114
    Join Date
    Sep 2010
    Posts
    117
    Thanks G/R
    0/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by BoogieManTM View Post
    If you're in-process I would personally check the socket itself. There's a few ways to do this, one being calling select() on the socket, and seeing if you get a FD_CLOSE, another would be to call getpeername(), if all is well it will return 0, otherwise there is a problem.

    Also in process you could just hook wow's recv() function and monitor how often it is called. you should be getting packets consistently and any 5-10 second delay is likely a serious problem.
    this. I was going to recommend the same thing.

    Anyway, klucky, I know what you're saying. That "disconnect" that doesn't "disconnect" the client (you can still move around in world; but you can't talk/use spells/etc...) still closes the tcp connection, but doesn't, for some strange reason, tell the client the server "disconnected" them (doesn't push them to the log-in selection screen). This makes me believe that it MUST be a bug within the client, moreso than anything else [not checking the state of the connection or whatever]. Therefore, I don't believe you will be able to retrieve the "IsConnected" status like Cypher recommended.

    I'd say do Boogie's thang.

  11. #11
    andy012345's Avatar Active Member
    Reputation
    59
    Join Date
    Oct 2007
    Posts
    124
    Thanks G/R
    0/7
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Client expects realm server to kick them to back to character list in an event of a server crash.

    In the event of your net dieing you'll lose connection to the realm server (now bnet) which causes "You have been disconnected from server.".

    Do boogie's thing.

  12. #12
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Robske View Post
    That crossed my mind, but from his description it seems that Wow is unaware of the 'disconnected' state (as he stays in the game world). So I doubt CClientConnection::IsConnected would work.



    Send the packet yourself? http://arcemu.org/wiki/index.php?title=CMSG_PING
    Good point, I didn't actually read the first post, lol.

Similar Threads

  1. CE speed hack disconnect
    By renegade121 in forum World of Warcraft General
    Replies: 10
    Last Post: 06-03-2007, 03:08 AM
  2. Replies: 15
    Last Post: 01-01-2007, 07:38 PM
  3. Disconnection Question
    By BlueHazard in forum Community Chat
    Replies: 2
    Last Post: 10-13-2006, 11:19 PM
  4. [Program] Re-login on Disconnect
    By Cypher in forum World of Warcraft Bots and Programs
    Replies: 4
    Last Post: 05-14-2006, 01:01 AM
  5. AQ40 Disconnect lazy players
    By Matt in forum World of Warcraft Exploits
    Replies: 0
    Last Post: 05-02-2006, 01:13 PM
All times are GMT -5. The time now is 12:46 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search