Log in

View Full Version : Community Question



WoWMulti
02-27-2009, 06:13 PM
Fur,

I can see why you locked that previous thread. I understand.

Can you answer a few questions though.

1) How do I go about getting software sanctioned for posting and/or use on these forums?

2) Is this even something I can do? Meaning, is this board exclusive to Key Clone, whereas, anything else cannot be posted.

3) Besides posting source code, what can I do to prove legitimacy?

Thanks for your help.

Matt

WoWMulti
02-27-2009, 06:14 PM
Thanks for your help, I will do this...

WoWMulti
02-27-2009, 06:19 PM
PM Ellay for further discussion.

Based on your initial description of your software - I will drop the hammer on it anytime I see it here until its approved by forum administrators.Fur,

I won't post about it until I get it approved. Would you mind deleting the initial forum post?

Thanks for your help,

Matt

elsegundo
02-27-2009, 06:21 PM
PM Ellay for further discussion.

Based on your initial description of your software - I will drop the hammer on it anytime I see it here until its approved by forum administrators.Fur,

I won't post about it until I get it approved. Would you mind deleting the initial forum post?

Thanks for your help,

Matti have also replied to your post at worldofwar.net.
please bear in mind that this is for the safety of the community and not a personal attack against anyone who might be trying to develop new software.

Owltoid
02-27-2009, 06:24 PM
There are many programs other than Keyclone discussed on this website (such as my favorite, Hotkeynet). Similar to MouseClone, your advertised feature (more than one action per key press vs predetermined mouse X,Y) is against the ToS/EULA. I'm not sure why you're surprised that an unknown user posting illegal (in Blizzard's eyes) software with the downloading of an executable wouldn't be heavily frowned upon.

WoWMulti
02-27-2009, 06:28 PM
There are many programs other than Keyclone discussed on this website (such as my favorite, Hotkeynet). Similar to MouseClone, your advertised feature (more than one action per key press vs predetermined mouse X,Y) is against the ToS/EULA. I'm not sure why you're surprised that an unknown user posting illegal (in Blizzard's eyes) software with the downloading of an executable wouldn't be heavily frowned upon.I understand all of the above posts.

I honestly did not know this was against the ToS. I just started adding in features that I thought would be helpful to me and my buddy... I kept adding more and eventually this program turned out.

Can dual-boxing.com endorse a program that has such features? Or would it have to be removed first?

Thanks!

Matt

Vyndree
02-27-2009, 06:32 PM
I responded as an addendum to the locked thread, but I'll repeat here for posterity:



1) How do I go about getting software sanctioned for posting and/or use on these forums?

Software is not as much sanctioned by us as it is by Blizzard (in the case of programs that target WoW multiboxing). Your product was marketed as "safe" and "legal" to use with WoW, which is most certainly not the case.

It is generally a good idea to PM the owner of the website you wish to advertise on (whether or not your program is freeware) as a simple courtesy. If you had done that (to Ellay, site owner; or to another mod, who would've forwarded your message to Ellay), likely we would've caught the mistake before you went public with the program. So, as a general rule, message the website admin (for any site, not just ours) if you intend to advertise a new program on that website. It's respectful to the site owner and you can completely avoid any misunderstandings.


2) Is this even something I can do? Meaning, is this board exclusive to Key Clone, whereas, anything else cannot be posted.
If you look in the software forums, you'll find many products besides Keyclone. Your initial question, I've answered above. :)


3) Besides posting source code, what can I do to prove legitimacy?
A full and complete feature list. If the feature list contains no items which violate the WoW terms of use/eula, then you can make a good-faith claim that it is safe and legal for WoW. We do have programs which have the capability of breaking ToU features (indeed, Logitech G15s, Steelseries WoW mouse, Nostromo N52's can all break the rules if used incorrectly) -- the difference here is that they are very clear about the claims they make and which functions violate the rules (and, if applicable, how to turn these features off).

If you had come onto the forums without the claim of legality and safety for WoW, likely you would not have your program locked. However, listing which features should not be used for WoW would probably be a good idea (ala HKN's disclaimer ('http://hotkeynet.com/wow/wow-rules.html')), if you do choose this route. You know, a sort of "This plastic bag is not a toy" or "Do not eat" disclaimer.


Can dual-boxing.com endorse a program that has such features? Or would it have to be removed first?
We don't necessarily ENDORSE products as much as we allow discussion of products. If you're asking if it could be posted on this site, you'll have to ask Ellay for confirmation -- but, like I mentioned before, there are products that have the capability of delays/timers/macros (i.e. G15s, Nostromos, Steelseries WoW mouse, AHK, HKN...) but you must make it very clear which features are unacceptable and shouldn't be utilized. We don't allow false claims of legality on these forums, and we encourage developers to try and make their products as rule-abiding as possible -- or, if not, as clear as possible when it comes to features violating the rules.

We don't want to get anyone banned due to misinformation.

Jubber
02-27-2009, 06:51 PM
I hope you don't feel put off by these actions against your software. No hostility is meant in anyway. We as a community are very defensive about claims of "legality" and "safety". This is a hobby we all spend a great deal of time and money on so things like that, that pop up are red flags, especially by new users.

Let's face it, Blizzard has never openly layed claim to any third party software as being totally legal and safe, so I don't believe anyone can say their particular software is safe. Blizzard has named certain software as acceptable so long as their conditional is met. Again with discretion on their part. Much like the moderators have already indicated it's polite to email the site owner when you wish to advertise new software.

If you don't do that at least post what your software does, what kind of features are available and be totally honest as to what it can do. Then ask an opinion of the community. There are many many experienced and knowledgeable folks on these forums as i have found. That was something you could have done before making your claims.

Other than that welcome to these forums. Always great to meet another fellow boxer.

Vyndree
02-27-2009, 07:00 PM
Blizzard has never openly layed claim to any third party software as being totally legal and safe



Basically, im wondering if using Keyclone to send the same signal to multiple clients with one keypress is acceptable.
Im looking for a solid yes or no answer here :P
Yup, keyclone is fine.
Just make absolutely certain that you're not making more than one keypress (for the purposes of the word 'keypress' this includes a single key press AND release with no delays), or including delays between key-presses with each action.
Essentially, if you could legally create the command as a functional macro within the default user interface, then it should be okay.
http://dual-boxing.com/wiki/index.php/GM_Conversations#Keyclone

Caspian
02-27-2009, 07:04 PM
There are many programs other than Keyclone discussed on this website (such as my favorite, Hotkeynet). Similar to MouseClone, your advertised feature (more than one action per key press vs predetermined mouse X,Y) is against the ToS/EULA. I'm not sure why you're surprised that an unknown user posting illegal (in Blizzard's eyes) software with the downloading of an executable wouldn't be heavily frowned upon.I understand all of the above posts.

I honestly did not know this was against the ToS. I just started adding in features that I thought would be helpful to me and my buddy... I kept adding more and eventually this program turned out.

Can dual-boxing.com endorse a program that has such features? Or would it have to be removed first?

Thanks!

MattSee the big part there? If you did not know that, which is the core, fundamental philosophy blizzard has in regards to multi-boxing in addition to addons and hardware devices how could you make any claim to legitimacy, safety or (blizzard) legality?

That said, I appreciate your efforts to gain community approval to at least take a look at what you created. My personal recommendation to you would be to first review http://www.dual-boxing.com/wiki/index.php/GM_Conversations and figure out what it really means to be "safe and legal". Then create a "how to guide" with screen shots. Provide a full list of features, along with disclaimers about things that, if used, would be against the TOS/ELUA. Toss those up on here in the Software section and keep them permanently on your site.

That and anything that Vyn says. Do those and you will have a chance to make a better impression then the first impression you made.

Nisch
02-27-2009, 07:06 PM
I've disassembled this software and there are indeed delay subroutines built into the software:

An example of this:

Public Sub Delay(ByVal Time As Integer)
Dim num As Integer = (Environment.TickCount + Time)
Do While (Environment.TickCount < num)
Application.DoEvents
Thread.Sleep(2)
Loop
End Sub

And directed to the developer, what's the deal with AmericaRunsOnDunkin? ?(

I personally don't like running software that can talk home. Having a global keyboard hook as part of the software, it can easily be converted into a keylogger, you can replace the software without the user knowing, and then you're hacking accounts.

Too risky IMHO.

Nisch
02-27-2009, 07:09 PM
The part where I say the file can be replaced with a "hacked" file is this:

Private Function ReplaceUpdaterFile() As Boolean
Try
If File.Exists("WoWMultiUpdater.new") Then
If File.Exists("WoWMultiUpdater.exe") Then
File.Delete("WoWMultiUpdater.exe")
End If
File.Copy("WoWMultiUpdater.new", "WoWMultiUpdater.exe")
File.Delete("WoWMultiUpdater.new")
Return True
End If
Return True
Catch exception1 As Exception
Return False
End Try
End Function


That routine basically deletes the file you have there and replaces it. You could update their systems with a keylogger, and you have access to a LOT of accounts.

Not good.

Nisch
02-27-2009, 07:20 PM
It even says in the Assembly Description of the DLL you reference:

<Assembly: AssemblyDescription("MacroEngine provides the tools necessary to write software the automates tasks.")>

Bad juju.

WoWMulti
02-27-2009, 07:32 PM
It even says in the Assembly Description of the DLL you reference:

<Assembly: AssemblyDescription("MacroEngine provides the tools necessary to write software the automates tasks.")>

Bad juju.Yes, as I said before.. My MacroEngine I wrote was a conglomerate of a bunch of utility code pieced together. It's really a library I use when I write automated software. My primary work in software is automation, not for games persay, but I've created this library for personal use.

Yes, my application comes with an application WoWMultiUpdater.exe which downloads a file called listing.xml which contains information about the files the program uses. It's a self updating application. As I update it, it automatically downloads updates.

I understand the only function I have in my software right now that can possibly put someome at risk was the "automated delay" with keypresses. I honestly did not know this was not legal according to the ToS since I have a G15 Logitech which does the same thing. I assumed it was, and I was wrong I am sorry.

I understand I need a full feature list.. I am working on it.. Again please remember that I am just trying to get this software out there so I can get more feedback to make it more useful.

Also, the software does not use global keyboard hooking. The keyboard code I use is basically from a program called Auto IT. It simply registers a global hotkey then intercepts it when it's pressed and then forwards the response to the "hosts" when you set it up. Whether these "hosts" are another computer or a local running copy of WoW.

Thanks for all your feedback.

Matt

WoWMulti
02-27-2009, 07:35 PM
Haha, I was drinking Dunkin Donuts when I was writing that code.

It basically just tries to ensure that the application is being ran from the updater and not directly.

Also, any software for multiboxing would not exist without some way of "hooking" the keyboard. I use Windows API for creating global hotkeys, in no way do I create global keyboard hooks.

I'd be more than happy to post the code that shows this.

Or, you can use Reflector like the above posters already have to view all the logic....

I hate that program btw.. Does anyone know any good obfuscation software for .NET?
I've disassembled this software and there are indeed delay subroutines built into the software:

An example of this:

Public Sub Delay(ByVal Time As Integer)
Dim num As Integer = (Environment.TickCount + Time)
Do While (Environment.TickCount < num)
Application.DoEvents
Thread.Sleep(2)
Loop
End Sub

And directed to the developer, what's the deal with AmericaRunsOnDunkin? ?(

I personally don't like running software that can talk home. Having a global keyboard hook as part of the software, it can easily be converted into a keylogger, you can replace the software without the user knowing, and then you're hacking accounts.

Too risky IMHO.

Nisch
02-27-2009, 07:43 PM
Well, I would probably just create the class with routines specific to the program rather than using your macro engine. I'm aware of and have use AutoIT in the past. It, unfortunately, is one of those tools that Blizzard does not like.

Another suggestion would be making the update an option rather than mandatory. That would give people confidence that they don't HAVE to talk home to the mothership unless they want to. I totally understand the purpose of the file delete and replacement, but I'm just saying, this is one of those things that COULD be used in a bad way. Then if you get 100 people using your code that are 5 boxers, and you get a hair up your butt one day (not saying you would, but still), and you put in a bit of code that keylogs the username and passwords......then you have 500 account logins that you could do whatever you want with.

That's funny about the Dunkin Donuts........it's always interesting to see what other developers have for quirks. I remember working with someone last year that named routines in his software after his pets that have died. He felt it as a way of immortalizing them after they died. 8|

Yours is much more friendly, lol. :D

Jubber
02-27-2009, 07:56 PM
Actually Vyndree if you look there is a conditional when they said keyclone is ok. That is what I said in my post too. They've always included a conditional clause in an acceptance of the software. It's usually

" This software is good, (so long as it only does this)"

So i wouldn't take that as a completely 100% fool proof acceptance. Just my view. Hehe.



Edit: I apologize if I am getting off topic.

WoWMulti
02-27-2009, 08:03 PM
Nisch,

I understand everything you are saying, and I understand how powerful a programmer/program can be and how much damage a malicious program can be. The reason why I like having the control over updating the software is because you can ensure that everyone is using the proper version. I am using the same model I did over 2 years ago when I wrote Extreme Crafting and had over 2,000 people using it for EQ2. Basically what I am trying to say is, if eventually, if I decided to (which I'm not saying I am ) I wanted to unlock certain features for use down the road I can by limitting the updating and authentication aspect... Hence why both of those pieces are currently built in.

You are right, it comes down to trust... If someone is uneasy using any program out on the internet they have the option and free will to not use it, but for those who do try and use it, I'm giving them the ability to voice their opinions and get their features added to the software so that it becomes easier to use and makes the game more enjoyable.

The DLL I use for this has been in the making for over 3 years for me and I constantly reform it. I agree It probably has a lot of unneeded code in it, but I rather not take the time to strip it down, I rather use that time to create a "feature list" or add new functionality.

Thanks again for your input.. Have a nice weekend!
Matt
Well, I would probably just create the class with routines specific to the program rather than using your macro engine. I'm aware of and have use AutoIT in the past. It, unfortunately, is one of those tools that Blizzard does not like.

Another suggestion would be making the update an option rather than mandatory. That would give people confidence that they don't HAVE to talk home to the mothership unless they want to. I totally understand the purpose of the file delete and replacement, but I'm just saying, this is one of those things that COULD be used in a bad way. Then if you get 100 people using your code that are 5 boxers, and you get a hair up your butt one day (not saying you would, but still), and you put in a bit of code that keylogs the username and passwords......then you have 500 account logins that you could do whatever you want with.

That's funny about the Dunkin Donuts........it's always interesting to see what other developers have for quirks. I remember working with someone last year that named routines in his software after his pets that have died. He felt it as a way of immortalizing them after they died. 8|

Yours is much more friendly, lol. :D

Freddie
02-27-2009, 08:39 PM
Besides posting source code, what can I do to prove legitimacy?
Welcome and good luck with your software. I don't think it's possible to prove that a program doesn't contain malware or that it can't break rules.

Of course you can avoid certain features that people find particularly scary, like global hooks. Probably this would encourage more people to try the program. But there are several other methods for logging every keystroke, so this doesn't prove anything.

I think the main thing you can do is act responsibly and over time, if nobody complains about your program, more and more people will trust it. It has to be handled as a social issue not a technical one.

WoWMulti
02-27-2009, 08:49 PM
Hi Freddie,

Thanks for your input I appreciate it. I would definitely agree.

To shed some light on it, I do not use a global keyboard hook.

Here's basically the code that does it. All it does is calls Window's API to register and unregister global hotkeys:




Besides posting source code, what can I do to prove legitimacy?
Welcome and good luck with your software. I don't think it's possible to prove that a program doesn't contain malware or that it can't break rules.

Of course you can avoid certain features that people find particularly scary, like global hooks. Probably this would encourage more people to try the program. But there are several other methods for logging every keystroke, so this doesn't prove anything.

I think the main thing you can do is act responsibly and over time, if nobody complains about your program, more and more people will trust it. It has to be handled as a social issue not a technical one.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Collections;

namespace WoWMulti
{
public class HotKeyManager
{
public class HotKey
{
public short ID;
public string Name;
public int KeyValue;
public int Modifiers;
public IntPtr WindowParent;

public const int MOD_NONE = 0;
public const int MOD_ALT = 1;
public const int MOD_CONTROL = 2;
public const int MOD_SHIFT = 4;
public const int MOD_WIN = 8;

public HotKey(string sName, int keyValue, int iModifiers)
{
this.ID = 0;
this.Name = sName;
this.KeyValue = keyValue;
this.Modifiers = iModifiers;
}
public HotKey(string sName, int keyValue)
{
this.ID = 0;
this.Name = sName;
this.KeyValue = keyValue;
this.Modifiers = MOD_NONE;
}
}

[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk);

[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int UnregisterHotKey(IntPtr hwnd, int id);

[DllImport("kernel32", EntryPoint = "GlobalAddAtomA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern short GlobalAddAtom(string lpString);

[DllImport("kernel32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern short GlobalDeleteAtom(short nAtom);
// Windows API functions and constants


/// <summary>
/// Collection of managed hotkeys.
/// </summary>
private static Dictionary<int, HotKey> Hotkeys = new Dictionary<int, HotKey>(30);

/// <summary>
/// Registers a hotkey.
/// </summary>
/// <param name="hotKey"></param>
public static short RegisterGlobalHotKey(HotKey hotKey)
{
try
{
// use the GlobalAddAtom API to get a unique ID (as suggested by MSDN docs)
hotKey.ID = GlobalAddAtom(hotKey.Name);

if (hotKey.ID == 0)
{
throw new Exception("Unable to generate unique hotkey ID. Error code: " + Marshal.GetLastWin32Error().ToString());
}

// register the hotkey, throw if any error
if (RegisterHotKey(hotKey.WindowParent, hotKey.ID, hotKey.Modifiers, hotKey.KeyValue) == 0)
{
throw new Exception("Unable to register hotkey. Error code: " + Marshal.GetLastWin32Error().ToString());
}


Hotkeys.Add(hotKey.ID, hotKey);

return hotKey.ID;
}
catch (Exception ex)
{
// clean up if hotkey registration failed
UnregisterHotKey(hotKey.ID);

return -1;
}
}

/// <summary>
/// Unregisters a global hotkey by it's global ID.
/// </summary>
/// <param name="hotkeyID"></param>
/// <param name="bRemove"></param>
public static void UnregisterHotKey(short keyID, bool removeFromCollection)
{
HotKey hotKey = null;
if (Hotkeys.ContainsKey(keyID))
{
hotKey = Hotkeys[keyID];

UnregisterHotKey(hotKey.WindowParent, hotKey.ID);
// clean up the atom list
GlobalDeleteAtom(hotKey.ID);

if (removeFromCollection && Hotkeys.ContainsKey(hotKey.ID))
{
Hotkeys.Remove(hotKey.ID);
}
}
}
public static void UnregisterHotKey(short keyID)
{
UnregisterHotKey(keyID, true);
}
/// <summary>
/// Releases all of the global hotkeys.
/// </summary>
public static void ReleaseAllHotKeys()
{
//Unregister all the hotkeys.
foreach (KeyValuePair<int, HotKey> kvp in Hotkeys)
{
UnregisterHotKey(kvp.Value.ID, false);
}

Hotkeys.Clear();
}

public static string GetHotKeyName(short HotKeyID)
{
HotKey objhotkey = Hotkeys[HotKeyID];
if ((objhotkey != null))
{
return objhotkey.Name;
}
else
{
return "Nothing";
}
}
}
}

Vyndree
02-27-2009, 09:08 PM
Actually Vyndree if you look there is a conditional when they said keyclone is ok. That is what I said in my post too. They've always included a conditional clause in an acceptance of the software. It's usually

" This software is good, (so long as it only does this)"

So i wouldn't take that as a completely 100% fool proof acceptance. Just my view. Hehe.

Oh, I know. I just think it's as good of a endorsement any product's going to have. After all, KC could always update their software to include automation in the future, so it's prudent of Blizz to put those caveats in place.


I think the main thing you can do is act responsibly and over time, if nobody complains about your program, more and more people will trust it. It has to be handled as a social issue not a technical one.

QFT!

It's like building rep in WoW -- you earn it over a long period of time but if you screw up, boy do you lose it quick.

Knytestorme
03-02-2009, 05:18 AM
using System.Linq;

Would love to know why you're including this using if that's all of the code from that class ;)

Vyndree
03-02-2009, 03:54 PM
using System.Linq;

Would love to know why you're including this using if that's all of the code from that class ;)

*cough cough* VS puts it in there by default *cough cough*

I've always found it silly, but... oh, well.

Talamarr
03-02-2009, 04:06 PM
I only have one very constructive thing to add....




BOOOOOO PUBLIC FIELDS!!

:D

Knytestorme
03-03-2009, 10:15 PM
using System.Linq;

Would love to know why you're including this using if that's all of the code from that class ;)

*cough cough* VS puts it in there by default *cough cough*

I've always found it silly, but... oh, well.

Boooooo, I wanted to see what the response was :D

I actually don't find it that silly since people are still trying to push XML for data-sharing so letting people be able to do LINQ-XML without needing to worry about having the right includes seems reasonable I guess. I still need to start getting my head around the LINQ-SQL stuff though :/

How's 2010 shaping up btw? I dl'd the VPC for it but when I installed it had already expired and couldn't be bothered re dl'ing 10Gb, think I'll just wait till RC1 hits MSDN.

Vyndree
03-04-2009, 02:55 PM
How's 2010 shaping up btw? I dl'd the VPC for it but when I installed it had already expired and couldn't be bothered re dl'ing 10Gb, think I'll just wait till RC1 hits MSDN.

We're chugging along. :) I work on VSTO, so I work closely with VS.

It's getting there. Now's the time where all of us testers have our hands full and the devs want to strangle us whenever we open a bug. ;)

You'll have to try out the beta and see the new UI ('http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx'). I actually like alot of the updates, particularly the little things added to the editor. :)

Rin
03-04-2009, 03:15 PM
see the new UI ('http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx').

This looks slick. I can't wait.

WoWMulti
03-04-2009, 06:40 PM
Haha, yes there are many "Default" includes all over the place.

When I initially wrote this, again I wrote it for personal use.. Hence why I didn't follow accepted coding standards (using public variables instead of properties, etc).

But, I am going back and cleaning that up.

I still don't know if I am going to continue to push the software at all since I took a look at Hotkeynet and it has just about the same functionality.

I didn't see tho, can Hotkey net send keystrokes to minimized game windows?

I also added some neat functionality.. Instead of pressing keys, you can have it hold a key down as long as you hold it on the controller.. So it does a key down then does a key up when you release it.. Found it pretty helpful when running Heigan the other day and /follow just wasn't doing it... So I bound my movement keys to the other computer and it moved with me.. Pretty neat.

I am primarily writing code for the defense sector in Java.. So this pet project in .NET is just a way for me to stay ontop of the other big platform in the business.

I might actually just release the code.

PS, I do have a feature list written. :)

Matt

Ellay
03-04-2009, 06:56 PM
Ah sorry I miss this thread, I'll be taking a look at the app =D

WoWMulti
03-04-2009, 07:06 PM
No problem, I think I PM'd you the URL. :)

If not, please let me know and I will.

I did post a rough list of features right below the download URL.

Please let me know if you have any issues.

Thanks,

Matt

Knytestorme
03-04-2009, 10:07 PM
We're chugging along. :) I work on VSTO, so I work closely with VS.

It's getting there. Now's the time where all of us testers have our hands full and the devs want to strangle us whenever we open a bug. ;)

You'll have to try out the beta and see the new UI ('http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx'). I actually like alot of the updates, particularly the little things added to the editor. :)

Yeah, I actually meant to pm you a few weeks back with a bug we found here with VSTO that wasn't on any kb article to see if you could replicate it....will talk to the guy that deals with it to get the details if you have time.

The new UI looks like it could be quite fun from what I've been reading...the WCF idea seems really cool and will allow a lot of extensibility for customising VS in workplace specific ways I think so am looking forward to that, but then again I get excited every time a new VS is around this stage. God I'm such a geek :D