Monthly Archives: December 2010

How to impersonate the Windows system account in an application

During the research of my previous post, I wanted to find out if it’s possible to impersonate the system account in an application (NT AUTHORITY\SYSTEM). Apparently, and much to my surprise, it’s a bit more powerful than the administrator account. The short answer is that there’s no clean, reliable, non-intrusive and portable way to do that, and in most cases, there are much better solutions. But if you really want the impersonation, then here are the possibilities that I found on my Windows 7 system. Continue reading

Getting the size of a volume shadow copy snapshot

The volume shadow service (VSS) has a storage limit on each volume. If it needs more space for a new snapshot, it deletes an old one. If you want to create a smarter space management algorithm, which also considers the size of individual snapshots, you’re in trouble, because getting the size is not documented anywhere. But now it is :) . Continue reading

Windows antivirus API in .NET, and a COM interop crash course

Like I said in my previous post, I already coded something cool in my framework, and here it is: .NET code to call the Windows antivirus API. The best use case scenario I can think of is when retrieving and then redistributing file content from an untrusted data source, especially a web upload form. In cases like this, content might slip through the realtime protection of most antivirus products, and an API like the one I created is the only solution. Continue reading

Introducing my open source .NET library

One of my biggest plans has always been to publish source code. I’m a professional developer but it’s also my hobby, or more like my art, and I want to do something useful for the benefit of everyone. I’ve posted code a few times on my previous website, but nothing major or widely usable. The life-changing great idea still has yet to come, but I decided to stop waiting for it and publish whatever minor pieces of software I come up with in my free time. C#/.NET is my language/platform of choice, so I started putting together a library project on Google Project Hosting and license it under the GPL v3. It’s a totally generic collection of library routines that anyone might find useful. So here it is: the Joco Library. Continue reading

My ultra low power home server

I bought an Asus WL-500g Premium v2 router in April, 2009 and immediately installed DD-WRT on it. I used it for my wired and wireless LAN, printer and disk sharing, and for running Transmission. In about half a year, I grew tired of its USB bandwidth (around 2 MiB/s), bad overall performance and also the development model of DD-WRT (several thousand commits without a stable release). Then in December, 2009, I built my perfect home server, based on the Intel D945GSEJT motherboard, which perfectly replaced this router while barely consuming any more power and I’ve been happily using it ever since. Continue reading