skarlot
06-25-2008, 04:03 AM
The purpose of this is to detail stuff that doesn't belong in the setup guide.
1) Can I get the code?
2) About the injected DLL?
3) Allowing a toggle key to pass through
4) The Alt-Tab window gets stuck?
5) An easier way to exit with 'close to systray'?
1) Can I get the code?
No, there is no ambiguity on this matter now. It is closed-source. It has been open source for 6 months, which is extra work for myself to keep it to that standard, but hasn't really helped the project, even to the point of a single bug fix or such.
2) About the injected DLL?
Is it safe???
DLL injection isn't inherently unsafe. A quick glance at processes with OllyDebug (for example) will reveal third party DLL's in all processes most likely. Not limited to virus scanners, rogue software (like Apple Bonjour) and so on. Windows provides many valid global hooks that inject DLL's into all processes after execution (AFAIK) such as the computer business training hook (lol). It is also theoretical any 3rd party desktop theming software would do so. An open source program written to monitor Warden called the Governor *tries* to do this (although the code seems to be borked). Fraps also needs to do this. So it would be reasonable to conclude that its a safe practice as far as with WoW. Without giving too much away, my DLL does not attempt to modify the way WoW behaves in it's own code, but rather is the middle-man between the OS and the game, by detouring system calls, and gives WoW the impression the cursor is here or there, because Windows only has one real cursor. No additional threads are created in WoW - it is a simple passive system triggered by sending WoW windows messages, and obtains it's information via shared memory. It is well within Blizzard's capability to block background clicks all together, if they really cared, so I wouldn't be concerned.
Is it detectable???
Probably, I should think so. It will make no attempt (ever) to hide from Warden, however. Should it be banned / blocked on login, it will not return. But you must remember, that by writing this software I am helping Blizzard's revenue, and for them to go as far as banning an account, is highly unlikely since they will risk this software dissapearing all together. In reality, they probably know about this program by now, and are quite happy that the effort is being made, since it is way beyond any effort they seeming make to fix their follow bug!! Using Octopus without hooking WoW windows (via profile) is the same as before.
How does it modify current, pre-1.3.3 behaviour?
Any number of WoW windows can be hooked. Doing so by default, removes the need for the click-activation. It also force enables the window to receive broadcast clicks. Broadcast clicks only work this way if cursor broadcast is on as well, otherwise the clicks will revert to the cyclic method. For multi-window cursor broadcast to work on non-active clients, each client must have a cursor broadcast window to determine where the real cursor should go.
3) Allowing a toggle key to pass through?
Yes this is possibly by mapping a key to itself, before setting the key as a toggle, or whilst broadcast pausing is active.
4) The Alt-Tab window gets stuck?
Pressing escape will destroy the alt-tab window if it gets stuck. Something about the hooks it doesn't like.
5) An easier way to exit with 'close to systray'?
By holding shift and clicking the control box (X) it will force exit.
1) Can I get the code?
2) About the injected DLL?
3) Allowing a toggle key to pass through
4) The Alt-Tab window gets stuck?
5) An easier way to exit with 'close to systray'?
1) Can I get the code?
No, there is no ambiguity on this matter now. It is closed-source. It has been open source for 6 months, which is extra work for myself to keep it to that standard, but hasn't really helped the project, even to the point of a single bug fix or such.
2) About the injected DLL?
Is it safe???
DLL injection isn't inherently unsafe. A quick glance at processes with OllyDebug (for example) will reveal third party DLL's in all processes most likely. Not limited to virus scanners, rogue software (like Apple Bonjour) and so on. Windows provides many valid global hooks that inject DLL's into all processes after execution (AFAIK) such as the computer business training hook (lol). It is also theoretical any 3rd party desktop theming software would do so. An open source program written to monitor Warden called the Governor *tries* to do this (although the code seems to be borked). Fraps also needs to do this. So it would be reasonable to conclude that its a safe practice as far as with WoW. Without giving too much away, my DLL does not attempt to modify the way WoW behaves in it's own code, but rather is the middle-man between the OS and the game, by detouring system calls, and gives WoW the impression the cursor is here or there, because Windows only has one real cursor. No additional threads are created in WoW - it is a simple passive system triggered by sending WoW windows messages, and obtains it's information via shared memory. It is well within Blizzard's capability to block background clicks all together, if they really cared, so I wouldn't be concerned.
Is it detectable???
Probably, I should think so. It will make no attempt (ever) to hide from Warden, however. Should it be banned / blocked on login, it will not return. But you must remember, that by writing this software I am helping Blizzard's revenue, and for them to go as far as banning an account, is highly unlikely since they will risk this software dissapearing all together. In reality, they probably know about this program by now, and are quite happy that the effort is being made, since it is way beyond any effort they seeming make to fix their follow bug!! Using Octopus without hooking WoW windows (via profile) is the same as before.
How does it modify current, pre-1.3.3 behaviour?
Any number of WoW windows can be hooked. Doing so by default, removes the need for the click-activation. It also force enables the window to receive broadcast clicks. Broadcast clicks only work this way if cursor broadcast is on as well, otherwise the clicks will revert to the cyclic method. For multi-window cursor broadcast to work on non-active clients, each client must have a cursor broadcast window to determine where the real cursor should go.
3) Allowing a toggle key to pass through?
Yes this is possibly by mapping a key to itself, before setting the key as a toggle, or whilst broadcast pausing is active.
4) The Alt-Tab window gets stuck?
Pressing escape will destroy the alt-tab window if it gets stuck. Something about the hooks it doesn't like.
5) An easier way to exit with 'close to systray'?
By holding shift and clicking the control box (X) it will force exit.