You could write it!
Seriously - we've hit this topic on a couple threads and the verdict was - it could get cracked eventually anyway - the workarounds are drop to random temp directory - load it - delete it - but then they still could stop your program... If you REALLY REALLY REALLY want to screw people up - this is what you do:
Bitmaps/images/etc - Need to make an encrypter that mangles the image but it reattainable in memory with DarkGDK/DBPro. I Know Bitmaps are bigger but they compress nicely. Would be pretty easy to pick a image format that is known - and "easy to work with" - and scramble it - so it still loads as a valid image - and then "decrypt" it in memory. Then Texture your object. Textures with Coordinate mapping - (So entire image drawn on one texture) This would give the best results because then you can texture the object in memory - no issue.
Objects! Animations? EASY! Make a tool that can load all your directx objects, and modify all the vertices with an encrption routine. Then your program "loader" would load the mangled object like normal - then rearrage the vertices according to you "decrypt" routine and whella - the data is on the disk - people can see it is there - its unusable - and works with the way DarkGDK/DBPro works anyway - via loading from file/hdd/etc.