Author | Message | Time |
---|---|---|
MindArchon | Im moving away from CSB type things now.. I know how to send packets (i have a packet buffer) and I know how to parse packets. I know the sequence to send to battle.net.. so what do I do? Do I connect to BNLS first, send those packets, then reconnect to BNET? I'm utterly confused on what I am supposed to connect to / how it works. Ive searched the forums - no luck. Can anyone help me out here? | August 26, 2004, 7:43 AM |
BaDDBLooD | you can connect to either BNLS or BNet first. If you want BNLS to give you the verbyte .. connect to BNLS first, if you know the verbyte.. bnet is the way to go. After you recieve 0x50, you send 0x09 to BNLS, Than depending on how many keys you have you send 0x01 or 0x0C to BNLS, than send 0x51. | August 26, 2004, 7:57 AM |
Gangz | [quote author=MindArchon link=board=17;threadid=8375;start=0#msg77383 date=1093506202] Im moving away from CSB type things now.. I know how to send packets (i have a packet buffer) and I know how to parse packets. I know the sequence to send to battle.net.. so what do I do? Do I connect to BNLS first, send those packets, then reconnect to BNET? I'm utterly confused on what I am supposed to connect to / how it works. Ive searched the forums - no luck. Can anyone help me out here? [/quote] If you know the sequence then you shouldn't need BNLS. the packet buffer you have is from another bot? if so then it probably has a sendpacket function | August 26, 2004, 10:01 AM |
Myndfyr | [quote author=Gangz link=board=17;threadid=8375;start=0#msg77386 date=1093514517] If you know the sequence then you shouldn't need BNLS. [/quote] How do you figure? I know the sequence for connecting, but I still use BNLS. | August 26, 2004, 1:20 PM |
Skeptical | There are other reasons for using BNLS other than the verByte, Hashes can be a pain for non-broadband users if they dont have the client. BNLS was created for a hashless connection, making your zip file for your bot alot smaller not needing hashes :D | August 26, 2004, 6:25 PM |
ChR0NiC | [quote author=Gangz link=board=17;threadid=8375;start=0#msg77386 date=1093514517] If you know the sequence then you shouldn't need BNLS. the packet buffer you have is from another bot? if so then it probably has a sendpacket function [/quote] Let's all remember that, without Yobguls, all VB programmers would most likely be using BNLS unless Userloser or Maddox decided to make a Visual Basic Equivelant of SHA-1 in a DLL. But BNLS uses a much more efficient check revision according to Skywing, and I notice getting lower pings when using BNLS. | August 26, 2004, 7:39 PM |
MindArchon | Ugh. I cant log into bnet docs. I think its my crappy internet connection. Ok maybe I thought I knew the sequence. After looking at BNLSProtocolSpec I thought that the packets were listed in the correct order to connect. I think i was wrong :-\ I want to use BNLS, as I know nothing about hashes So, I connect to bnls.valhallalegends.com on port 9367. BNLS sends me 0x50 which contains the version byte I then send 0x09 which is a version check. After recieving it I send 0x01 with my cdkey. After recieiving that I send 0x51 with the data recieved from 0x01 and 0x09. After that I am not sure, but I beleive I send my account info to 0x02, after recieving that I send 0x53, If its successful I send 0x03, then send 0x54, if thats successful I then send 0x0a which enters chat (I think this is on bnet docs but I cant check it since my internet sucks). Can anyone tell me if I'm correct? Also. Where do I put the server? Like useast.battle.net, or do I have to connect to that or something | August 26, 2004, 8:19 PM |
BaDDBLooD | You connect to bnls send your BNLS product id ( 0x10 ) recieve verbyte ( 0x10 ) connect to bnet send 0x50 send 0x09 send 0x01 or 0x0C depending on how many keys Send 0x51 | August 26, 2004, 8:39 PM |
MindArchon | [quote author=BaDDBLooD link=board=17;threadid=8375;start=0#msg77456 date=1093552781] You connect to bnls send your BNLS product id ( 0x10 ) recieve verbyte ( 0x10 ) connect to bnet send 0x50 send 0x09 send 0x01 or 0x0C depending on how many keys Send 0x51 [/quote] Ahh. I see, so after sending 0x10 I would get the version byte. I then disconnect from BNLS, and reconnect to BNET like on useast.battle.net. What port is BNET on? So then I send 0x50, and I need the versionbyte from BNLS. After I send 0x09 which is the versioncheck. Then I send 0x01 which encrypts the cdkey. Then I send 0x51 which sends the cdkey data to BNET. Then I beleive I send all the account data like I said in the above post correct? | August 26, 2004, 8:52 PM |
BaDDBLooD | you stay connected to bnls, you never Disconnect after connecting. port 6112 everything else is right it can be 0x01 *OR* 0x0C depending on how many cdkey's you have ( 1 or 2 ) | August 26, 2004, 9:00 PM |
MindArchon | [quote author=BaDDBLooD link=board=17;threadid=8375;start=0#msg77460 date=1093554057] you stay connected to bnls, you never Disconnect after connecting. port 6112 everything else is right it can be 0x01 *OR* 0x0C depending on how many cdkey's you have ( 1 or 2 ) [/quote] So then I have to open 2 connections? Time to learn VB Winsock :) | August 26, 2004, 9:02 PM |
MindArchon | Is there a reason why you have to have BNLS open while connecting to BNET? | August 26, 2004, 9:25 PM |
Kp | [quote author=MindArchon link=board=17;threadid=8375;start=0#msg77464 date=1093555555]Is there a reason why you have to have BNLS open while connecting to BNET?[/quote] Yes. Battle.net will send you a versioning challenge, to which you must respond. You can't reliably predict in advance what the challenge will be, so you must get the challenge, pass it to BNLS, then pass the answer to BNCS. You could connect to BNLS before/during/after you connect to BNCS, but you can't avoid being connected to both of them if you want to have a decent chance at not failing vercheck due to stale info. :) | August 26, 2004, 10:03 PM |
MindArchon | In what packet does BNET send you the challenge? And with Visual Basic, is it better to put two winsock controls on the form, or just one and connect with the index or whatever (its in bnet reference) | August 26, 2004, 10:22 PM |
BaDDBLooD | i prefer 2 seperate winsock's | August 26, 2004, 10:37 PM |
UserLoser. | [quote author=MindArchon link=board=17;threadid=8375;start=0#msg77471 date=1093558955] In what packet does BNET send you the challenge? And with Visual Basic, is it better to put two winsock controls on the form, or just one and connect with the index or whatever (its in bnet reference) [/quote] Probably doesn't matter (no big difference) if you add two separate controls to the form, or create an array of them. | August 26, 2004, 10:38 PM |
R.a.B.B.i.T | 2 controls, however, are a little easier to manage. And BNLS will automatically disconnect after about 30 seconds. | August 26, 2004, 11:32 PM |
Myndfyr | [quote author=R.a.B.B.i.T link=board=17;threadid=8375;start=15#msg77485 date=1093563125] And BNLS will automatically disconnect after about 30 seconds. [/quote] Unless you send BNLS_NULL (0x00) consistently. ;) | August 26, 2004, 11:33 PM |
UserLoser. | [quote author=MyndFyre link=board=17;threadid=8375;start=15#msg77486 date=1093563214] [quote author=R.a.B.B.i.T link=board=17;threadid=8375;start=15#msg77485 date=1093563125] And BNLS will automatically disconnect after about 30 seconds. [/quote] Unless you send BNLS_NULL (0x00) consistently. ;) [/quote] The document says 1 minute, not 30 seconds. | August 27, 2004, 1:45 AM |
MindArchon | Bah, does the packetbuffer at http://www.valhallalegends.com/docs/PacketBuffer.htm work for BNLS packets too? If so, then it doesnt seem to be working. I send something and get no data recieved back. | August 27, 2004, 3:25 AM |
BaDDBLooD | It does, however the "SEND PACKET" Function will not. You need to Change it to +3, and it should be Length + packetID | August 27, 2004, 5:50 AM |
MindArchon | [quote author=BaDDBLooD link=board=17;threadid=8375;start=15#msg77545 date=1093585832] It does, however the "SEND PACKET" Function will not. You need to Change it to +3, and it should be Length + packetID [/quote] er.. [code]Public Function SendPacket(SOCKET As Winsock, PacketID As Byte) SOCKET.SendData Chr(&HFF) SOCKET.SendData Chr(PacketID) SOCKET.SendData MakeWORD (Len(Buffer) + 4) SOCKET.SendData BufferClear End Function[/code] was how it came. So I change it to: [code]Public Function SendPacket(SOCKET As Winsock, PacketID As Byte) SOCKET.SendData Chr(&HFF) SOCKET.SendData Chr(PacketID) SOCKET.SendData MakeWORD (Len(Buffer) + PacketID + 3) BufferClear End Function[/code] ? | August 27, 2004, 6:34 AM |
prck | The header is 3 bytes. The first part of the packet is a word, so you would want something like Makeword(len(Buffer)+3) then you would want to include the packetID which is a byte and the rest of the data to send. | August 27, 2004, 8:23 AM |
l2k-Shadow | I would suggest you getting a basic winsock connection source code. That will help you see how everything works and then you can just work off of that, If you never made a bot w/o an ocx then just getting a source is much easier then starting from scratch and getting 99% chance that the bot won't work | August 27, 2004, 7:56 PM |
bethra | [quote author=MindArchon link=board=17;threadid=8375;start=15#msg77549 date=1093588477] [quote author=BaDDBLooD link=board=17;threadid=8375;start=15#msg77545 date=1093585832] It does, however the "SEND PACKET" Function will not. You need to Change it to +3, and it should be Length + packetID [/quote] So I change it to: [code]Public Function SendPacket(SOCKET As Winsock, PacketID As Byte) SOCKET.SendData Chr(&HFF) SOCKET.SendData Chr(PacketID) SOCKET.SendData MakeWORD (Len(Buffer) + PacketID + 3) BufferClear End Function[/code] ? [/quote] Errr, no that isn't correct I don't think. This is mine [code] Public Function SendBNLS(socket As Winsock, PacketID As Byte) '// '(WORD) Message size, including this 3-byte header '(BYTE) Message ID '(....) Message-dependant data socket.SendData MakeWORD(Len(Buffer) + 3) socket.SendData Chr(PacketID) socket.SendData Buffer Clear End Function [/code] | August 27, 2004, 8:05 PM |
UserLoser. | [quote author=bethra link=board=17;threadid=8375;start=15#msg77663 date=1093637108] Errr, no that isn't correct I don't think. This is mine [/quote] I think he was talking about his BNCS packet buffer, not BNLS one. | August 27, 2004, 8:07 PM |
bethra | [quote author=UserLoser. link=board=17;threadid=8375;start=15#msg77664 date=1093637274] [quote author=bethra link=board=17;threadid=8375;start=15#msg77663 date=1093637108] Errr, no that isn't correct I don't think. This is mine [/quote] I think he was talking about his BNCS packet buffer, not BNLS one. [/quote] [quote author=MindArchon link=board=17;threadid=8375;start=15#msg77532 date=1093577114] Bah, does the packetbuffer at http://www.valhallalegends.com/docs/PacketBuffer.htm work for BNLS packets too? If so, then it doesnt seem to be working. I send something and get no data recieved back. [/quote] hmmm I dunno, maybe I'm wrong... he said this so I thought maybe he was talking about BNLS =\ | August 27, 2004, 8:13 PM |
MindArchon | [quote author=UserLoser. link=board=17;threadid=8375;start=15#msg77664 date=1093637274] [quote author=bethra link=board=17;threadid=8375;start=15#msg77663 date=1093637108] Errr, no that isn't correct I don't think. This is mine [/quote] I think he was talking about his BNCS packet buffer, not BNLS one. [/quote] BNLS packet buffer. However will that packet buffer I linked to previously work on BNCS packets without tweaking? | August 27, 2004, 8:23 PM |
BaDDBLooD | [quote author=MindArchon link=board=17;threadid=8375;start=15#msg77666 date=1093638238] [quote author=UserLoser. link=board=17;threadid=8375;start=15#msg77664 date=1093637274] [quote author=bethra link=board=17;threadid=8375;start=15#msg77663 date=1093637108] Errr, no that isn't correct I don't think. This is mine [/quote] I think he was talking about his BNCS packet buffer, not BNLS one. [/quote] BNLS packet buffer. However will that packet buffer I linked to previously work on BNCS packets without tweaking? [/quote] Read Over the posts, Figure it out for yourself. It's pretty easy if you just Concentrate! | August 27, 2004, 8:30 PM |
bethra | This one I use to send a BNCS packet buffer. It is the one that is already in the DarkMinion's Packet buffer class [code] Public Function SendBNCS(socket As Winsock, PacketID As Byte) socket.SendData Chr(&HFF) socket.SendData Chr(PacketID) socket.SendData MakeWORD(Len(Buffer) + 4) socket.SendData Buffer Clear End Function [/code] This one I used to send a BNLS packet buffer. [code] Public Function SendBNLS(socket As Winsock, PacketID As Byte) '// '(WORD) Message size, including this 3-byte header '(BYTE) Message ID '(....) Message-dependant data socket.SendData MakeWORD(Len(Buffer) + 3) socket.SendData Chr(PacketID) socket.SendData Buffer Clear End Function [/code][code][/code] | August 27, 2004, 8:39 PM |
MindArchon | [quote author=bethra link=board=17;threadid=8375;start=15#msg77670 date=1093639186] This one I use to send a BNCS packet buffer. It is the one that is already in the DarkMinion's Packet buffer class [code] Public Function SendBNCS(socket As Winsock, PacketID As Byte) socket.SendData Chr(&HFF) socket.SendData Chr(PacketID) socket.SendData MakeWORD(Len(Buffer) + 4) socket.SendData Buffer Clear End Function [/code] This one I used to send a BNLS packet buffer. [code] Public Function SendBNLS(socket As Winsock, PacketID As Byte) '// '(WORD) Message size, including this 3-byte header '(BYTE) Message ID '(....) Message-dependant data socket.SendData MakeWORD(Len(Buffer) + 3) socket.SendData Chr(PacketID) socket.SendData Buffer Clear End Function [/code][code][/code] [/quote] Its ok bethra, I figured out how to do it on my own. Great, I think I have everything I need. Time to attempt to make my first winsocket bot! | August 27, 2004, 9:31 PM |
BaDDBLooD | Congradulations! =) | August 27, 2004, 10:15 PM |
bethra | wait, heh while here is mine correct? [code] Public Function SendBNLS(socket As Winsock, PacketID As Byte) '// '(WORD) Message size, including this 3-byte header '(BYTE) Message ID '(....) Message-dependant data socket.SendData MakeWORD(Len(Buffer) + 3) socket.SendData Chr(PacketID) socket.SendData Buffer Clear End Function [/code] Sometimes when I send with it tehre is no problem. but soemtimes I get a runtime error [quote] Run-time error '40006': Wring Protocol or connection state for the requested transaction or request [/quote] Dunno, it works sometimes when I try to send data to BNLS but then sometimes it displays this run-time error. huh? | August 27, 2004, 11:56 PM |
K | That means that the socket was closed, and you tried to send data on it. You should check if the socket is connected (ie, State is vbStateConnected or whatever) before trying to write to it. | August 28, 2004, 12:19 AM |
KkBlazekK | Heres what I use for bnls packetsend... [code] Public Function SendBNLSPacket(PacketID As Byte) On Error Resume Next If frmMain.sckBNLS.State <> 0 Then frmMain.sckBNLS.SendData MakeWORD(Len(Buffer) + 3) & Chr(PacketID) & Buffer Clear End if End Function [/code] Edit: Why would you need to specify which socket you use? Why would you need more then one for bnls? | August 28, 2004, 12:24 AM |
BaDDBLooD | On Error Resume Next isn't very good. Ignoring a problem will usually cause more problems in the end. | August 28, 2004, 12:27 AM |
KkBlazekK | [code] Public Function SendBNLSPacket(PacketID As Byte) If frmMain.sckBNLS.State <> 8 Then frmMain.sckBNLS.SendData MakeWORD(Len(Buffer) + 3) & Chr(PacketID) & Buffer Clear End if End Function [/code] | August 28, 2004, 1:47 AM |
ChR0NiC | [code] Public Function SendBNLSPacket(PacketID As Byte) If frmMain.sckBNLS.State = sckConnected Then frmMain.sckBNLS.SendData MakeWORD(Len(Buffer) + 3) & Chr(PacketID) & Buffer Clear End if End Function [/code] This way, you will be 100% sure you are connected so you won't crash your bot when it thinks it's alright to send. | August 28, 2004, 5:46 AM |
MindArchon | So, ive connected to BNLS and got the versionbyte. Ive read on these forums, the first thing you send to bnet after connection is 0x01? I dont get the format for it. This is what it says on bnet docs (DWORD[16]) MCP Startup Data (STRING) Battle.net Unique Name Whats a MCP Startup Data, and whats "Battle.net Unique Name?" | August 28, 2004, 6:34 AM |
PaiD | Those r apart of a different login. That is for 0x01 MCP (Also known as Diablo 2 realms) You want to look for BNCS not MCP | August 28, 2004, 6:39 AM |
MindArchon | [quote author=DueL link=board=17;threadid=8375;start=30#msg77745 date=1093675155] Those r apart of a different login. That is for 0x01 MCP (Also known as Diablo 2 realms) You want to look for BNCS not MCP [/quote] Hmm, im not really sure about this.. So i send 0x01 which means I want to be able to join games. Is there anything in this packet? | August 28, 2004, 6:53 AM |
ChR0NiC | [quote author=MindArchon link=board=17;threadid=8375;start=30#msg77746 date=1093675999] Hmm, im not really sure about this.. So i send 0x01 which means I want to be able to join games. Is there anything in this packet? [/quote] 0x01 is not an official BNET Packet. | August 28, 2004, 7:02 AM |
BaDDBLooD | you would use Winsock.SendData Chr(1) | August 28, 2004, 7:04 AM |
MindArchon | [quote author=BaDDBLooD link=board=17;threadid=8375;start=30#msg77748 date=1093676687] you would use Winsock.SendData Chr(1) [/quote] Why do you have to send this. What does it actually do? | August 28, 2004, 7:54 AM |
Kp | [quote author=MindArchon link=board=17;threadid=8375;start=30#msg77752 date=1093679696]Why do you have to send this. What does it actually do?[/quote] It identifies that you want to be a game client, not a {file transfer, chat} client or battle.net server. | August 28, 2004, 4:28 PM |
LordNevar | How the little thing's make such a big difference. | August 28, 2004, 4:55 PM |
KkBlazekK | Its just like setting up your profile on a dating site. If you say your a girl, your gonna get guys(hopefully) messaging you, and vice versa. | August 28, 2004, 6:04 PM |
LordNevar | So what your saying is I should put "Winsock.SendData Chr(1)" as my title ;) | August 28, 2004, 7:24 PM |
MindArchon | Weird, since BNLS is unreachable and I cant test my bot so far, I'd thought I'd look at someone elses source code (just to see if im doing it right). However his 0x50 packet is different from mine. Heres his 0x50 packet. [code]DWORD &H0 NonNTString "68XI" & Prod DWORD verbyte DWORD &H0 DWORD &H0 DWORD &H480 DWORD &H1033 DWORD &H1033 NTString "USA" NTString "United States"[/code] Mine seems different then his. Here's mine: [code]DWORD &H0 DWORD IX68 DWORD SEXP DWORD versionbyte DWORD &H0 DWORD &H0 DWORD &H0 DWORD &H0 DWORD &H0 NTString "CAN" NTString "Canada"[/code] Which ones correct? | August 28, 2004, 9:01 PM |
Newby | I am betting both will pass 0x50. Yours looks to be more .. correct .. in terms of what is inserted where. His NTString "68XI" & Product is just being a cheater. | August 28, 2004, 9:06 PM |
MindArchon | Why is his IX68 reversed? | August 28, 2004, 9:13 PM |
Kp | [quote author=MindArchon link=board=17;threadid=8375;start=45#msg77819 date=1093727633]Why is his IX68 reversed?[/quote] Intel chips are little endian. | August 28, 2004, 9:26 PM |
MindArchon | so I dont have to reverse the product like in Cupheads ocx or Chronics ocx? The packet above will work just fine? | August 28, 2004, 9:32 PM |
ChR0NiC | [quote author=MindArchon link=board=17;threadid=8375;start=45#msg77825 date=1093728729] so I dont have to reverse the product like in Cupheads ocx or Chronics ocx? The packet above will work just fine? [/quote] DWORD SEXP will reverse the the product and make it PXES. So no, you are wrong. | August 28, 2004, 10:00 PM |
MindArchon | When battle.net sends 0x25, if you ignore it you get a -1 ping, and if you send the timestamp back you get a regular ping. What does this mean? "The ping displayed when in chat can be artificially inflated by delaying before sending this packet." It gets larger? How do you get a 0 ms ping. Do you just send 0? It keeps sending me 0x25 after I respond to it every 10 - 15 seconds. Is this normal? | August 29, 2004, 1:02 AM |
LordNevar | If you ignore 0x25 and reply with nothing, than you will get 0 ping. | August 29, 2004, 1:12 AM |
MindArchon | However, I replied to it, and it keeps sending 0x25 over and over, and I keep responding over and over. Do i need to send the next packet to get it stop sending it? | August 29, 2004, 1:16 AM |
LordNevar | It does that, so bnet can monitor your latency, and your connection. | August 29, 2004, 1:22 AM |
MindArchon | OK, ill guess ill keep replying. on the 0x50 return, for NLS revision it returned 0, and on BNLSProtocolSpec it says [quote]If this is zero, the Old Logon System messages (not documented here) will be used.[/quote] Anyone know what this is / how to use it? | August 29, 2004, 1:37 AM |
MindArchon | I got it, I just skipped that and went to 0x09. Im confused, what do I put for Checksum formula. What is it/what does it do? | August 29, 2004, 8:06 PM |
prck | [quote author=MindArchon link=board=17;threadid=8375;start=45#msg78018 date=1093810000] I got it, I just skipped that and went to 0x09. Im confused, what do I put for Checksum formula. What is it/what does it do? [/quote] Look on the protocol spec, read it more carefully the checksum is extracted when you recieve 0x50, It tells you that. | August 29, 2004, 8:27 PM |
DarkSoldier | Ok i just started working on packets and winsocket, and dont want to open a new thread, so here's my question to the class packet buffer from DarkMinion-vL: I get: Compile error: Constants, fixed-length strings, arrays, user-defined types and declare statements not allowed as public members of object modules. that means that i cant place it at the top of the class, but thats exactly the point where it has to be ?! where should i place it then?? [code] Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal numBytes As Long)[/code] | August 29, 2004, 9:10 PM |
MindArchon | Im really stumped. Whenever I send 0x09 to BNLS it returns false. Heres what Im sending. [code]AddDWORD &H2 AddDWORD &H1 AddNTString checksum[/code] It keeps returning false. checksum as a string vairable where I write the checksum data returned from 0x50. Anyone know why its not working? | August 29, 2004, 10:43 PM |
prck | [quote author=DarkSoldier link=board=17;threadid=8375;start=60#msg78028 date=1093813818] Ok i just started working on packets and winsocket, and dont want to open a new thread, so here's my question to the class packet buffer from DarkMinion-vL: I get: Compile error: Constants, fixed-length strings, arrays, user-defined types and declare statements not allowed as public members of object modules. that means that i cant place it at the top of the class, but thats exactly the point where it has to be ?! where should i place it then?? [code] Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal numBytes As Long)[/code] [/quote] Try puttting the API Declare in a declare module, it makes your code cleaner. | August 30, 2004, 4:14 PM |
shadypalm88 | [quote author=DarkSoldier link=board=17;threadid=8375;start=60#msg78028 date=1093813818]Compile error: Constants, fixed-length strings, arrays, user-defined types and declare statements not allowed as public members of object modules. that means that i cant place it at the top of the class, but thats exactly the point where it has to be ?! where should i place it then??[/quote]If you're not using CopyMemory anywhere else, just change "Declare Sub" to "Private Declare Sub". | August 30, 2004, 6:36 PM |
R.a.B.B.i.T | [quote author=MindArchon link=board=17;threadid=8375;start=45#msg77816 date=1093726886] Weird, since BNLS is unreachable and I cant test my bot so far, I'd thought I'd look at someone elses source code (just to see if im doing it right). However his 0x50 packet is different from mine. Heres his 0x50 packet. [code]DWORD &H0 NonNTString "68XI" & Prod DWORD verbyte DWORD &H0 DWORD &H0 DWORD &H480 DWORD &H1033 DWORD &H1033 NTString "USA" NTString "United States"[/code] Mine seems different then his. Here's mine: [code]DWORD &H0 DWORD IX68 DWORD SEXP DWORD versionbyte DWORD &H0 DWORD &H0 DWORD &H0 DWORD &H0 DWORD &H0 NTString "CAN" NTString "Canada"[/code] Which ones correct? [/quote] Your 0x50 will not work, because you send IX68 as the platform ID, when you should be sending IX86. Just another small detail :P | August 31, 2004, 7:37 PM |