Security Tool HijackThis Goes Open Source
wiredmikey writes "The popular free security tool HijackThis has been open sourced by its owner, Trend Micro. The tool scans systems to find settings that may have been modified by spyware, malware or other programs that have wiggled their way onto a system and caused problems. Downloaded over 10 million times, HijackThis generates reports to help users analyze and fix an infected or problem computer. But the tool is not designed for novices – and doesn't actually determine what's good or bad. That's up to you, but it is a good way to keep an eye on things and possibly locate anomalies that may have been missed by other security products. Trend Micro warns that if you don't know what you're doing, it's probably not a good idea to make any changes to your computer settings and system files. Trend Micro acquired the tool from creator Merijn Bellekom in 2007, and has offered it for free ever since, but now is making the code available to the public. The code, originally written in Visual Basic, is now officially available at Sourceforge here."
My PHB says that free stuff can't be any good. Surely, we'd be much better off by throwing 7 figures at Symantec. ;)
Since it was "originally written in Visual Basic", I wonder what language does it use now?
It turns out, it still uses Visual Basic. Not sure why was the summary written that way.
They're using Subversion to manage the code: http://hjt.svn.sourceforge.net/viewvc/hjt/
Say I find a Windows PC, remove its hard drive for analysis, put it in a USB enclosure, and mount it read-only on a Linux box to make the scan process immune to boot-sector malware. Is there a Free compiler capable of compiling Visual Basic code? As of a year ago, there wasn't. If not, the program is Java trapped.*
* The term's origin is historical; Java itself is no longer Java trapped, but plenty of other languages and APIs are.
Hijacjk This ain't jsut for helpdesk monkeys; we use it constantly in Enterprise software testing. Server works fine, Client works fine, OS checks out, software ain't working. Run HT and find the culprit pretty quickly, and when your customers are telcos and banks doing short-cycle upgrades for occasionally legit reasons, your on-site guys need to find fast answers.
...to see how HJT does what it does (in source). AFAIK, it's one of the better tools for finding things that get missed by most AV packages. Dangerous but comprehensive.
I think the IT world collectively owes Merijn Bellekom some beers. Think about how many of us his tool has helped out over the years!
I would like so much to have an HijackThis that runs after every program installation (and possibly every hour) that warns me each time my configuration has changed, just to know that something fishy has possibly happened.
http://sourceforge.net/projects/hjt/ /me looks under license /me looks at you
Was that hard?
Like Borland Delphi, AND, that said? 64-bit ports are easy too (Delphi XE2).
* The reason I note this, is that this program, like so many others like it, read the registry (for malware traces, doubtless based on a single C/C++ style structure/Pascal-Object Pascal record variable that holds the signatures to look for so they can all be treated as a SINGLE variable whose elements get parsed & compared to a registry entry scanned...), and filesystems.
(No, I haven't SEEN the sourcecode, but I wager that's how it's done for efficiency's sake)...
Nice part is, that you'd end up with a faster program than VB yields as well (double bonus), AND, a 64-bit port's SIMPLE in Delphi (easier than any other language imo, that's not runtime interpreted that is - though you have that option in Delphi XE2 also (.NET)).
My guess is that it's a "Find First-Find Next" read of disks/files/folders AND registry entries for the most part (not a hell of a lot to learn & use really, once you "get the hang of it" in Win32/64)... but, that's just a guess (on how I'd design such a tool @ least).
APK
P.S.=> Porting VB to Delphi's pretty easy, and same with C++ to Delphi (or, vice-a-versa in both cases), so... there you are!
...apk
Is that a 32-bit program does NOT have "full" registry hives access in 64-bit systems... hence, possibly WHY a 64-bit port's a GOOD idea - for now though? As long as malwares do NOT go "64-bit" as well?? 32-bit CAN & WILL "do the job"... for now, that is.
APK
P.S.=> Am I interested in this? No... got plenty of code to work on here myself, but it's worth pointing out for those who MAY indeed, be interested in this... apk
I always used to say "These are so useful, MS should buy them and make them official." Well, they did. They are top notch for when you need to do some finer diagnosis on what is going on with a system.
I also pull them out when I have some old software that refuses to run without being an admin. By monitoring file access, registry access, and so on I have always been able to find out what it needs to run deprivileged.
If they aren't already doing this, an open source product should make it a bit easier for the malware writers to test out how well hidden their product is (or how closely it represents the noise experienced during a normal day of computing).
Ask me about repetitive DNA
You could always get a life, realize that operating systems are not the end all of existence, and use a Windows machine to scan the hard drive.
True, but why does mounting a USB hard drive read-only require modifying the registry?
Didn't Microsoft once provide a translation tool useful for porting a Visual Basic application to VB.NET, not unlike what the Python Software Foundation would later provide around the 2.6 days?
it would be rather like expecting The Gimp to implement ext4 read / write functions so that one can launch it under windows and access files on a Linux FS
You're right. A better idea is to implement a network redirector service and point GIMP at its drive letter. Likewise, a port of HJT to Linux might include a way to read registries other than that of the boot volume, possibly relying on a separate service to interpret the NT hive files.
Click on the Code tab and it'll give you the subversion command to download the source tree. You can also grab a tarball from this page: http://hjt.svn.sourceforge.net/viewvc/hjt/
... as a VB programmer going way back to QB45, GFA Basic on the Atari, and Sinclair Basic on the Spectrum, it'll be nice to finally be able to download and play with the source for one of these utils.
And while I'm commenting
Hal Spacejock: Science Fiction with Nuts