yo no programo en vb, pero entiendo un poco tu idea.
tu quieres crear una dll y reemplazarla por una de las que inician con xp, para que inicie tu dll.
Conoces la dll original?? por que windows cuando carga una dll, llama a las funciones que tiene en su interior, y si tu dll no tiene estas funciones, entonces no la cargará. podrias crear una aplicacion invisible que se inicie con windows y cargue tu dll. aver si te sirve. Saludos!!
Podrias ver si el lenguaje que utilizaste tiene algun descompilador, de lo contrario tendrias que utilizar desensamblador, el cual te mostrará el codigo en lenguaje assembler...