Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Ryan Marcus

Pages: [1] 2 3
1
Trash Can / Delete please....
« on: October 05, 2006, 01:47:53 pm »
Either I'm dumb or you can't delete your own posts.. Sorry!

2
New Project Announcements / SMF2RSS
« on: May 05, 2006, 06:26:18 pm »
After about 30 minutes of work, I was capable of producing this: http://marcusfamily.info/~ryan/SMF2RSS.zip

It takes all the posts on a SMF board and turns it into a RSS feed.

Example feed: http://marcusfamily.info/~ryan/rss/

There is still a lot of work to be done, but it is getting there! :)

3
New Project Announcements / Luxer: Mac Binary Bot!
« on: April 25, 2006, 10:40:06 am »
Hello people!

I'm proud(ish) to annouce the return of my bot, Luxer, which is currently the only working mac-only binary bot!

Download information here: http://marcusfamily.info/~ryan/forums/index.php/topic,15.0.html

I'd very much appreciate any feedback!

4
Hey everybody, sorry I have not posted for a while.

I've been doing a podcast for a while now, and I am looking for somebody to interview (who is not a rogue, already did them) that really knows there class well. You don't have to be level 60.

Reply here, PM me, AIM me, or email me if your interested, it would be a big help!

5
Trash Can / Re: Smuggling radioactive material into the U.S.
« on: March 29, 2006, 11:07:10 am »
Joe: Smuggling radioactive materials into the US from Mexico and Canada since 1986. Call now for a discount price.

(Yes, this is a random "spam joe's name" message. I already consider myself /slap'ed.)

6
Botdev / Making Trivia Bot Hints
« on: December 19, 2005, 10:21:16 pm »
I'm adding a trivia feature to my bot... I just finished writing the code to create a hint based on a integer that is passed in called HintLevel.

Code: [Select]
  dim i, ii, iii as integer
  dim r as new Random
  dim Hint as string
 
  i = len(Answer)
  ii = 0
 
  while ii<>i + 1
    Hint = hint + "-"
    ii = ii + 1
  wend
 
  ii = 0
 
  while ii<>HintLevel + 1
    iii = r.InRange(1, i)
    Hint = left(hint, iii - 1) + mid(Answer, iii - 1, 1) + mid(hint, iii)
    ii = ii + 1
  Wend
 
  return hint

That should return dashs with HintLevel filled in characters... I have not tested it, but I am sure there is a better way to do it. Its in REALBasic, by the way.

7
General Programming / Killall for PC
« on: December 18, 2005, 01:39:05 pm »
Is there an equivalent for the "killall" command on UNIX for the PC?

8
General Programming / [Java] Using sockets in a JavaOp plugin
« on: December 06, 2005, 06:55:44 pm »
Alright, after you read this it should be pretty obvious what it does:

Code: [Select]
[pre]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Properties;

import javax.swing.JComponent;

import callback_interfaces.PluginCallbackRegister;
import callback_interfaces.PublicExposedFunctions;
import callback_interfaces.StaticExposedFunctions;
import exceptions.PluginException;
import plugin_interfaces.ConnectionCallback;
import plugin_interfaces.EventCallback;
import plugin_interfaces.GenericPluginInterface;

public class PluginMain extends GenericPluginInterface implements EventCallback, ConnectionCallback
{

    private static ServerSocket serverSocket = null;

    private static Socket clientSocket = null;

    private static PrintWriter pOut = null;

    private static BufferedReader in = null;
    private static PublicExposedFunctions tOut = null;

    public void load(StaticExposedFunctions staticFuncs)
    {
       
    }

public void activate(PublicExposedFunctions out, PluginCallbackRegister register)
    {
    register.registerEventPlugin(this, null);
    register.registerConnectionPlugin(this, null);
    tOut = out;
    }
public void deactivate(PluginCallbackRegister register)
    {
        // TODO Auto-generated method stub

    }

    public String getName()
    {
        // TODO Auto-generated method stub
        return "SBCP";
    }

    public String getVersion()
    {
        // TODO Auto-generated method stub
        return "1.0";
    }

    public String getAuthorName()
    {
        // TODO Auto-generated method stub
        return "Ryan Marcus";
    }

    public String getAuthorWebsite()
    {
        // TODO Auto-generated method stub
        return "None";
    }

    public String getAuthorEmail()
    {
        // TODO Auto-generated method stub
        return "ryan@marcusfamily.info";
    }

    public String getLongDescription()
    {
        // TODO Auto-generated method stub
        return "Allows you to connect with SBCP";
    }

    public Properties getDefaultSettingValues()
    {
        // TODO Auto-generated method stub
        Properties p = new Properties();
        return p;
    }

    public Properties getSettingsDescription()
    {
        // TODO Auto-generated method stub
        Properties p = new Properties();
        return p;
    }

    public JComponent getComponent(String settingName, String value)
    {
        // TODO Auto-generated method stub
        return null;
    }

    public Properties getGlobalDefaultSettingValues()
    {
        // TODO Auto-generated method stub
        Properties p = new Properties();
        return p;
    }

    public Properties getGlobalSettingsDescription()
    {
        // TODO Auto-generated method stub
        Properties p = new Properties();
        return p;
    }

    public JComponent getGlobalComponent(String settingName, String value)
    {
        // TODO Auto-generated method stub
        return null;
    }
   
   
    public void talk(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
       pOut.println("TALK" + user + " " + statstring);
    }

    public void emote(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("EMOT" + user + " " + statstring);
    }

    public void whisperFrom(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("WSFM" + user + " " + statstring);
    }

    public void whisperTo(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("WSCN" + user + " " + statstring);
    }

    public void userShow(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("USIN" + user + " " + statstring);
    }

    public void userJoin(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("USJN" + user + " " + statstring);
    }

    public void userLeave(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("USLV" + user + " " + statstring);
    }

    public void userFlags(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("USFG" + user + " " + statstring);
    }

    public void error(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("ERRO" + user + " " + statstring);
    }

    public void info(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("INFO" + user + " " + statstring);
    }

    public void broadcast(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("BRDC" + user + " " + statstring);
    }

    public void channel(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("CHAN" + user + " " + statstring);
    }
   
    public final boolean ABORT = false;
    public final boolean CONTINUE = true;
   
    /** The bot is about to connect to a server, but hasn't yet.  At this point, the connection can be stopped. */
    public boolean connecting(String host, int port, Object data) throws IOException, PluginException
    {
        return false;
    }
    /** The bot has just connected to the server. */
    public void connected(String host, int port, Object data) throws IOException, PluginException
    {
       
       
       
        try {
            serverSocket = new ServerSocket(4444);
        } catch (IOException e) {
            System.err.println("Could not listen on port: 4444.");
            System.exit(1);
        }

   
        try
        {
            clientSocket = serverSocket.accept();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
     

       
         
         
         try
        {
            pOut = new PrintWriter(clientSocket.getOutputStream(), true);
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
       
     
           
            try
            {
                in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            }
            catch (IOException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
       
        pOut.println("Connected!");
       
       
           
    }
   
    /** The bot is about to disconnect from the server.  This is only called for planned disconnects. */
    public boolean disconnecting(Object data)
    {
        return false;
    }
    /** The bot has disconnected from the server. */
    public void disconnected(Object data)
    {
    }

   
    private static String inputLine = null;
   
    while ("i".equalsIgnoreCase("e"))
    {
        try
        {
            inputLine = in.readLine();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if (inputLine.length() != 0)
        {
          try
        {
            tOut.sendText(inputLine);
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }
    }
   

}
}
[/pre]

The only problem Eclipse is telling me about is that private static String inputLine = null; should not end in a ;. but it should be a {?


Help!

9
General Programming / [Java] Sockets in a JavaOp Plugin
« on: October 11, 2005, 11:06:24 am »
I am having some problems with Java sockets... Buffering incoming data.

Here is the code for my JavaOp plugin:

Code: [Select]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Properties;

import javax.swing.JComponent;

import callback_interfaces.PluginCallbackRegister;
import callback_interfaces.PublicExposedFunctions;
import callback_interfaces.StaticExposedFunctions;
import exceptions.PluginException;
import plugin_interfaces.ConnectionCallback;
import plugin_interfaces.EventCallback;
import plugin_interfaces.GenericPluginInterface;

public class PluginMain extends GenericPluginInterface implements EventCallback, ConnectionCallback
{

    private static ServerSocket serverSocket = null;

    private static Socket clientSocket = null;

    private static PrintWriter pOut = null;

    private static BufferedReader in = null;
    private static PublicExposedFunctions tOut = null;

    public void load(StaticExposedFunctions staticFuncs)
    {
       
    }

public void activate(PublicExposedFunctions out, PluginCallbackRegister register)
    {
    register.registerEventPlugin(this, null);
    register.registerConnectionPlugin(this, null);
    tOut = out;
    }
public void deactivate(PluginCallbackRegister register)
    {
        // TODO Auto-generated method stub

    }

    public String getName()
    {
        // TODO Auto-generated method stub
        return "SBCP";
    }

    public String getVersion()
    {
        // TODO Auto-generated method stub
        return "1.0";
    }

    public String getAuthorName()
    {
        // TODO Auto-generated method stub
        return "Ryan Marcus";
    }

    public String getAuthorWebsite()
    {
        // TODO Auto-generated method stub
        return "None";
    }

    public String getAuthorEmail()
    {
        // TODO Auto-generated method stub
        return "ryan@marcusfamily.info";
    }

    public String getLongDescription()
    {
        // TODO Auto-generated method stub
        return "Allows you to connect with SBCP";
    }

    public Properties getDefaultSettingValues()
    {
        // TODO Auto-generated method stub
        Properties p = new Properties();
        return p;
    }

    public Properties getSettingsDescription()
    {
        // TODO Auto-generated method stub
        Properties p = new Properties();
        return p;
    }

    public JComponent getComponent(String settingName, String value)
    {
        // TODO Auto-generated method stub
        return null;
    }

    public Properties getGlobalDefaultSettingValues()
    {
        // TODO Auto-generated method stub
        Properties p = new Properties();
        return p;
    }

    public Properties getGlobalSettingsDescription()
    {
        // TODO Auto-generated method stub
        Properties p = new Properties();
        return p;
    }

    public JComponent getGlobalComponent(String settingName, String value)
    {
        // TODO Auto-generated method stub
        return null;
    }
   
   
    public void talk(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
       pOut.println("TALK" + user + " " + statstring);
    }

    public void emote(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("EMOT" + user + " " + statstring);
    }

    public void whisperFrom(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("WSFM" + user + " " + statstring);
    }

    public void whisperTo(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("WSCN" + user + " " + statstring);
    }

    public void userShow(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("USIN" + user + " " + statstring);
    }

    public void userJoin(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("USJN" + user + " " + statstring);
    }

    public void userLeave(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("USLV" + user + " " + statstring);
    }

    public void userFlags(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("USFG" + user + " " + statstring);
    }

    public void error(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("ERRO" + user + " " + statstring);
    }

    public void info(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("INFO" + user + " " + statstring);
    }

    public void broadcast(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("BRDC" + user + " " + statstring);
    }

    public void channel(String user, String statstring, int ping, int flags) throws IOException, PluginException
    {
        pOut.println("CHAN" + user + " " + statstring);
    }
   
    public final boolean ABORT = false;
    public final boolean CONTINUE = true;
   
    /** The bot is about to connect to a server, but hasn't yet.  At this point, the connection can be stopped. */
    public boolean connecting(String host, int port, Object data) throws IOException, PluginException
    {
        return false;
    }
    /** The bot has just connected to the server. */
    public void connected(String host, int port, Object data) throws IOException, PluginException
    {
       
       
       
        try {
            serverSocket = new ServerSocket(4444);
        } catch (IOException e) {
            System.err.println("Could not listen on port: 4444.");
            System.exit(1);
        }

   
        try
        {
            clientSocket = serverSocket.accept();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
     

       
         
         
         try
        {
            pOut = new PrintWriter(clientSocket.getOutputStream(), true);
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
       
     
           
            try
            {
                in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            }
            catch (IOException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
       
        pOut.println("Connected!");
       
        String inputLine = null;
        while ("i".equalsIgnoreCase("a"))
        {
            try
            {
                inputLine = in.readLine();
            }
            catch (IOException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            if (inputLine.length() != 0)
            {
              try
            {
                tOut.sendText(inputLine);
            }
            catch (IOException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            }
        }
           
    }
   
    /** The bot is about to disconnect from the server.  This is only called for planned disconnects. */
    public boolean disconnecting(Object data)
    {
        return false;
    }
    /** The bot has disconnected from the server. */
    public void disconnected(Object data)
    {
    }


}

Ya, it sucks. So what?

How should I handle incoming data? How should I parse it? Are there already functions to split data at line breaks?

11
General Programming / [Java] PrintWriter println question
« on: October 04, 2005, 09:13:59 am »
I have named a PrintWriter pOut...

If I do this:
Code: [Select]
pOut.println("Test");

Will it print Test, Test + chr(13), Test + chr(10), or Test + chr(13) + chr(10)?

12
Botdev / Invalid CDKey error in 0x51
« on: September 29, 2005, 07:31:25 pm »
Ya, it me again. ;)

I seem to be getting an invalid CDKey error from battle.net... I can't seem to figure out why:

Battle.net
Quote

end data (105 bytes).
<0000003B< FF 51 69 00  46 EA D3 58  09 03 01 01  F1 8F 85 81  .Qi.F..X........
<0000004B< 01 00 00 00  00 00 00 00  0D 00 00 00  01 00 00 00  ................
<0000005B< 75 38 90 00  00 00 00 C4  62 E0 56 71  F7 2D 00 4B  u8......b.Vq.-.K
<0000006B< A8 6B 69 47  4D EB F2 9A  71 A0 6F 73  74 61 72 63  .kiGM...q.ostarc
<0000007B< 72 61 66 74  2E 65 78 65  20 30 38 2F  30 37 2F 30  raft.exe 08/07/0
<0000008B< 35 20 31 32  3A 30 36 3A  34 32 20 31  30 39 33 36  5 12:06:42 10936
<0000009B< 33 32 00 4C  75 78 65 72  00                        32.Luxer.

Receive data (9 bytes).
>0000006B> FF 51 09 00  00 02 00 00  00                        .Q.......



BNLS:
Quote

Receive data (47 bytes).
>000000E5> 2F 00 01 01  00 00 00 46  EA D3 58 0D  00 00 00 01  /......F..X.....
>000000F5> 00 00 00 75  38 90 00 00  00 00 00 C4  62 E0 56 71  ...u8.......b.Vq
>00000105> F7 2D 00 4B  A8 6B 69 47  4D EB F2 9A  71 A0 6F     .-.K.kiGM...q.o



Thanks in advance for any help!

13
Introductions! / About Me
« on: September 27, 2005, 08:17:55 pm »
How old are you? Less then 18
Where are you from? California, currently in New Mexico.
What do you do? School, programming, etc.
What kind of music do you like? U2, Eric Clapton, Green Day, etc..
Do you have a girlfriend? Yes.
Are you in anyother clans? No.
Any friends here? When I joined I might have had a chance.. but now... ;)
Why do you want to join? Because you guys are better then vL, and I like JavaOp.
Have you read the rules? Of course! I plan to break them ASAP.
Whats your favorite TV show? When all you see, is violence and movies, and...
Movie? White Noise
Band? U2.
Country? Currently in the USA, but Canada kicks ass!
Continent? NA.
Season? Winter.
Type of weather? Slight drizzle.
Subject in school? Technology.
Chemical? Wood Alcohol. Want a taste?
Food? Pot stickers!
Drink? Sunkist.
Book? The Dark Elf Trilogy
Author? R.A. Salvatore
Operating System? Mac OS X and Ubuntu
Phone Company? ...
Computer Brand? Apple
Linux Distro? Slackware + Ubuntu
Sport? Soccer.
Sports team? 49'ers.
Sporting event? The Superbowl!.
Game? Starcraft.
Style of game? Real time strategy
Pet? Doggies :)


14
Botdev / 0x51, Invalid Version
« on: September 25, 2005, 01:58:37 pm »
I think this one might be a intelligent question...

No matter what I do, I continue to get an invalid version error from 0x51. I am almost completely sure its not formatting.


The 0x51 packet, sent to BNCS:
Quote

Send data (106 bytes).
<0000003B< FF 51 6A 00  00 00 00 48  09 03 01 01  A5 EA 8F E1  .Qj....H........
<0000004B< 01 00 00 00  00 00 00 00  82 26 31 0D  00 00 01 00  .........&1.....
<0000005B< 00 75 38 90  00 00 00 00  8A E1 2B 1C  03 77 89 B2  .u8.......+..w..
<0000006B< A5 AE B3 A7  CD 77 1E C3  FD B5 8B 15  73 74 61 72  .....w......star
<0000007B< 63 72 61 66  74 2E 65 78  65 20 30 38  2F 30 37 2F  craft.exe 08/07/
<0000008B< 30 35 20 31  32 3A 30 36  3A 34 32 20  31 30 39 33  05 12:06:42 1093
<0000009B< 36 33 32 00  4C 75 78 65  72 00                     632.Luxer.


The JBLS response for VersionCheck:
Quote

Receive data (55 bytes).
>000000AE> 37 00 09 01  00 00 00 09  03 01 01 A5  EA 8F E1 73  7..............s
>000000BE> 74 61 72 63  72 61 66 74  2E 65 78 65  20 30 38 2F  tarcraft.exe 08/
>000000CE> 30 37 2F 30  35 20 31 32  3A 30 36 3A  34 32 20 31  07/05 12:06:42 1
>000000DE> 30 39 33 36  33 32 00                               093632.


BnetDocs page for 0x51:

(DWORD)          Client Token
(DWORD)          EXE Version
(DWORD)          EXE Hash
(DWORD)          Number of keys in this packet
(BOOLEAN)        Using Spawn (32-bit)

For Each Key:
(DWORD)          Key Length
(DWORD)          CD key's product value
(DWORD)          CD key's public value
(DWORD)          Unknown (0)
(DWORD[5])       Hashed Key Data

(STRING)         Exe Information
(STRING)         CD Key owner name


BnetDocs page for the BNLS response to VersionCheck:

(BOOLEAN)        Success

If Success is TRUE:

(DWORD)          Version.
(DWORD)          Checksum.
(STRING)         Version check stat string.



Thanks in advance for any help!

P.S. I tried posting on vL and not bugging you guys, but Arta deleted my post because I included the BnetDocs page... Thanks for being cool, x86! :D

15
Botdev / [0x29] Disconnected
« on: September 24, 2005, 09:02:36 pm »
Ya, its me again. I just want to let you guys know I sent 0x51 without posting!

Now, the issue:

I keep getting disconnected after sending 0x29.

Here is the battle.net packet log:

Quote

Send data (1 bytes).
<00000000< 01                                                  .

Send data (58 bytes).
<00000001< FF 50 3A 00  00 00 00 00  36 38 58 49  52 41 54 53  .P:.....68XIRATS
<00000011< CD 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
<00000021< 00 00 00 00  00 00 00 00  55 53 41 00  55 6E 69 74  ........USA.Unit
<00000031< 65 64 20 53  74 61 74 65  73 00                     ed States.

Receive data (8 bytes).
>00000000> FF 25 08 00  89 68 DA 91                            .%...h..

Receive data (100 bytes).
>00000008> FF 50 64 00  00 00 00 00  EC ED 88 4C  6F C5 16 00  .Pd........Lo...
>00000018> 00 AC 41 43  25 0B C5 01  49 58 38 36  76 65 72 35  ..AC%...IX86ver5
>00000028> 2E 6D 70 71  00 41 3D 31  30 30 36 36  30 33 35 35  .mpq.A=100660355
>00000038> 31 20 42 3D  35 30 32 30  31 33 30 37  39 20 43 3D  1 B=502013079 C=
>00000048> 32 30 39 31  37 35 39 32  36 20 34 20  41 3D 41 5E  209175926 4 A=A^
>00000058> 53 20 42 3D  42 5E 43 20  43 3D 43 2B  41 20 41 3D  S B=B^C C=C+A A=
>00000068> 41 2D 42 00                                         A-B.

Send data (104 bytes).
<0000003B< FF 51 68 00  83 00 00 00  B4 01 01 03  73 77 35 A0  .Qh.........sw5.
<0000004B< 01 00 00 00  00 00 00 00  B3 88 3E 0D  00 00 01 00  ..........>.....
<0000005B< 00 75 38 90  00 00 00 00  38 9B 9A 5B  68 A9 04 3C  .u8.....8..[h..<
<0000006B< 30 1D 3D 2B  45 0D 34 2E  EF A4 A0 74  61 72 63 72  0.=+E.4....tarcr
<0000007B< 61 66 74 2E  65 78 65 20  30 38 2F 30  37 2F 30 35  aft.exe 08/07/05
<0000008B< 20 31 32 3A  30 36 3A 34  32 20 31 30  39 33 36 33   12:06:42 109363
<0000009B< 32 00 4C 75  78 65 72 00                            2.Luxer.

Receive data (9 bytes).
>0000006C> FF 51 09 00  01 01 00 00  00                        .Q.......

Send data (46 bytes).
<000000A3< FF 29 2E 00  83 00 00 00  EC ED 88 4C  98 1C 3A 2F  .).........L..:/
<000000B3< 87 FC 85 4B  AA A8 51 F0  A8 BE 19 9A  2E F9 53 19  ...K..Q.......S.
<000000C3< 41 62 73 6F  6C 75 74 65  2E 5A 65 72  6F 00        Absolute.Zero.

Receive orderly release indication (T_ORDREL_IND = 132).

Send orderly release request (T_ORDREL_REQ = 109).

Send unbind request (T_UNBIND_REQ = 110).


As you can see, the its not the client key or the server key.. Both match up to when they where first sent/received... There are 7 DWORDs (the correct number) and a string...

The BnetDocs page:

(DWORD)          Client Token
(DWORD)          Server Token
(DWORD[5])       Password Hash
(STRING)         Username     


Incase it matters (which I doubt) here is the packet log from JBLS (Just that password hash):

Quote

Send data (29 bytes).
<00000066< 1D 00 0B 0A  00 00 00 04  00 00 00 **  ** ** ** **  ...........*****
<00000076< 68 75 31 35  34 83 00 00  ** ** ** **  **           *****.......L

Receive data (27 bytes).
>00000114> 1B 00 0B 98  1C 3A 2F 87  FC 85 4B AA  A8 51 F0 A8  .....:/...K..Q..
>00000124> BE 19 9A 2E  F9 53 19 83  00 00 00                  .....S.....


Thanks in advance!

Pages: [1] 2 3