Question: System instability, such certain programs crashing under load, led me to test my memory modules. The bad blocks on the problem stick lie in the range 001CB18000 to 001CB19000.

The memory stick has a 512MB capacity, I am running on three at the moment. The bad stick is being prepared for an RMA request.

Operating System: Windows XP (32-bit)

Once before, Google showed a similar topic but I cannot reproduce the search, and I do not believe anyone offered a solution to it.

Is it feasible to write a program that could allocate the blocks I want?

Answer: 
If you're running linux, the [`badram`](http://rick.vanrein.org/linux/badram/) or [`badmem`](http://sourceforge.net/projects/badmem/) kernel patches may help.

> 
> a patch to make (partly) buggy memory modules work in a (vanilla)-Linux kernel
> 
> 
> 

On Windows, your best bet would be to pray that none of the holes are hit during the early boot process and then load a boot-time system driver that claims the holes as if they were memory-mapped registers in peripheral hardware.

Or you can use the badram patch for xen, and load any OS of your choice into a virtual machine.
Apart from buying RAM being the best choice - if you can - you might also try to solder a working module out of spare ones. This would be a bit trial-and-error though. Also a lot of work. Maybe not as much as writing a driver for Windows (if this works since you cannot claim memory that has already been claimed) that claims the bad blocks :) but a few hours as well.

Also, you might consider using Linux (like in Ben Vogt's solution) and booting Windows in a VM. Fast solution, a bit less performance.