Comment by flomo
3 years ago
Yep, one of the features of VB was you could call into Win32 fairly easily.
I once worked with a guy who was a VB savant. He had reverse-engineered the DOC and PST formats in Visual Basic and was comfortable bit-bashing stuff in that environment. His higher-level code was really not good, that wasn't important to him, so he pasted stuff everywhere. Lost track, but hope he found his niche.
I think we all have similar stories of tools like VB being pushed far beyond their original purpose by someone with enough motivation, and creating perfectly functional, yet extremely unconventional code. Here's another example I found in my links of old interesting web stuff --- a server for the MMO Habbo Hotel, written by (at the time) a teenager:
https://files.johno.uk/habbo/h4bbo.net/archive/HabboStuff/Mo...
The most impressive 'pushed beyond it's limits' code I've seen is The trick's VB6 kernel mode driver. Yep, really. VB6. Kernel mode. You have to strip out the MSVBVM60.dll dependency, which dramatically limits what language features you can use, but it's possible, albeit for 32bit Windows only, of course.
https://www.vbforums.com/showthread.php?788179-VB6-Kernel-mo...
Inspired by that, I made a similar 'hello world' type kernel mode driver and in addition to the VB6 version, made a twinBASIC version, which can compile to x64 and run on current Windows. twinBASIC has no runtime dependency, so you can use far more of the language features, supports cdecl for calling dbgprint, and it has native support for putting APIs into the IAT so no TLB dependency and overriding the entry point so no special hack for that.
https://github.com/fafalone/HelloWorldDriver
I'm not nearly as brilliant as The trick or wqweto to figure these things out to begin with, but it's so much fun taking the techniques of these legends and running with them. Although I did claim the title of first to create a realtime kernel ETW event tracer, a notoriously unfriendly API that requires multithreading (possible in VB6 thanks to The trick et al, natively supported in tB via API for now, language syntax soon).
The trick is an actual genius. Why are people like that still using vb6 and making these awesome things? I'm not complaining, it makes me happy! Love reading your posts too, fafalone. Imo you're up there with these other fellas! Keep at it.
1 reply →
Wow, TIL Habbo still exists: https://en.wikipedia.org/wiki/Habbo
Oh boy, I remember when this came around. That was incredible to see come together.