Jump to content


Check out our Community Blogs

whoiga

Member Since 27 Jun 2008
Offline Last Active Feb 16 2010 11:50 AM
-----

Posts I've Made

In Topic: Login Hotmail with C#...

07 October 2008 - 09:42 AM

There is no excuse for lax security.


I generally agree, but there are some instances in which people go overboard with implementing so many security features and failsafes that they destroy the purpose, usability, interoperability, and user friendliness of their products/services. Being "security aware" is entirely different from being "blatantly paranoid," the latter of which is extremely detrimental to productivity and longevity.

You can't plan for everything, so to try is both futile and costly (costly of both time and money). You can plan for the most common and most expected vulnerabilities though, and should target those with your best efforts. Once those are taken care of, you can plan for a few various wildcard worst case scenarios, but you'll never reach a "catch-all" peak unless you just disconnect your products/services from the world.

In Topic: Convert a project from VC# Express 2008 to Visual Studio 2008?

03 October 2008 - 01:53 PM

The change will be there, but let's say I build the solution. If I close out of VS 2008 and then browse to the bin\Debug directory, double-click on the exe, the changes in my application are not present. I can't explain it either, it's the weirdest thing.

Edit: Meh, just tried again and it made a liar out of me. Not sure what the problem was, now it seems to be just fine. *sigh*

In Topic: [c#.net 2008 sp1] massive request!

09 September 2008 - 11:00 AM

It's been so long since I've had anything to do with Battle.net, but if they've changed much, or even if they haven't, the first thing to do is some data packet reversal. Battle.net is sort of IRC-esque, though IRC protocols and packet structures probably wouldn't come in handy.

Try finding out if Battle.net uses an encryption, and if anyone has reversed/documented that encryption.

The next thing to do will be to capture packets, decrypt them if they're encrypted, and then analyze the byte data, which is generally represented by hex values.

Chances are that, given Battle.net's simple nature, data packet reversal will be easier.

Some games/companies use their own protocols, such as Sony Online Entertainment, which for most all of their MMORPGs they use what is called the SOE Protocol, which is an attempt to improve UDP by grouping packets, containing classes of packets, and etc. There are different data channels, baselines, object controllers, and delta messages, etc. Chances are that Battle.net isn't that complex, if it even uses anything out-of-the-ordinary.

Once you know how to interpret data received from Bnet & how to send data to Bnet that it can interpret properly, you can start developing a bot - in C#, C++, Python, or just about any language you care to use.

Most will agree that dealing with low-level data is easier and more convenient in languages like C++, where you're able to do most of that within the language itself, and not rely on classes or structs from something like the .NET Framework, etc.

Even if you can't find source code for a C# Battle.net bot, try finding such source code in a different language - you would at least be able to identify what those developers were doing with packets.

I remember the old days with some of Battle.net's first bots, which were mostly ASCII or UltimateBot, but it seemed like Blizzard published updates to Battle.net fairly often to attempt to rid it of all of the millions of bots.

In Topic: How would you go about implementing user modes into a desktop application?

27 August 2008 - 07:46 AM

I suppose I could do that, though I think it wouldn't be as clean, and it might seem disheartening or annoying for a user to constantly find out what he/she can't do, which might make the application more difficult to learn or use.

I have considered having a separate form with administrative features residing within it, though I'd still be using an enum & a control adjustment method to render it accessible/inaccessible based on the user's level.

Oh well. I'll find out what works (and what doesn't) soon enough.

In Topic: How would you go about implementing user modes into a desktop application?

25 August 2008 - 12:39 PM

Thanks for the feedback. I suppose you're right. I know that I'm sort of limiting myself, but the simple nature of the application I want to create should void the need for additional user modes, though if I did need some, I'd only have to adjust a single method, and if I needed more/less controls, it's just a matter of adding/modifying/removing what happens to them in that method.

After I posted this thread, I made a quick little application in VS2008 to test my logic and get a feel for what it would be like. It's not the most scalable solution, but as I said the application I want to develop is simple in its nature and it would actually benefit from retaining some simplicity.

Here's the MainForm.cs code of the little demo I just created:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace EnumUserModeTest
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();

SetControls(Mode.User);
}

public enum Mode
{
User,
Admin
}

private void SetControls(Mode appmode)
{
switch (appmode)
{
case Mode.Admin:
this.Text = "Mode: Admin";
tbUserMessage.ReadOnly = false;
buttonUserMessage.Enabled = true;
tbAdminMessage.ReadOnly = false;
buttonAdminMessage.Enabled = true;
break;
case Mode.User:
this.Text = "Mode: User";
tbUserMessage.ReadOnly = false;
buttonUserMessage.Enabled = true;
tbAdminMessage.ReadOnly = true;
buttonAdminMessage.Enabled = false;
break;
}
}

private void buttonUserMessage_Click(object sender, EventArgs e)
{
MessageBox.Show(tbUserMessage.Text, "User Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

private void buttonAdminMessage_Click(object sender, EventArgs e)
{
MessageBox.Show(tbAdminMessage.Text, "Admin Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

private void userToolStripMenuItem_Click(object sender, EventArgs e)
{
SetControls(Mode.User);
}

private void adminToolStripMenuItem_Click(object sender, EventArgs e)
{
SetControls(Mode.Admin);
}
}
}

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download