• Welcome to Valhalla Legends Archive.
 

vb debugger speed

Started by Camel, April 08, 2003, 09:21 PM

Previous topic - Next topic

Camel

i finally finished checkrevision code in vb, and my bot now relies on no non-system/vb runtime dlls! yay!
the only problem is that, unless i compile the bot, it takes fuckin' forever to do checkrevision -- upwards of 2000ms -- while the debugger is active. anybody know any way to speed that up?

ooh yeah, and does anybody know a way to get rid of overflow checks in vb, if it's possible? it takes a lot of needless cpu power to convert to a double and add/subtract until it's acceptable to convert back to a long :|

Noodlez

why on earth would you convert checkrevision to vb?!

MrRaza

because people like to try new things, or do things differently to gain more knowledge...

Noodlez

why reinvent the wheel? especially when your turning it from a circle, to a square

MrRaza

lol  ;D that's a good quote btw...

Camel

i'm not turning a circle in to a square, i'm turning a cricle in to a trampy purple wheel with seven nipple tassles. and i did it because i dont want to have to send dlls with every release of my bot, and because i had nothing better to do at the time. right now i'm working on odbc support so that i can have my bot use an sql database and all of that great stuff that leads to web channel display without creepy vl people pouncing on my cd key and password :P. i'm also making it more scriptable than it needs to be, just so i can say i did it. when i'm done, the bot will probably not be able to connect to battle.net at all without script.txt  ;D

Noodlez

#6
i just made that up ^_^!

camel, whats the point of a bot then? you should make it work perfectly. THEN add script.txt

Stealth

#7
Quotedoes anybody know a way to get rid of overflow checks in vb

Correct me if I'm wrong, but you can turn integer overflow checks off in the Project Properties dialog on the Compile tab, under Advanced Optimizations.

P.S.. The vL people are only creepy at night, when it's dark outside... *lightning flash*

Edit: Minor grammatical error
- Stealth
Author of StealthBot

Skywing

#8
Quote from: Camel on April 08, 2003, 09:21 PM
i finally finished checkrevision code in vb, and my bot now relies on no non-system/vb runtime dlls! yay!
the only problem is that, unless i compile the bot, it takes fuckin' forever to do checkrevision -- upwards of 2000ms -- while the debugger is active. anybody know any way to speed that up?

ooh yeah, and does anybody know a way to get rid of overflow checks in vb, if it's possible? it takes a lot of needless cpu power to convert to a double and add/subtract until it's acceptable to convert back to a long :|
I wouldn't hope for too much when running CheckRevision from VB.  Even written in conventional pure C, CheckRevision is far too slow (upwards of 250ms to run on Starcraft, and far far longer to run on, say, Warcraft III).  It takes a pretty creative approach to achieve a decent execution speed (i.e. as fast or faster then Blizzard's versions, which run the above check in more like 10-15ms).

Kp

Quote from: Camel on April 08, 2003, 11:20 PM
i did it because i dont want to have to send dlls with every release of my bot, and because i had nothing better to do at the time. right now i'm working on odbc support so that i can have my bot use an sql database and all of that great stuff that leads to web channel display without creepy vl people pouncing on my cd key and password :P.

This is just plain wrong on several issues.  First, you could use BNLS to avoid sending the DLLs out (and BNLS runs the checks very quickly compared to what you'll achieve in VB).  Second, we've never pounced on any cdkeys or passwords.  Third, even if you don't take my word on the safety of vL products, you could use the webchannel interface.  All you need is a WebChannel-compliant client (i.e. botnet client with whisper sending capability) and to be on the WebChannel accesslist.  It's an open spec that anyone can implement.
[19:20:23] (BotNet) <[vL]Kp> Any idiot can make a bot with CSB, and many do!

Grok

Quote from: Camel on April 08, 2003, 11:20 PMwithout creepy vl people pouncing on my cd key and password :P

Despite hundreds of thousands of BNLS usages, can you name a single instance of Skywing using BNLS to steal someone's cdkey or password?  No?  Maybe there's a good reason for that.

Camel

#11
Quote from: Stealth on April 08, 2003, 11:27 PM
you can turn integer overflow checks off in the Project Properties dialog on the Compile tab, under Advanced Optimizations.
i meant while the debugger is running...that only takes effect post-compile

skywing, i'm quite aware of the real-time-speed issue. it's not *that* hard to time how long it takes to run the checkrevision and cheat 0x25 by that much...
right now, my checkrevision() runs in ~20-30ms post-compile, taking in to account my functions on _every_ add/subtract operation that converts to double to prevent overflows. i suppose i should #if..#endif those out...

* Camel was being facetious about cd key and passwords ::)

Skywing

Quote from: Camel on April 09, 2003, 07:56 AM
Quote from: Stealth on April 08, 2003, 11:27 PM
you can turn integer overflow checks off in the Project Properties dialog on the Compile tab, under Advanced Optimizations.
i meant while the debugger is running...that only takes effect post-compile

skywing, i'm quite aware of the real-time-speed issue. it's not *that* hard to time how long it takes to run the checkrevision and cheat 0x25 by that much...
right now, my checkrevision() runs in ~20-30ms post-compile, taking in to account my functions on _every_ add/subtract operation that converts to double to prevent overflows. i suppose i should #if..#endif those out...

* Camel was being facetious about cd key and passwords ::)
Trying to cheat SID_PING will result in you getting IP-banned now, btw.

You also have to take in to account computer speed when benchmarking these of course - the number I gave were for a 450MHz P3 - if your system is fast enough, I suppose it doesn't matter if your CheckRevision isn't extremely efficient, though at the time Blizzard designed it, efficiency was a necessity (this would have been in 1997).

iago

Some people (like me) would rather do stuff the hard way :-)
This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


Camel

well actually, i just realized that i dont need to spoof ping at all: DoEvents will make the socket send it's buffer. since 0x25 comes before 0x51, the ping is not affected. sure, it slows down login a little, but who the fuck cares? on my computer (AMD 2100+, 1.73GHz) it takes only about 250ms. imho, that's a small price to pay for 1) bragging rights and 2) not having to explain to all the newbie/idiots how to get bnetauth.dll and where to put it because they were too stupid to extract everything from the zip file...