Not ideal, and not completely free, but if you have Visual Studio Premium or Ultimate, there is Microsoft Fakes included in it, which is another profiler-based mocking framework, providing such features. It cannot be installed in the lower editions of VS, however it's frely avaiable in the upper ones. No idea if that's "free enough" for you.
Have a look to those questions and articles about it:
https://stackoverflow.com/questions/21847835/how-do-install-microsoft-fakes-unit-test-isolation-on-vs-2013-professional-edi
http://www.dotnetcurry.com/showarticle.aspx?ID=963
However, in my opinion, the very need of such "elevated" features shows a flawed design in the code under test, that precludes isolated unit testing. Code directly calling static methods will always have such problems, and the typical solution is to use dependency injection instead, decoupling static calls behind an interface and injecting and mocking it afterwards (but a discussion of that is not relevant to this site, StackOverflow is better suited for it). For those situations, I use both Moq and NSubstitute, both of them are much simpler proxy-based mock frameworks.