Author | Message | Time |
---|---|---|
shadypalm88 | BNCSutil 1.3.1 primarily fixes a memory leak related to the new revision check file padding. Other changes were made to the way file mapping is handled and to the way the initial seed values for revision checks are implemented. These changes have not been thoroughly tested. I was able to shoehorn the latest DLL build onto a StealthBot and log in using StarCraft. Unlike my last statement about no longer intending to maintain this code, this one is rooted in necessity as well as desire. I leave for college (first year!) on Tuesday. I probably won't have access to a machine capable of building BNCSutil, and even if they are available on campus, I'm not enrolled in any CS classes for this term so they may not be available to me personally. If there's any one who would like to take over maintaining the project, I'll grant Subversion write access and optionally access to the web site. | September 4, 2006, 6:13 AM |
HeRo | Ahhh thank you! ;D ;D | September 4, 2006, 6:50 AM |
Explicit[nK] | Didn't iago offer to maintain it in the other thread? | September 4, 2006, 9:03 AM |
replaced | U need to release 1.3.2 ASAP, because it dont suport IX86VER0! If u put 0 as the mpq number, it returns the value of FALSE! this means u wont be able to load ur bot when the server changes to IX86VER0, the server changes the ix86ver every hour? to something I tried it all.... if mpqnumber = chr$(0) / '"/vbnullstring then mpqnumber = 0 end if lol, fix it :'( | September 4, 2006, 9:54 PM |
l2k-Shadow | [quote author=replaced link=topic=15627.msg157488#msg157488 date=1157406850] U need to release 1.3.2 ASAP, because it dont suport IX86VER0! If u put 0 as the mpq number, it returns the value of FALSE! this means u wont be able to load ur bot when the server changes to IX86VER0, the server changes the ix86ver every hour? to something I tried it all.... if mpqnumber = chr$(0) / '"/vbnullstring then mpqnumber = 0 end if lol, fix it :'( [/quote] he's right lol. | September 4, 2006, 10:05 PM |
dRAgoN | You will need this for the bncsutil checkversion to work the way it should. https://davnit.net/bnet/vL/index.php?topic=15088.msg155124#msg155124 replace the bncsutil_checkVersion with the one in that post. | September 4, 2006, 10:12 PM |
HeRo | Has there always been an IX86ver0 or is this new? | September 4, 2006, 11:11 PM |
l2k-Shadow | [quote author=heRo link=topic=15627.msg157491#msg157491 date=1157411461] Has there always been an IX86ver0 or is this new? [/quote] always. 0-7 | September 4, 2006, 11:12 PM |
shadypalm88 | [quote author=replaced link=topic=15627.msg157488#msg157488 date=1157406850] U need to release 1.3.2 ASAP, because it dont suport IX86VER0![/quote]Sure enough, you're right. I got a little overzealous with my operators: [code] if (!formula || !files || numFiles == 0 || mpqNumber <= 0 || !checksum) { bncsutil_debug_message("error: checkRevision() parameter sanity check " "failed"); return 0; }[/code]Of course mpqNumber <= 0 should be mpqNumber < 0. I'll fix it. | September 4, 2006, 11:34 PM |
shadypalm88 | [quote author=shadypalm88 link=topic=15627.msg157459#msg157459 date=1157350421]I leave for college (first year!) on Tuesday. I probably won't have access to a machine capable of building BNCSutil, and even if they are available on campus, I'm not enrolled in any CS classes for this term so they may not be available to me personally. If there's any one who would like to take over maintaining the project, I'll grant Subversion write access and optionally access to the web site. [/quote] [quote author=shadypalm88 link=topic=15627.msg157494#msg157494 date=1157412885]mpqNumber <= 0 should be mpqNumber < 0. I'll fix it. [/quote]Well, I committed the one character fix to Subversion, but, it's Tuesday, I didn't rebuild the project, I've left now, and I'm not going back until late November. This is the part where the white knight emerges. | September 6, 2006, 2:28 AM |
Stealth | If nobody with more experience steps up, I'll build it. I got your previous version's code compiling in Dev-C++ shortly before you released this update, or, if you have a VC++ project file I can use that instead. | September 6, 2006, 3:14 AM |
shadypalm88 | [quote author=Stealth link=topic=15627.msg157557#msg157557 date=1157512485] If nobody with more experience steps up, I'll build it. I got your previous version's code compiling in Dev-C++ shortly before you released this update, or, if you have a VC++ project file I can use that instead. [/quote]That's what the vc7_build and vc8_build folders contain in the source distribution. (Visual C++ 7 build and Visual C++ 8 build.) There is a file in 1.3.0+ packages called README-Windows.txt that may be valuable. | September 6, 2006, 1:39 PM |
Stealth | [quote author=shadypalm88 link=topic=15627.msg157563#msg157563 date=1157549955] [quote author=Stealth link=topic=15627.msg157557#msg157557 date=1157512485] If nobody with more experience steps up, I'll build it. I got your previous version's code compiling in Dev-C++ shortly before you released this update, or, if you have a VC++ project file I can use that instead. [/quote]That's what the vc7_build and vc8_build folders contain in the source distribution. (Visual C++ 7 build and Visual C++ 8 build.) There is a file in 1.3.0+ packages called README-Windows.txt that may be valuable. [/quote] Ah. Those files and the Windows readme were not in the 1.1.0 code zip. Looks like your site is down right now. I'll try it this afternoon and see if I can't get that DLL built. | September 6, 2006, 1:55 PM |
l2k-Shadow | Yeah the site is down but I managed to dl the 1.3.1 source. here I dled visual studio 2005 but i'm not willing to install it because it requires service pack 2, if anyone else can, please do. | September 6, 2006, 10:24 PM |
replaced | And all u had to do was delete 1 charactor... the "=" sign, perhaps its possible to hex it out? lol, so who here can read assembly / hex ??? ? | September 7, 2006, 2:52 AM |
MyStiCaL | i'll compile n see how it comes out. ;\ [code]if (!formula || !files || numFiles == 0 || mpqNumber < 0 || !checksum) { [/code] im not ub0r great in c++ but since you gave me what i needed to know.. -_- | September 7, 2006, 3:09 AM |
Myndfyr | [quote author=replaced link=topic=15627.msg157596#msg157596 date=1157597565] And all u had to do was delete 1 charactor... the "=" sign, perhaps its possible to hex it out? lol, so who here can read assembly / hex ??? ? [/quote] Yes, it's possible to hex edit it out by changing a JG instruction to a JGE instruction. | September 7, 2006, 3:10 AM |
rabbit | Shoo. | September 7, 2006, 6:01 AM |
MyStiCaL | File not found windows.h when compiling.. Compiling with visual 2005 C++ =( | September 7, 2006, 12:49 PM |
Stealth | I'm missing "hashtable.c" -- I don't have VS8 so I'm using the VS7 project file. Does anyone have the version of this file used in BNCSutil? | September 7, 2006, 1:41 PM |
replaced | All this trouble because someone said he would update bncsutil to change a single charactor and instead was to lazy to do it for 2 days >:(. lol, ok ppls if u can padd hash files, someone can hex this lol | September 7, 2006, 8:58 PM |
JoeTheOdd | I had originally posted this: [quote]replaced: I can read both. Anyone who says they can program but can't read hex should die.[/quote] But a moderator deleted this and (probably the same person) PM'd me. It was early this morning so I didn't notice what you meant by hex right away (I thought you simply meant hexadecimal numbers). In that case, I can read assembly but not hex (in all truth I can *write* assembly, but reading it is a bit harder, and I can only read the simpler stuff without getting a migrane). So, my apologies to anyone I accidentally called an idiot, etc. | September 7, 2006, 9:11 PM |
replaced | Lol, for some odd reason, it seems that the bnet server is asking for ix86ver0 half the time. And when it asks it, if u reconnect it just keeps on asking for the same ix86ver, they change every hour i think. So annoying, if this is fixed then finally I won't need BNLS at the times I need it anymore. | September 8, 2006, 1:22 AM |
l2k-Shadow | I disassembled it and fixed the <= to < but... the thing he forgot to add the seed for MPQ 7 so yeah.. bad times, that won't work. | September 8, 2006, 1:29 AM |
JoeTheOdd | To all those who act like this is then end of the world, hang on for five more minutes while someone recompiles it. :P | September 8, 2006, 2:56 AM |
replaced | Why not just remove it entirely, no < or = checks | September 8, 2006, 3:06 AM |
Myndfyr | [quote author=replaced link=topic=15627.msg157661#msg157661 date=1157684779] Why not just remove it entirely, no < or = checks [/quote] Because if you try to index into an array before the array begins or after it ends, chances are very good that you'll end up accessing the wrong memory and dooming everyone! | September 8, 2006, 3:08 AM |
HeRo | [quote author=Joe[x86] link=topic=15627.msg157659#msg157659 date=1157684206] To all those who act like this is then end of the world, hang on for five more minutes while someone recompiles it. :P [/quote] So I take it you got it covered? | September 8, 2006, 3:14 AM |
l2k-Shadow | [quote author=replaced link=topic=15627.msg157661#msg157661 date=1157684779] Why not just remove it entirely, no < or = checks [/quote] The first check which is the <= mpqnumber which should be < mpqnumber, is covered, BUT, there are 8 ver mpqs that battle.net sends and 1.3.1 does not contain the seed value for ver7.mpq.. my assembly knowledge is quite poor but i'll do my best all the same. on other note: it is quite time consuming to compile a C++ project, (unlike VB) mainly due to the fact that there are so many compilers, that whatever works on one may generate 1000 errors on another, like for example i can't compile it with my compiler without having to change a lot of the code which i don't feel like doing, so that being said, unless someone makes it compatible with another compiler or compiles it themselves using a compatible compiler, you're gonna have to wait i suppose. | September 8, 2006, 7:31 PM |
MyStiCaL | well, i'm using the exact same compiler, but missing 'windows.h'? =\ | September 8, 2006, 8:16 PM |
K | [quote author=MyStiCaL link=topic=15627.msg157692#msg157692 date=1157746582] well, i'm using the exact same compiler, but missing 'windows.h'? =\ [/quote] Then you need the windows platform sdk installed and you need to add it to your compiler include paths. Windows Platform SDK . Ignore the "Server 2003" thing. That just means it supports the windows API up to that version. | September 8, 2006, 10:02 PM |
Kp | [quote author=l2k-Shadow link=topic=15627.msg157688#msg157688 date=1157743898]on other note: it is quite time consuming to compile a C++ project, (unlike VB) mainly due to the fact that there are so many compilers, that whatever works on one may generate 1000 errors on another, like for example i can't compile it with my compiler without having to change a lot of the code which i don't feel like doing, so that being said, unless someone makes it compatible with another compiler or compiles it themselves using a compatible compiler, you're gonna have to wait i suppose.[/quote] This usually means someone screwed up. Adhere to the standard and it will work fine in multiple compilers with no changes. I maintain some non-toy code that compiles cleanly (and warning free!) in Visual C++ 6 (ewww), Visual C++ 7 (ewww++), MinGW (GCC for Windows), and GCC on Linux. | September 9, 2006, 2:17 AM |
JoeTheOdd | [quote author=heRo link=topic=15627.msg157664#msg157664 date=1157685249] So I take it you got it covered? [/quote] Nope. But BNCSutil is a widely used library, important to MANY people. If it becomes a large problem (the memory leaks, that is), now that Stealth's got it figured out he'd probably recompile it himself. Honestly I don't use it myself (I'm working on some stuff that deals with MBNCSUtil, but I'm working with managed languages mostly now) so it has no priority to me, but there are a lot of people here who can do it and eventually someone's going to get unlazy. [quote author=Kp link=topic=15627.msg157701#msg157701 date=1157768233] This usually means someone screwed up. Adhere to the standard and it will work fine in multiple compilers with no changes. I maintain some non-toy code that compiles cleanly (and warning free!) in Visual C++ 6 (ewww), Visual C++ 7 (ewww++), MinGW (GCC for Windows), and GCC on Linux. [/quote] I know someone's going to flame me for this, but that's one reason I support .NET to anyone wishing to use a C flavour language (or a close cousin). It maintain's C's cross platform-ness (.NET exe's are JIT compiled to native code, and mono will run these in Linux) and it shares a common, single standard and common, single compiler for the entire language -- all platforms. | September 9, 2006, 3:49 AM |
HeRo | [quote author=Joe[x86] link=topic=15627.msg157705#msg157705 date=1157773748] [quote author=heRo link=topic=15627.msg157664#msg157664 date=1157685249] So I take it you got it covered? [/quote] Nope. But BNCSutil is a widely used library, important to MANY people. If it becomes a large problem (the memory leaks, that is), now that Stealth's got it figured out he'd probably recompile it himself. Honestly I don't use it myself (I'm working on some stuff that deals with MBNCSUtil, but I'm working with managed languages mostly now) so it has no priority to me, but there are a lot of people here who can do it and eventually someone's going to get unlazy. [/quote] Yeah, I guess you're right :-\ | September 9, 2006, 7:16 AM |
Kp | [quote author=Joe[x86] link=topic=15627.msg157705#msg157705 date=1157773748]I know someone's going to flame me for this, but that's one reason I support .NET to anyone wishing to use a C flavour language (or a close cousin). It maintain's C's cross platform-ness (.NET exe's are JIT compiled to native code, and mono will run these in Linux) and it shares a common, single standard and common, single compiler for the entire language -- all platforms. [/quote] C and C++ have standards too. If people adhered to them, you wouldn't need .Net. For that matter, if people used only a single compiler you wouldn't have this problem either. GCC runs on most (all?) popular platforms today, unlike Microsoft's C compiler which only runs on Microsoft Windows. I will grant that Microsoft's C compiler supports some extensions which make it easier to tolerate working on Windows, but then, the goal here is to avoid extensions by adhering to standards. :) | September 9, 2006, 5:22 PM |
K | I have compiled the latest version with the fixes mentioned here. You can download it here. | September 9, 2006, 7:18 PM |
HeRo | [quote author=K link=topic=15627.msg157718#msg157718 date=1157829533] I have compiled the latest version with the fixes mentioned here. You can download it here. [/quote] :o Thank you!! | September 9, 2006, 7:39 PM |
Myndfyr | [quote author=Kp link=topic=15627.msg157717#msg157717 date=1157822532] [quote author=Joe[x86] link=topic=15627.msg157705#msg157705 date=1157773748]I know someone's going to flame me for this, but that's one reason I support .NET to anyone wishing to use a C flavour language (or a close cousin). It maintain's C's cross platform-ness (.NET exe's are JIT compiled to native code, and mono will run these in Linux) and it shares a common, single standard and common, single compiler for the entire language -- all platforms. [/quote] C and C++ have standards too. If people adhered to them, you wouldn't need .Net. [/quote] Yet you demonstrate your ignorance. .NET is binary-compatible; C and C++ are not. | September 10, 2006, 10:09 AM |
MyStiCaL | [quote author=K link=topic=15627.msg157697#msg157697 date=1157752971] [quote author=MyStiCaL link=topic=15627.msg157692#msg157692 date=1157746582] well, i'm using the exact same compiler, but missing 'windows.h'? =\ [/quote] Then you need the windows platform sdk installed and you need to add it to your compiler include paths. Windows Platform SDK . Ignore the "Server 2003" thing. That just means it supports the windows API up to that version. [/quote] even though i have it installed, very useful information thanks K | September 10, 2006, 1:31 PM |
Kp | [quote author=MyndFyre[vL] link=topic=15627.msg157733#msg157733 date=1157882996] [quote author=Kp link=topic=15627.msg157717#msg157717 date=1157822532] [quote author=Joe[x86] link=topic=15627.msg157705#msg157705 date=1157773748]I know someone's going to flame me for this, but that's one reason I support .NET to anyone wishing to use a C flavour language (or a close cousin). It maintain's C's cross platform-ness (.NET exe's are JIT compiled to native code, and mono will run these in Linux) and it shares a common, single standard and common, single compiler for the entire language -- all platforms. [/quote] C and C++ have standards too. If people adhered to them, you wouldn't need .Net. [/quote] Yet you demonstrate your ignorance. .NET is binary-compatible; C and C++ are not. [/quote] Pay more attention to the discussion before you speak. We're talking about whether the compiler will accept the source code without changes. Binary compatibility was never raised. | September 10, 2006, 6:05 PM |
Stealth | [quote author=K link=topic=15627.msg157718#msg157718 date=1157829533] I have compiled the latest version with the fixes mentioned here. You can download it here. [/quote] Thanks. Does it actually require a "hashtable.c" file? | September 13, 2006, 9:17 PM |
K | [quote author=Stealth link=topic=15627.msg157894#msg157894 date=1158182249] [quote author=K link=topic=15627.msg157718#msg157718 date=1157829533] I have compiled the latest version with the fixes mentioned here. You can download it here. [/quote] Thanks. Does it actually require a "hashtable.c" file? [/quote] I don't think so. I used VS2005 and the included project. | September 13, 2006, 10:08 PM |
Spilled[DW] | [quote author=K link=topic=15627.msg157718#msg157718 date=1157829533] I have compiled the latest version with the fixes mentioned here. You can download it here. [/quote] Where can I get the binaries? | September 13, 2006, 10:14 PM |
Stealth | [quote author=Spilled link=topic=15627.msg157898#msg157898 date=1158185693] [quote author=K link=topic=15627.msg157718#msg157718 date=1157829533] I have compiled the latest version with the fixes mentioned here. You can download it here. [/quote] Where can I get the binaries? [/quote] Clicking the download button on the page he linked will give you a zip with the compiled DLL inside it. Thanks, K :) | September 13, 2006, 11:49 PM |
K | [quote author=Spilled link=topic=15627.msg157898#msg157898 date=1158185693] [quote author=K link=topic=15627.msg157718#msg157718 date=1157829533] I have compiled the latest version with the fixes mentioned here. You can download it here. [/quote] Where can I get the binaries? [/quote] From the link "bncsutil.zip" on the page I linked to. I'm hesitant to link directly to files on my server from other webpages. | September 13, 2006, 11:50 PM |
Spilled[DW] | [quote author=K link=topic=15627.msg157910#msg157910 date=1158191436] [quote author=Spilled link=topic=15627.msg157898#msg157898 date=1158185693] [quote author=K link=topic=15627.msg157718#msg157718 date=1157829533] I have compiled the latest version with the fixes mentioned here. You can download it here. [/quote] Where can I get the binaries? [/quote] From the link "bncsutil.zip" on the page I linked to. I'm hesitant to link directly to files on my server from other webpages. [/quote] I'm not sure if you misread but I need the binaries, not the only the dll but the lib and header files. | September 14, 2006, 12:02 AM |
K | [quote author=Spilled link=topic=15627.msg157912#msg157912 date=1158192136] I'm not sure if you misread but I need the binaries, not the only the dll but the lib and header files. [/quote] Well you should have said "where can I get the lib and header files" then :P Give me a minute, and I'll update the page/download to include both. | September 14, 2006, 12:15 AM |
Spilled[DW] | [quote author=K link=topic=15627.msg157913#msg157913 date=1158192951] [quote author=Spilled link=topic=15627.msg157912#msg157912 date=1158192136] I'm not sure if you misread but I need the binaries, not the only the dll but the lib and header files. [/quote] Well you should have said "where can I get the lib and header files" then :P Give me a minute, and I'll update the page/download to include both. [/quote] k Thanks alot ;) | September 14, 2006, 12:16 AM |
K | Done. | September 14, 2006, 12:22 AM |
Stealth | [quote author=K link=topic=15627.msg157915#msg157915 date=1158193339] Done. [/quote] It would seem that VC7 is not properly importing yvals.h. The definition for _STD_BEGIN is not around properly when it tries to build the project. Argh. | September 14, 2006, 12:23 AM |
Ersan | BNCSUtil seems to have the same problem that BNLS did (omg wonder what they're using?) The new gigantic integers are getting truncated somewhere and I can only connect 10% of the time and checkrevision seems to fail 50% of the time, an update would be cool, or I'll try to figure it out. | September 14, 2006, 1:24 PM |
Spilled[DW] | [quote author=Ersan link=topic=15627.msg157970#msg157970 date=1158240253] BNCSUtil seems to have the same problem that BNLS did (omg wonder what they're using?) The new gigantic integers are getting truncated somewhere and I can only connect 10% of the time and checkrevision seems to fail 50% of the time, an update would be cool, or I'll try to figure it out. [/quote] Hrmmm, I'm getting Invalid Game Version response but I thought it was something I was doing wrong... Someone should double check this... Then again I could be doing something wrong... *shrugs* | September 14, 2006, 3:59 PM |
K | I haven't seen this problem using BNCSUtil (actually, the old version with a patch for the new checksum algorithm) running on Ubuntu AMD64. I haven't really looked at anything that could be causing this, but since BNCSUtil uses GMP for handling large integers, I don't see why battle.net increasing the length would cause any problems. | September 14, 2006, 5:56 PM |
Spilled[DW] | When i call checkRevision from the binaries you posted it returns me a bad CheckSum.... | September 14, 2006, 6:14 PM |
K | [quote author=Spilled link=topic=15627.msg157982#msg157982 date=1158257674] When i call checkRevision from the binaries you posted it returns me a bad CheckSum.... [/quote] Actually, I'm not sure what I was talking about. GMP is used for the NLS functions only. The problem with checkRevision (this is the old version that I'm looking at, but I bet it's the same) is this: [code] long values[4]; // ... values[variable] = atol(token) [/code] And the reason it works for me and not for you is that since I've compiled for AMD64, sizeof(long) on my machine is 8 instead of 4 bytes for 32bit. I'll look into coming up with a fix. | September 14, 2006, 6:36 PM |
Spilled[DW] | [quote author=K link=topic=15627.msg157983#msg157983 date=1158258971] [quote author=Spilled link=topic=15627.msg157982#msg157982 date=1158257674] When i call checkRevision from the binaries you posted it returns me a bad CheckSum.... [/quote] Actually, I'm not sure what I was talking about. GMP is used for the NLS functions only. The problem with checkRevision (this is the old version that I'm looking at, but I bet it's the same) is this: [code] long values[4]; // ... values[variable] = atol(token) [/code] And the reason it works for me and not for you is that since I've compiled for AMD64, sizeof(long) on my machine is 8 instead of 4 bytes for 32bit. I'll look into coming up with a fix. [/quote] Ahh, had me worried there for awhile, thought it was something i was doing. Thanks | September 14, 2006, 6:45 PM |
K | I've uploaded a new version (same place). I didn't test it because I have no way to, but you can give it a try. | September 14, 2006, 6:59 PM |
MyStiCaL | Ive tried it on using war3 doesn't work for me, will see if for anyone else. | September 14, 2006, 7:03 PM |
Spilled[DW] | I'm still recieving a bad checksum =\ hrmm... Edit: My mistake, Version check is passing correctly everytime for me. | September 14, 2006, 7:07 PM |
K | [quote author=Spilled link=topic=15627.msg157990#msg157990 date=1158260825] I'm still recieving a bad checksum =\ hrmm... Edit: My mistake, Version check is passing correctly everytime for me. [/quote] Sounds good. I just verified that the fix I made worked using the test values that Hdx posted in the other thread. Using no modifications, [code] SEXP ver-IX86-5.mpq A=3028046468 C=4177216242 B=3749337048 4 A=A-S B=B-C C=C^A A=A+B. checksum (should be 0x6aafef39): 699a1a4b [/code] with fix: [code] SEXP ver-IX86-5.mpq A=3028046468 C=4177216242 B=3749337048 4 A=A-S B=B-C C=C^A A=A+B. checksum (should be 0x6aafef39): 6aafef39 [/code] | September 14, 2006, 7:40 PM |
MyStiCaL | is this just for star/sexp? | September 14, 2006, 8:03 PM |
K | [quote author=MyStiCaL link=topic=15627.msg157995#msg157995 date=1158264232] is this just for star/sexp? [/quote] It should work for any product. If you can provide data like Hdx provided in the other thread for Warcraft3 / TFT, I can check that is working as well. | September 14, 2006, 8:07 PM |
HdxBmx27 | [quote author=K link=topic=15627.msg157997#msg157997 date=1158264443] It should work for any product. If you can provide data like Hdx provided in the other thread for Warcraft3 / TFT, I can check that is working as well. [/quote] For your testing pleasure: [code] ver-IX86-#.dll Value String: C=502518104 A=3046850123 B=2644909248 4 A=A-S B=B^C C=C^A A=A^B 0: WAR3: d07c2f5e W2BN: 1c2cad9 STAR: 83b0d5f2 D2DV: d3473ab4 D2XP: 11b1bdbe JSTR: 2e4e3755 1: WAR3: 3aa17060 W2BN: 153aa13d STAR: 46bf77e8 D2DV: d175fba6 D2XP: b5a405f6 JSTR: 8670978f 2: WAR3: 40bbc8f5 W2BN: a754427f STAR: b63212f7 D2DV: 805ed3b1 D2XP: 7df38968 JSTR: b5a08a84 3: WAR3: 49b7d03e W2BN: 2bc14559 STAR: 8edce892 D2DV: f787c7d4 D2XP: b3a12afe JSTR: d30c7235 4: WAR3: a9425df4 W2BN: 22371b7d STAR: 1ecab674 D2DV: bb47dc82 D2XP: a6ddd87e JSTR: 2663054b 5: WAR3: bcfd5eda W2BN: ab87df71 STAR: f199d346 D2DV: 623783d8 D2XP: 31fe9f16 JSTR: ff032209 6: WAR3: 52e3d192 W2BN: a1982241 STAR: 6112cde D2DV: fdfba6c0 D2XP: 8faf74b6 JSTR: 25b29661 7: WAR3: 4d2af799 W2BN: 86ca2baf STAR: c22e1f3 D2DV: 1393d56d D2XP: 6fadccf8 JSTR: 20e11e18 Value String: A=3890603401 C=2543385810 B=2612801343 4 A=A^S B=B+C C=C+A A=A+B 0: WAR3: 5192cc7f W2BN: c4308383 STAR: 7c7fde8c D2DV: 8c296fb0 D2XP: 57f8e62a JSTR: 27f6da7e 1: WAR3: 50d241c9 W2BN: fe68f597 STAR: 4f9acdc2 D2DV: 7b7dd112 D2XP: 7c6417de JSTR: d2d5e840 2: WAR3: 8d8fdb74 W2BN: 7d7a8d85 STAR: 3af63a33 D2DV: a46df8c9 D2XP: 9acfc980 JSTR: f9aec1ed 3: WAR3: 6c04be9f W2BN: 4e64d403 STAR: cdda526c D2DV: a4616310 D2XP: 25d4412a JSTR: c6b8665e 4: WAR3: 2b6b7ac5 W2BN: 9a86de77 STAR: 2fbfd516 D2DV: d13b0186 D2XP: 2ef95536 JSTR: d4b8694c 5: WAR3: 5fac35e3 W2BN: f831a8c3 STAR: 8a644b88 D2DV: 924858ac D2XP: 316053e2 JSTR: 12ef4f72 6: WAR3: 1a311f2b W2BN: 9a665023 STAR: b5864470 D2DV: cc8c5574 D2XP: f19ddb62 JSTR: e8654ada 7: WAR3: beefe9e8 W2BN: e2e35025 STAR: 4841cd7f D2DV: 51d06d35 D2XP: 62824058 JSTR: 9a8d4b11 Value String: A=1249383011 B=2387119329 C=319668889 4 A=A+S B=B^C C=C^A A=A^B 0: WAR3: 9a341b8b W2BN: 1c172988 STAR: b3d28229 D2DV: 907ed260 D2XP: 6a3d013f JSTR: 687496e5 1: WAR3: a54f3645 W2BN: 1885a56c STAR: ab8990ff D2DV: 21843c8a D2XP: a1716937 JSTR: c983fcdf 2: WAR3: 532fc5a4 W2BN: d6a283b2 STAR: baca1aa0 D2DV: 9eb4210d D2XP: 171a4545 JSTR: 1328e944 3: WAR3: 7b9f23ab W2BN: 1070be08 STAR: 504e39c9 D2DV: 9f982600 D2XP: a6908d7f JSTR: 9b92a805 4: WAR3: a9749849 W2BN: 4f2e596c STAR: 22e5c17b D2DV: f0a677de D2XP: 4f07fe5f JSTR: 9cc74533 5: WAR3: f6adb677 W2BN: 43582c90 STAR: 56e2081d D2DV: bae8cc8c D2XP: 49e76f27 JSTR: 983ee091 6: WAR3: fbe99bef W2BN: 3e621a50 STAR: 2cb094e5 D2DV: c0bda274 D2XP: a0d1bad7 JSTR: 66237b29 7: WAR3: 39211000 W2BN: 53f201da STAR: 10373d7c D2DV: 565ce001 D2XP: 52edcc7d JSTR: f3e35128 Value String: B=1324766345 A=17937714 C=3208736877 4 A=A-S B=B+C C=C+A A=A+B 0: WAR3: 3e774036 W2BN: 3bf2f95e STAR: 16373a9c D2DV: 22b4fc7f D2XP: 5ac687cf JSTR: af6706da 1: WAR3: 15343944 W2BN: b1ef515e STAR: 86597baa D2DV: 4e49b199 D2XP: 4b99a7cf JSTR: 52f24cb8 2: WAR3: 1b4ec5db W2BN: 76a4bd5e STAR: 3f3a6c41 D2DV: 78fb50d6 D2XP: aee237cf JSTR: 4c880537 3: WAR3: d7b1bdd6 W2BN: a03f795e STAR: 8d03383c D2DV: be0e6a5f D2XP: 6fac87cf JSTR: e755b37a 4: WAR3: 4a0ae3c0 W2BN: f813815e STAR: 4f113626 D2DV: b88c7fed D2XP: b8f9e7cf JSTR: 939bf1d4 5: WAR3: 4aa43c9a W2BN: 498c495e STAR: 87ffa700 D2DV: 7205f1cb D2XP: d3847cf JSTR: e7d659e 6: WAR3: d35fa252 W2BN: 42aba95e STAR: f02a2cb8 D2DV: 1b2936b3 D2XP: 756cc7cf JSTR: a1628296 7: WAR3: 82322a1f W2BN: 3e6f8d5e STAR: cf71c085 D2DV: 4de794c2 D2XP: 9315f7cf JSTR: 976b80db Value String: A=284179296 C=1987738994 B=999863123 4 A=A-S B=B-C C=C+A A=A^B 0: WAR3: b066ed0a W2BN: 85e85157 STAR: 7a2f8add D2DV: f4520fb9 D2XP: ed94faca JSTR: 71c9b69d 1: WAR3: cb8effd8 W2BN: 96662a1f STAR: 8fd4ce3b D2DV: 2c47f177 D2XP: 537616a2 JSTR: 796b6573 2: WAR3: 45e50391 W2BN: 5d6f8d79 STAR: ab0b1476 D2DV: 2504a8f8 D2XP: 5287f3d8 JSTR: c910da04 3: WAR3: fff37b6a W2BN: 8b665cd7 STAR: 91bc9ebd D2DV: bebed699 D2XP: 3520074a JSTR: 8eab32bd 4: WAR3: 9b9738d4 W2BN: fee54007 STAR: 56bcaa37 D2DV: 6e87e1eb D2XP: ae2d96fa JSTR: a7a6484f 5: WAR3: 2afd0416 W2BN: 2c2e3527 STAR: fc7f1e69 D2DV: 84bc53e5 D2XP: 6664985a JSTR: 121bd741 6: WAR3: f635749e W2BN: 5bf7d217 STAR: 2734bc51 D2DV: d84184cd D2XP: b4b75c4a JSTR: 7eaaa319 7: WAR3: 3a2e956d W2BN: 44045d91 STAR: f2bf30e2 D2DV: 5275f8c D2XP: b8f75080 JSTR: 9409b6b0 [/code] The numbers refer to the MPQ number of corse. Easy enuf to figure out. (If it looks all jumbled, put in notepand and lower the font size) ~-~(HDX)~-~ | September 14, 2006, 11:57 PM |
Ersan | It works for war3, dunno what that guy was talking about. | September 15, 2006, 1:25 AM |
MyStiCaL | [quote author=Ersan link=topic=15627.msg158048#msg158048 date=1158283509] It works for war3, dunno what that guy was talking about. [/quote] the problem there was when i went to download it, it was still the old version of the .dll lol and i wasn't lookin clearly. =) | September 15, 2006, 1:48 AM |
JoeTheOdd | K, when you upgraded the code, did you by any chance fix it so that the formula is read correctly with it's variables in a different order? | September 15, 2006, 3:03 AM |
HdxBmx27 | [quote author=Joe[x86] link=topic=15627.msg158061#msg158061 date=1158289425] K, when you upgraded the code, did you by any chance fix it so that the formula is read correctly with it's variables in a different order? [/quote] Yes, they didn't need to change anything, IIRC it used the OLD version of CRev that assumed nothing. So it didn't have to be fixed. ~-~(HDX)~-~ | September 15, 2006, 3:09 AM |
Myndfyr | Hdx, my CheckRevision fails on Warcraft III: [code] Value String: A=1249383011 B=2387119329 C=319668889 4 A=A+S B=B^C C=C^A A=A^B 0: WAR3: 9a341b8b W2BN: fdfa8e3e STAR: b3d28229 D2DV: 907ed260 D2XP: 6a3d013f 1: WAR3: a54f3645 W2BN: 5fed4f04 STAR: ab8990ff D2DV: 21843c8a D2XP: a1716937 2: WAR3: 532fc5a4 W2BN: 8ddbedf5 STAR: baca1aa0 D2DV: 9eb4210d D2XP: 171a4545 3: WAR3: 7b9f23ab W2BN: c340761e STAR: 504e39c9 D2DV: 9f982600 D2XP: a6908d7f 4: WAR3: a9749849 W2BN: 7a4e5a70 STAR: 22e5c17b D2DV: f0a677de D2XP: 4f07fe5f 5: WAR3: f6adb677 W2BN: 8be61632 STAR: 56e2081d D2DV: bae8cc8c D2XP: 49e76f27 6: WAR3: fbe99bef W2BN: 8fa7a20a STAR: 2cb094e5 D2DV: c0bda274 D2XP: a0d1bad7 7: WAR3: 39211000 W2BN: 16d0a101 STAR: 10373d7c D2DV: 565ce001 D2XP: 52edcc7d Value String: B=1324766345 A=17937714 C=3208736877 4 A=A-S B=B+C C=C+A A=A+B 0: WAR3: 3e774036 W2BN: af2e7caf STAR: 16373a9c D2DV: 22b4fc7f D2XP: 5ac687cf 1: WAR3: 15343944 W2BN: 01aeb9bd STAR: 86597baa D2DV: 4e49b199 D2XP: 4b99a7cf 2: WAR3: 1b4ec5db W2BN: 9d47c854 STAR: 3f3a6c41 D2DV: 78fb50d6 D2XP: aee237cf 3: WAR3: d7b1bdd6 W2BN: 935fba4f STAR: 8d03383c D2DV: be0e6a5f D2XP: 6fac87cf 4: WAR3: 4a0ae3c0 W2BN: a2892c39 STAR: 4f113626 D2DV: b88c7fed D2XP: b8f9e7cf 5: WAR3: 4aa43c9a W2BN: a73ff113 STAR: 87ffa700 D2DV: 7205f1cb D2XP: 0d3847cf 6: WAR3: d35fa252 W2BN: e9bd66cb STAR: f02a2cb8 D2DV: 1b2936b3 D2XP: 756cc7cf 7: WAR3: 82322a1f W2BN: 8a45e498 STAR: cf71c085 D2DV: 4de794c2 D2XP: 9315f7cf Value String: A=284179296 C=1987738994 B=999863123 4 A=A-S B=B-C C=C+A A=A^B 0: WAR3: b066ed0a W2BN: 77a79316 STAR: 7a2f8add D2DV: f4520fb9 D2XP: ed94faca 1: WAR3: cb8effd8 W2BN: 56632094 STAR: 8fd4ce3b D2DV: 2c47f177 D2XP: 537616a2 2: WAR3: 45e50391 W2BN: 3a9f1335 STAR: ab0b1476 D2DV: 2504a8f8 D2XP: 5287f3d8 3: WAR3: fff37b6a W2BN: ca776b36 STAR: 91bc9ebd D2DV: bebed699 D2XP: 3520074a 4: WAR3: 9b9738d4 W2BN: 74698c50 STAR: 56bcaa37 D2DV: 6e87e1eb D2XP: ae2d96fa 5: WAR3: 2afd0416 W2BN: 4a50a472 STAR: fc7f1e69 D2DV: 84bc53e5 D2XP: 6664985a 6: WAR3: f635749e W2BN: c90d631a STAR: 2734bc51 D2DV: d84184cd D2XP: b4b75c4a 7: WAR3: 3a2e956d W2BN: 6d9d93e9 STAR: f2bf30e2 D2DV: 05275f8c D2XP: b8f75080 Value String: A=3890603401 C=2543385810 B=2612801343 4 A=A^S B=B+C C=C+A A=A+B 0: WAR3: 5192cc7f W2BN: 0aa95f21 STAR: 7c7fde8c D2DV: 8c296fb0 D2XP: 57f8e62a 1: WAR3: 50d241c9 W2BN: b4f90f7f STAR: 4f9acdc2 D2DV: 7b7dd112 D2XP: 7c6417de 2: WAR3: 8d8fdb74 W2BN: 65690646 STAR: 3af63a33 D2DV: a46df8c9 D2XP: 9acfc980 3: WAR3: 6c04be9f W2BN: 8942ca41 STAR: cdda526c D2DV: a4616310 D2XP: 25d4412a 4: WAR3: 2b6b7ac5 W2BN: 0792cf63 STAR: 2fbfd516 D2DV: d13b0186 D2XP: 2ef95536 5: WAR3: 5fac35e3 W2BN: 085fa3fd STAR: 8a644b88 D2DV: 924858ac D2XP: 316053e2 6: WAR3: 1a311f2b W2BN: 1a6a4755 STAR: b5864470 D2DV: cc8c5574 D2XP: f19ddb62 7: WAR3: beefe9e8 W2BN: fea7b852 STAR: 4841cd7f D2DV: 51d06d35 D2XP: 62824058 [/code] At least, it's not working compared to what your data says (although the last value string on MPQ 7 made "beef" :P). Any ideas? My CheckRevision is not product-dependent, and like it says, we agree on the other 4 products I support. [edit]I've just confirmed that it's not a data size issue (it's not a problem that it's an unsigned 32-bit integer instead of a 64-bit integer). I got the same result using 64-bit integers. | September 15, 2006, 10:52 AM |
HdxBmx27 | I'd have to see your code. But, those are the values returned from the old BNCSutil.dll So it would seem its jsut a signed/unsigned problem.... ~-~(HDX)~-~ | September 15, 2006, 2:15 PM |
replaced | Can someone fix bncsutil.dll already to load war3 -.- | September 15, 2006, 9:33 PM |
HdxBmx27 | It does work with all games: http://jbls.org/vercheck.txt ~-~(HDX)~-~ | September 15, 2006, 9:50 PM |
l2k-Shadow | [quote author=replaced link=topic=15627.msg158127#msg158127 date=1158356004] Can someone fix bncsutil.dll already to load war3 -.- [/quote] CheckRevision() works the same for all clients, therefore, it is not possible that just one client doesn't work because then all clients wouldn't work and vice-versa. | September 15, 2006, 10:38 PM |
Myndfyr | I'm apparently at disagreement with Hdx. My CRev works correctly, according to the official client (data from a packet log): ver-IX86-3.mpq C=502518104 A=3046850123 B=2644909248 4 A=A-S B=B^C C=C^A A=A^B result = 49b7d03e Hdx's tests: Value String: C=502518104 A=3046850123 B=2644909248 4 A=A-S B=B^C C=C^A A=A^B 0: WAR3: 17d14506 1: WAR3: 65b7f688 2: WAR3: 1ce4a845 3: WAR3: 6fe5f866 4: WAR3: a95f4de4 5: WAR3: ad71a40a 6: WAR3: cea5ff52 7: WAR3: 327afbd9 He's currently checking his client files. We'll keep you up-to-date. :) | September 15, 2006, 11:35 PM |
HdxBmx27 | Hehe mybad, Updating my posts right now. Meh what can you do? All I got is a lil laptop that cant run wc3, and sometimes I forget sorry. But Still, It works fine. Considering I got the same results from all 3 things. I have updated my VerCheck.txt to Contain: JBLS, BNCSutil, and the actuall ver-IX86-#.dll itself! Everything checks out. (But blizzard's files preform the functions 10x faster then any of ours >.<) http://jbls.org/VerCheck.txt ~-~(HDX)~-~ | September 15, 2006, 11:44 PM |
Antarctica | Hey, when is the BNCSutil going to be updated for the checksum aglorithm change? | September 16, 2006, 2:19 PM |
HeRo | [quote author=Antarctica link=topic=15627.msg158191#msg158191 date=1158416388] Hey, when is the BNCSutil going to be updated for the checksum aglorithm change? [/quote] Read the whole topic. | September 16, 2006, 7:49 PM |
dRAgoN | [quote author=Antarctica link=topic=15627.msg158191#msg158191 date=1158416388] Hey, when is the BNCSutil going to be updated for the checksum aglorithm change? [/quote] K posted a link to a compiled fix of bncsutils, and (if your lazy) I posted a fix to extract the mpqid in the other thread. | September 16, 2006, 8:25 PM |
K | [quote author=l)ragon link=topic=15627.msg158209#msg158209 date=1158438314] [quote author=Antarctica link=topic=15627.msg158191#msg158191 date=1158416388] Hey, when is the BNCSutil going to be updated for the checksum aglorithm change? [/quote] K posted a link to a compiled fix of bncsutils, and (if your lazy) I posted a fix to extract the mpqid in the other thread. [/quote] It's worth noting that the extractMpqNum function in bncsutil was never effected by the file name change, since it grabs the character located before the .mpq extention, and not the n[sup]th[/sup] character. | September 16, 2006, 8:27 PM |
HdxBmx27 | K, would it be possible for you to add these functions to BNCSutil? ~-~(HDX)~-~ | September 16, 2006, 8:34 PM |
RealityRipple | Is anyone else getting the occasional Invalid Password error while connecting on War3? It pops up every now and again since the new BNCSutil. | September 18, 2006, 5:22 AM |
HeRo | [quote author=RealityRipple link=topic=15627.msg158341#msg158341 date=1158556978] Is anyone else getting the occasional Invalid Password error while connecting on War3? It pops up every now and again since the new BNCSutil. [/quote] No, although I have only connected to war3 a few times with the new ver, so far no problems. | September 18, 2006, 5:32 AM |
Antarctica | [quote author=K link=topic=15627.msg157718#msg157718 date=1157829533] I have compiled the latest version with the fixes mentioned here. You can download it here. [/quote] Still wont connect for me. :( The extract_mpqNumber now works but im still getting invalid version. | September 20, 2006, 11:08 AM |
RealityRipple | Also, can we get a copy that returns the correct version number in bncsutil_getVersionString and bncsuti_getVersion ? the current copies (both 1.3.1 and 1.3.1.1) return 1.3.0, which is sort of annoying when 1.3.1.1 is required. | September 20, 2006, 7:46 PM |
Spilled[DW] | I'm getting an occasional Invalid Key response using BNCSUtil, Anyone else experiencing this problem? KeyHash returned seems rather short but recieving correct values. | September 20, 2006, 10:14 PM |
RealityRipple | Not yet... what client is the invalid key on? | September 20, 2006, 10:16 PM |
Spilled[DW] | broodwar | September 20, 2006, 10:19 PM |
HeRo | [quote author=Spilled link=topic=15627.msg158520#msg158520 date=1158790451] I'm getting an occasional Invalid Key response using BNCSUtil, Anyone else experiencing this problem? KeyHash returned seems rather short but recieving correct values. [/quote] Yes I rewrote so much code thinking it was caused by my mistake, but it came down to just having to be bncsutil. | September 20, 2006, 10:31 PM |
Spilled[DW] | Hrmmm, I've been messin with my code for 2 days now trying to figure out the problem. I guess we will wait for K's input on the situation. I also very rarely recieve invalid password, but I haven't been looking into my code there, the invalid key resulting in IPB was very annoying. | September 20, 2006, 10:33 PM |
l2k-Shadow | [quote author=heRo link=topic=15627.msg158523#msg158523 date=1158791460] [quote author=Spilled link=topic=15627.msg158520#msg158520 date=1158790451] I'm getting an occasional Invalid Key response using BNCSUtil, Anyone else experiencing this problem? KeyHash returned seems rather short but recieving correct values. [/quote] Yes I rewrote so much code thinking it was caused by my mistake, but it came down to just having to be bncsutil. [/quote] I don't have problems with this.. i use kd_create -> kd_calculatehash -> kd_gethash and it works fine always. | September 20, 2006, 10:34 PM |
RealityRipple | ah... maybe kd_quick is broken for cdkey hashing? I do the old way, too, and there's no CDKey problems. | September 20, 2006, 11:04 PM |
HeRo | [quote author=l2k-Shadow link=topic=15627.msg158526#msg158526 date=1158791655] [quote author=heRo link=topic=15627.msg158523#msg158523 date=1158791460] [quote author=Spilled link=topic=15627.msg158520#msg158520 date=1158790451] I'm getting an occasional Invalid Key response using BNCSUtil, Anyone else experiencing this problem? KeyHash returned seems rather short but recieving correct values. [/quote] Yes I rewrote so much code thinking it was caused by my mistake, but it came down to just having to be bncsutil. [/quote] I don't have problems with this.. i use kd_create -> kd_calculatehash -> kd_gethash and it works fine always. [/quote] I use kd_quick, when I used kd_create etc.. I never had any problems. I guess I'll have to go back to that old way =\ | September 20, 2006, 11:12 PM |
Spilled[DW] | [quote author=heRo link=topic=15627.msg158528#msg158528 date=1158793936] [quote author=l2k-Shadow link=topic=15627.msg158526#msg158526 date=1158791655] [quote author=heRo link=topic=15627.msg158523#msg158523 date=1158791460] [quote author=Spilled link=topic=15627.msg158520#msg158520 date=1158790451] I'm getting an occasional Invalid Key response using BNCSUtil, Anyone else experiencing this problem? KeyHash returned seems rather short but recieving correct values. [/quote] Yes I rewrote so much code thinking it was caused by my mistake, but it came down to just having to be bncsutil. [/quote] I don't have problems with this.. i use kd_create -> kd_calculatehash -> kd_gethash and it works fine always. [/quote] I use kd_quick, when I used kd_create etc.. I never had any problems. I guess I'll have to go back to that old way =\ [/quote] I use kd_create() right now and im having the problem.... [code] DWORD VerID = getExeInfo(files[0], exeInformation, 300, &Version,0x1); if(!VerID) { global->Queue << cRed << "Failed to retrieve Exe Version!\n"; return false; } unsigned long prod, val1, val2, pub; kd_init(); unsigned long decoder = kd_create(global->Config.getCDKey().c_str(),strlen(global->Config.getCDKey().c_str())); if(decoder == -1) { global->Queue << cRed << "Failed to create decoder!\n"; return false; } if(!kd_isValid(decoder)) { global->Queue << cRed << "Invalid CDKey Provided!\n"; return false; } long hashLength = kd_calculateHash(decoder,ClientToken,ServerToken); if(hashLength == 0) { global->Queue << cRed << "CDKey hashing failed!\n"; return false; } char keyHash[hashLength]; memset(keyHash,0x0,hashLength); if(kd_getHash(decoder,keyHash) == 0) { global->Queue << cGreen << "[Battle.net] - " << cRed << "Failed to retrieve Key Hash!\n"; return false; } [/code] | September 20, 2006, 11:19 PM |
RealityRipple | kd_init is no longer necessary... also... your kd_isValid... it's not a boolean, it's supposed to be a long integer. not sure if that changes anything. | September 20, 2006, 11:34 PM |
Spilled[DW] | kd_IsValid is depreceated is called withing kd_create, good point but that still doesnt solve the issue. | September 20, 2006, 11:49 PM |
RealityRipple | [code]if(!kd_isValid(decoder)) { global->Queue << cRed << "Invalid CDKey Provided!\n"; return false; }[/code] Isn't that the error you're getting? or is it a bnet error followed by an ipban? | September 20, 2006, 11:56 PM |
Spilled[DW] | [quote author=RealityRipple link=topic=15627.msg158534#msg158534 date=1158796562] [code]if(!kd_isValid(decoder)) { global->Queue << cRed << "Invalid CDKey Provided!\n"; return false; }[/code] Isn't that the error you're getting? or is it a bnet error followed by an ipban? [/quote] No, I'm getting an Invalid Key Response from 0x51 resulting in IPBan. Packet log reveals that my keyHash is only 5 bytes long... | September 21, 2006, 12:12 AM |
RealityRipple | you may wanna add a hashkey length check then. If it's not 20, don't send it. | September 21, 2006, 12:42 AM |
Spilled[DW] | [quote author=RealityRipple link=topic=15627.msg158537#msg158537 date=1158799355] you may wanna add a hashkey length check then. If it's not 20, don't send it. [/quote] 27 | September 21, 2006, 3:15 AM |
RealityRipple | Hashed cd keys are 20 characters long... not 27... | September 21, 2006, 3:59 AM |
Spilled[DW] | My mistake, dont know where i got 27 from... | September 21, 2006, 4:20 AM |
Antarctica | guys look idk what 2 do, ive dled the new 1.3.1.1 ver and it still dont work... maybe somethingn wrong with my code? (VB6 btw) [code] Dim lngToken As Long Dim lngVersion As Long Dim boolCheckRevision As Boolean Dim strExeInfo As String, KeyHash As String If Declarations.Product = "STAR" Or Declarations.Product = "SEXP" Then lngVersion = BNCSutil.getExeInfo(App.Path & "\SEXP\Starcraft.exe", strExeInfo) lngToken = GetTickCount boolCheckRevision = BNCSutil.checkRevision(Declarations.ValueString, App.Path & "\sexp\starcraft.exe", App.Path & "\sexp\storm.dll", App.Path & "\sexp\battle.snp", BNCSutil.extractMPQNumber(Declarations.strMPQName), Declarations.lngCheckSum) With PBuffer .InsertDWORD lngToken .InsertDWORD lngVersion .InsertDWORD Declarations.lngCheckSum .InsertDWORD &H1 .InsertDWORD &H0 .InsertDWORD Len(Declarations.CDKey) decoder = kd_create(Declarations.CDKey, Len(Declarations.CDKey)) hashlength = kd_calculateHash(decoder, lngToken, Declarations.lngSrvToken) If hashlength = -1 Then AddText vbRed, "[BNCSutil] Failed to hash CDKey." frmMain.mnuDisconnect_Click .Clear Exit Function End If KeyHash = String$(hashlength, vbNullChar) ' Initialize buffer Call kd_getHash(decoder, KeyHash) .InsertDWORD BNCSutil.kd_product(decoder) .InsertDWORD BNCSutil.kd_val1(decoder) .InsertDWORD &H0 .InsertNonNTString KeyHash Call kd_free(decoder) .InsertNTString strExeInfo .InsertNTString Declarations.CDKeyOwner .SendPacket &H51 End With ElseIf Declarations.Product = "WAR3" Then lngVersion = BNCSutil.getExeInfo(App.Path & "\WAR3\war3.exe", strExeInfo) lngToken = GetTickCount boolCheckRevision = BNCSutil.checkRevision(Declarations.ValueString, App.Path & "\WAR3\war3.exe", App.Path & "\WAR3\storm.dll", App.Path & "\WAR3\game.dll", BNCSutil.extractMPQNumber(Declarations.strMPQName), Declarations.lngCheckSum) With PBuffer .InsertDWORD lngToken .InsertDWORD lngVersion .InsertDWORD Declarations.lngCheckSum .InsertDWORD &H1 .InsertDWORD &H0 .InsertDWORD Len(Declarations.CDKey) decoder = kd_create(Declarations.CDKey, Len(Declarations.CDKey)) hashlength = kd_calculateHash(decoder, lngToken, Declarations.lngSrvToken) If hashlength = -1 Then AddText vbRed, "[BNCSutil] Failed to hash CDKey." frmMain.mnuDisconnect_Click Exit Function End If KeyHash = String$(hashlength, vbNullChar) ' Initialize buffer Call kd_getHash(decoder, KeyHash) .InsertDWORD BNCSutil.kd_product(decoder) .InsertDWORD BNCSutil.kd_val1(decoder) .InsertDWORD 0 .InsertNonNTString KeyHash Call kd_free(decoder) .InsertNTString strExeInfo .InsertNTString Declarations.CDKeyOwner .SendPacket &H51 End With End If [/code] | September 22, 2006, 12:45 PM |
UserLoser | Out of curiousity, what does the "kd" prefix stand for in bncsutil? | September 22, 2006, 1:59 PM |
l2k-Shadow | [quote author=UserLoser link=topic=15627.msg158664#msg158664 date=1158933592] Out of curiousity, what does the "kd" prefix stand for in bncsutil? [/quote] i would think Key Decoder | September 22, 2006, 2:16 PM |
MysT_DooM | try adding a null byte to the end of ur key hash (&H0) so if u have something like insertNTstring in your packet buffer shud be somelike the one below; so try that. [code]Public Sub InsertNTString(ByVal NewData As String) 'adds a string to the buffer with a null byte at the end Buffer = Buffer & NewData & Chr(&H0) End Sub[/code] or if that doesnt work do a search for all your bncsutil.dll's on ur computer and replace them all with your new one :P , even though it shud be read from ur system folder i believe. | September 22, 2006, 8:46 PM |
Antarctica | that isnt going to help... and it doesen't. | September 22, 2006, 9:14 PM |
HeRo | [quote author=Antarctica link=topic=15627.msg158700#msg158700 date=1158959674] that isnt going to help... and it doesen't. [/quote] I think you should make a new topic for your problem, this is the BNCSutil thread. | September 22, 2006, 10:48 PM |
MysT_DooM | hmm i tried your code for when your hashing the cdkey, and thats when bnet discs me. So the problem might be over there. disregard my earlier hint i was reading the wrong line in my code when i told you that. anyways instead of using bncs to do some of ur key stuff try the following [code]Public Declare Sub calcHashBuf Lib "bncsutil.dll" (ByVal Data As String, ByVal Length As Long, ByVal Hash As String) [/code] [code] Public Function ScKeyDecode(ByVal CDKey As String) As String Dim tKey(12) As String, tStr As String, tLng As Long, HashKey As Long, pos As Integer, i As Integer For i = 0 To 12: tKey(i) = Mid$(CDKey, i + 1, 1): Next i tLng = 3 For i = 0 To 11: tLng = tLng + (tKey(i) Xor (tLng * 2)): Next i tKey(12) = CStr((tLng Mod 10)) pos = &HB For i = &HC2 To 7 Step -&H11 tStr = tKey(pos): tLng = i Mod &HC: tKey(pos) = tKey(tLng): tKey(tLng) = tStr: pos = pos - 1 Next i HashKey = &H13AC9741 For i = 11 To 0 Step -1 tStr = tKey(i) If Asc(tStr) <= 55 Then tKey(i) = (((HashKey And &HFF) And 7) Xor tStr) HashKey = HashKey \ 8 ElseIf Asc(tStr) <= 65 Then tKey(i) = ((i And 1) Xor tStr) End If Next i tStr = Join(tKey, vbNullString) ScKeyDecode = tStr End Function [/code] [code] Dim Product As String Dim PublicValue As String Dim PrivateValue As String Dim CDKey As String, Decode As String CDKey = WhereEverUrKeyIs Decode = ScKeyDecode(CDKey) Product = Mid$(Decode, 1, 2) PublicValue = Mid$(Decode, 3, 7) PrivateValue = Mid$(Decode, 10, 3) [/code] [code] Dim KeyHash As String KeyHash = buf2.MakeDWORD(ClientToken) & buf2.MakeDWORD(ServerToken) & buf2.MakeDWORD(Product) & buf2.MakeDWORD(PublicValue) & buf2.MakeDWORD(&H0) & buf2.MakeDWORD(PrivateValue) [/code] [code] Dim outhash As String outhash = String(20, 0) Call calcHashBuf(KeyHash, Len(KeyHash), outhash) [/code] then when ur making the packet just replace in urs for the [code] .InsertNonNTString KeyHash [/code] with [code] .InsertString outhash[/code] then for ur key values just replace em with Product & PublicValue. if that dont work provide a packetlog using ur earlier code. but when i was experimentin with ur code earlier i kept gettin the keyhash as empty or the cdkey was invalid. hope it helps | September 22, 2006, 11:58 PM |
Antarctica | I don't really think that is the problem because it worked fine before untill bnet changed the aglorithm again. PS: If I didn't say what kind of error im getting from 0x51, its 0x101 (Invalid Version) So, again, I doubt its the key decoder. | September 23, 2006, 12:02 AM |
HdxBmx27 | [quote author=Antarctica link=topic=15627.msg158733#msg158733 date=1158969734] I don't really think that is the problem because it worked fine before untill bnet changed the aglorithm again. PS: If I didn't say what kind of error im getting from 0x51, its 0x101 (Invalid Version) So, again, I doubt its the key decoder. [/quote] Thats caused by one or more fo the following: Invalid VerByte Invalid Exe Version Invalid EXE Checksum. How are you calculating the Checksum/exever? If you're useing BNCSutil.dll make SURE you are useing the updated ver. ~-~(HDX)~-~ | September 23, 2006, 12:37 AM |
Spilled[DW] | provide us a packet log also plz | September 23, 2006, 4:56 AM |
MyStiCaL | I think he didn't update to the right .dll version =x | September 23, 2006, 8:37 AM |
Antarctica | im using bncsutil.dll v1.3.1.1 i posted my code earlier heres my code for parsing 0x50: [code] Case &H50 Declarations.lngSrvToken = Val("&H" & StrToHex(StrReverse(Mid(Data, 9, 4)))) 'Server Token Declarations.strMPQName = Mid(Data, InStr(1, Data, "IX86"), (InStr(1, Data, "mpq") + 4)) Declarations.ValueString = Mid(Data, 38, Len(Data)) 'Value String Send0x51 [/code] heres a packet log [code] 1 192.168.1.5 63.240.202.138 59 Send 0000 01 FF 50 3A 00 00 00 00 00 36 38 58 49 50 58 45 ..P:.....68XIPXE 0010 53 CF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 S............... 0020 00 00 00 00 00 00 00 00 00 55 53 41 00 55 6E 69 .........USA.Uni 0030 74 65 64 20 53 74 61 74 65 73 00 ted States. 2 63.240.202.138 192.168.1.5 8 Recv 0000 FF 25 08 00 5E C9 B3 25 .%..^..% 3 192.168.1.5 63.240.202.138 8 Send 0000 FF 25 08 00 5E C9 B3 25 .%..^..% 4 63.240.202.138 192.168.1.5 103 Recv 0000 FF 50 67 00 00 00 00 00 AD 85 61 15 29 EB 09 00 .Pg.......a.)... 0010 00 4D 89 7E 99 CB C6 01 76 65 72 2D 49 58 38 36 .M.~....ver-IX86 0020 2D 35 2E 6D 70 71 00 42 3D 31 36 32 34 34 35 37 -5.mpq.B=1624457 0030 36 32 20 43 3D 33 35 31 35 34 39 32 31 31 31 20 62 C=3515492111 0040 41 3D 34 30 38 37 36 31 38 38 30 31 20 34 20 41 A=4087618801 4 A 0050 3D 41 5E 53 20 42 3D 42 2B 43 20 43 3D 43 2D 41 =A^S B=B+C C=C-A 0060 20 41 3D 41 2D 42 00 A=A-B. 5 192.168.1.5 63.240.202.138 111 Send 0000 FF 51 6F 00 72 54 68 01 01 00 0E 01 00 00 74 03 .Qo.rTh.......t. 0010 01 00 00 00 00 00 00 00 0D 00 00 00 01 00 00 00 ................ 0020 6F 51 70 00 00 00 00 00 EE ED 72 D4 D2 83 EA 5B oQp.......r....[ 0030 B4 B3 BF 7A 5C A3 9D 5A 65 30 F0 0C 53 74 61 72 ...z\..Ze0..Star 0040 63 72 61 66 74 2E 65 78 65 20 30 38 2F 32 35 2F craft.exe 08/25/ 0050 30 36 20 31 37 3A 34 32 3A 30 31 20 31 32 31 36 06 17:42:01 1216 0060 35 31 32 00 57 68 65 65 6C 65 72 20 57 2E 00 512.Wheeler W.. 6 63.240.202.138 192.168.1.5 9 Recv 0000 FF 51 09 00 01 01 00 00 00 .Q....... [/code] | September 24, 2006, 8:36 PM |
MyStiCaL | as far as i know you don't need to change anything in your code if your using bncsutil.dll to connect.. only if your using bnetauth.dll kthx well this makes me think your not using bncsutil.dll =\ [quote author=Antarctica link=topic=15627.msg158901#msg158901 date=1159130191] im using bncsutil.dll v1.3.1.1 i posted my code earlier heres my code for parsing 0x50: [code] Case &H50 Declarations.lngSrvToken = Val("&H" & StrToHex(StrReverse(Mid(Data, 9, 4)))) 'Server Token Declarations.strMPQName = Mid(Data, InStr(1, Data, "IX86"), (InStr(1, Data, "mpq") + 4)) Declarations.ValueString = Mid(Data, 38, Len(Data)) 'Value String Send0x51 [/code] [/quote] | September 24, 2006, 8:39 PM |
Antarctica | ok, then what ver of bncsutil.dll do i need to be using? im using v1.3.1.1 | September 24, 2006, 8:44 PM |
l2k-Shadow | [quote author=Antarctica link=topic=15627.msg158901#msg158901 date=1159130191] im using bncsutil.dll v1.3.1.1 i posted my code earlier heres my code for parsing 0x50: [code] Case &H50 Declarations.lngSrvToken = Val("&H" & StrToHex(StrReverse(Mid(Data, 9, 4)))) 'Server Token Declarations.strMPQName = Mid(Data, InStr(1, Data, "IX86"), (InStr(1, Data, "mpq") + 4)) Declarations.ValueString = Mid(Data, 38, Len(Data)) 'Value String Send0x51 [/code] [/quote] well not to mention that's bad code, you are extracting the incorrect mpq file name, and use a debuffer please. Also check out the extractMPQNumber() function in BNCSUtil. | September 24, 2006, 9:13 PM |
Antarctica | YAY BOT WORKING!!! ;D ;D ;D thx for the tip shadow xD PS: Shadow: Howcome your bot needs BNLS when mine doesen't? (Just wondering)... | September 24, 2006, 9:29 PM |
l2k-Shadow | welcome. | September 24, 2006, 9:46 PM |
Myndfyr | [quote author=Antarctica link=topic=15627.msg158916#msg158916 date=1159133344] PS: Shadow: Howcome your bot needs BNLS when mine doesen't? (Just wondering)... [/quote] Some of us choose to support BNLS, others choose to support local hashing, and some have a mix. BNLS requires no files on the end-user's computer, so it's extremely easy for the user to set up. Requiring game files on the local computer makes the product more prone to breaking due to user error. For the project I'm currently working on, when all is said and done, my product will default to local hashing, but switch to BNLS if the version check fails, or if the game files aren't present. | September 24, 2006, 11:00 PM |
l2k-Shadow | [quote author=Antarctica link=topic=15627.msg158916#msg158916 date=1159133344] YAY BOT WORKING!!! ;D ;D ;D thx for the tip shadow xD PS: Shadow: Howcome your bot needs BNLS when mine doesen't? (Just wondering)... [/quote] it doesn't need it, it is an optional feature. | September 24, 2006, 11:18 PM |
RealityRipple | [quote author=MyndFyre[vL] link=topic=15627.msg158927#msg158927 date=1159138846] [quote author=Antarctica link=topic=15627.msg158916#msg158916 date=1159133344] PS: Shadow: Howcome your bot needs BNLS when mine doesen't? (Just wondering)... [/quote] Some of us choose to support BNLS, others choose to support local hashing, and some have a mix. BNLS requires no files on the end-user's computer, so it's extremely easy for the user to set up. Requiring game files on the local computer makes the product more prone to breaking due to user error. For the project I'm currently working on, when all is said and done, my product will default to local hashing, but switch to BNLS if the version check fails, or if the game files aren't present. [/quote] I have something similar to that. Since I have hash files stored on my site (courtesy of Blake!), and they're automatically updated (courtesy of a program blake has), I wrote a program that downloads the new hash files in zip form, extracts them, puts them in the right place, and downloads the new verbyte from a text file. Automatic local hashing. It's been a feature of my bot for a while now. | September 24, 2006, 11:24 PM |
MyStiCaL | I am in the making somthing similar to CSB while supporting BNLS/HASH but its default checks weather or not the hashes are in the correct folder or if the game is installed on the computer, and if not then it automaticly sets to BNLS before connection seqence begins, anywho, i know from a old topic i think someone mentioned somthing about downloading the patchs from client, is it it actually possible to download new hash files from the game with out being on the actual client? =P | September 25, 2006, 4:27 AM |
RealityRipple | Sort of... There are MPQ files the game downloads (i think the file name is recieved at the same time the Invalid/Outdated verbyte is recieved, which you can then use with BNFTP). However, when I looked inside a downloaded mpq (got d1's 1.08 to 1.09), it looked like they weren't the exact files. Probably some other form of patching goes on, but I don't know what. If you do find out how, I would love to know. | September 25, 2006, 6:26 AM |
Myndfyr | [quote author=RealityRipple link=topic=15627.msg158958#msg158958 date=1159165571] Sort of... There are MPQ files the game downloads (i think the file name is recieved at the same time the Invalid/Outdated verbyte is recieved, which you can then use with BNFTP). However, when I looked inside a downloaded mpq (got d1's 1.08 to 1.09), it looked like they weren't the exact files. Probably some other form of patching goes on, but I don't know what. If you do find out how, I would love to know. [/quote] I know BNLS does this, but I don't know how. | September 25, 2006, 6:47 AM |
RealityRipple | Maybe they just run the patch program on the hash files... however you go about doing that. My guess is that each file in the mpq has instructions and data, saying "add this info to this file at that location", "remove this info from this file", etc... | September 25, 2006, 6:51 AM |
RealityRipple | Some helpful info for this: D1's 1.08 to 1.09 update mpq. Here's the original mpq: http://realityripple.com/Uploads/DRTL_IX86_108_109.mpq and here's a zip file of the files inside: http://realityripple.com/Uploads/DRTL_IX86_108_109.zip Notice especially the contents of numbers 4 through 8. | September 25, 2006, 10:11 AM |
aton | is bncsutil 1.3.1 checkrevision function working for sc/bw 1.14 ? i heard they changed the code a bit... i am having severe troubles with compiling the library in linux. has someone compiled it and/or fixed the build system? i'd be grateful for object files or a makefile or instructions how to compile it. greetings, aton | October 11, 2006, 2:13 PM |
K | I have compiled it on linux, although it was a pain in the ass. I specifically remembering the debug crap giving me a lot of problems. Specifically, g++ didn't like the concatination of string literals in the debug messages in file.cpp. I made them each just one string. I also commented out a lot of the debug crap that failed to compile, then decided I didn't even want to link in debug.c. I think I went through and made macros for some of the debug stuff that came out to be nothing. Here's my makefile -- go from there modifying stuff to see if you can get it to compile. I recommend going in and adding newlines to the ends of all the files first to get rid of all those warnings. [code] CXX = g++ CXXFLAGS = -Wall -O3 -I ../ -Wno-multichar -fPIC CXXOBJ = bsha1.o cdkeydecoder.o checkrevision.o decodekey.o file.o libinfo.o oldauth.o nls.o CC = gcc CCFLAGS = -Wall -O3 -I ../ -Wno-multichar -fPIC CCOBJ = pe.o sha1.o stack.o LDFLAGS = -shared -lgmp TARGET = libbncsutil.so $(TARGET): $(CXXOBJ) $(CCOBJ) $(CXX) $(CXXFLAGS) $(LDFLAGS) $(CXXOBJ) $(CCOBJ) -o $(TARGET) $(CXXOBJ): %.o: %.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ $(CCOBJ): %.o: %.c $(CC) $(CCFLAGS) -c $< -o $@ clean: rm -f $(CCOBJ) $(CXXOBJ) $(TARGET) *~ all: make $(TARGET) [/code] | October 11, 2006, 8:14 PM |
aton | thanks, its really a bitch... it compiled bsha1.o and cdkeydecoder.o fine, but then i get: [code] aton@cassiopeia ~/bnet/bncsutil-1.3.1/src/bncsutil $ make g++ -Wall -O3 -I ../ -Wno-multichar -fPIC -c checkrevision.cpp -o checkrevision.o checkrevision.cpp: In function 'const char* basename(const char*)': checkrevision.cpp:127: error: declaration of C function 'const char* basename(const char*)' conflicts with /usr/include/string.h:387: error: previous declaration 'char* basename(const char*)' here make: *** [checkrevision.o] Error 1 [/code] do you still have your modified source files? | October 11, 2006, 10:51 PM |
K | [quote author=aton link=topic=15627.msg159690#msg159690 date=1160607107] thanks, its really a bitch... it compiled bsha1.o and cdkeydecoder.o fine, but then i get: [code] aton@cassiopeia ~/bnet/bncsutil-1.3.1/src/bncsutil $ make g++ -Wall -O3 -I ../ -Wno-multichar -fPIC -c checkrevision.cpp -o checkrevision.o checkrevision.cpp: In function 'const char* basename(const char*)': checkrevision.cpp:127: error: declaration of C function 'const char* basename(const char*)' conflicts with /usr/include/string.h:387: error: previous declaration 'char* basename(const char*)' here make: *** [checkrevision.o] Error 1 [/code] do you still have your modified source files? [/quote] I can look, but it was a complete hack job. I renamed basename() to be get_basename() to resolve that confict. | October 11, 2006, 11:07 PM |
aton | oh man i have commented out/added/modified dozens of lines of the source and i am still getting compiler errors... could you just tarball/gzip the object files and upload them somewhere? would save me a lot of friggling time. i am using these in my bot: cdkeydecoder.o checkrevision.o decodekey.o sha1.o bsha1.o oldauth.o greetings, aton | October 12, 2006, 12:12 AM |
K | [quote author=aton link=topic=15627.msg159694#msg159694 date=1160611934] oh man i have commented out/added/modified dozens of lines of the source and i am still getting compiler errors... could you just tarball/gzip the object files and upload them somewhere? would save me a lot of friggling time. i am using these in my bot: cdkeydecoder.o checkrevision.o decodekey.o sha1.o bsha1.o oldauth.o greetings, aton [/quote] Don't think it would help you, since my files are for amd64. I went through and came up with something that compiles, links, and seems to work. I posted the source in a separate .tar.gz here: http://www.jwkfs.net/archive.php?show=3 Hope this helps you. | October 12, 2006, 12:23 AM |
aton | i got it to compile myself in the meanwhile. it really sucks. i had to comment out hundreds of debug messages. now it compiles but my bot gets banned once i try to login, hehe. i will do some testcases tomorrow. thanks for the help! | October 12, 2006, 12:56 AM |
aton | btw i tried to compile your linux mod version to, this is what i get: [code]aton@cassiopeia ~/bnet/bncsutil-1.3.1-linux $ make g++ -Wall -O3 -I ../ -Wno-multichar -fPIC -c bsha1.cpp -o bsha1.o bsha1.cpp:26:28: error: bncsutil/mutil.h: No such file or directory bsha1.cpp:27:28: error: bncsutil/bsha1.h: No such file or directory bsha1.cpp:142: error: expected constructor, destructor, or type conversion before 'calcHashBuf' make: *** [bsha1.o] Error 1 [/code] | October 12, 2006, 1:06 AM |
K | [quote author=aton link=topic=15627.msg159700#msg159700 date=1160615186] btw i tried to compile your linux mod version to, this is what i get: [code]aton@cassiopeia ~/bnet/bncsutil-1.3.1-linux $ make g++ -Wall -O3 -I ../ -Wno-multichar -fPIC -c bsha1.cpp -o bsha1.o bsha1.cpp:26:28: error: bncsutil/mutil.h: No such file or directory bsha1.cpp:27:28: error: bncsutil/bsha1.h: No such file or directory bsha1.cpp:142: error: expected constructor, destructor, or type conversion before 'calcHashBuf' make: *** [bsha1.o] Error 1 [/code] [/quote] Sorry, the folder needs to be named 'bncsutil' in order for it to compile correctly, due to the way the header files are included. | October 12, 2006, 1:09 AM |
aton | sorry, my bad. it works great. are you successfully using these object files to get your bots online? | October 12, 2006, 1:18 AM |
aton | it works more than great. i made another few modifications and my bot is online :) :) :) thanks a _lot_ for the help, your source was much better than my hacked up stuff. | October 12, 2006, 1:28 AM |
K | [quote author=aton link=topic=15627.msg159702#msg159702 date=1160615903] it works great. are you successfully using these object files to get your bots online? [/quote] I don't really have a working linux bot, but yes the version that I built will log on successfully. | October 12, 2006, 1:33 AM |
aton | i am coding in linux only, the win32 stuff gives me the creeps :) we should have a chat on aim/icq/irc some day... i am mostly on irc.pulltheplug.org #semtex | October 12, 2006, 1:38 AM |