I recall being in the same situation 2 years ago.I had a lot of legacy code in my project and I had write unit tests for it.
I have spent hours on researching and trying different tools for the task I was given, and it was not easy to find mocking tools
that could satisfy my needs when it comes to different limitations I had which are similar to the ones you mentioned.
I have tried different ones but then found GMock and later on FakeIT, both did quite a good job but couldn't help me with
concret&static classes, private/static/virtual methods and I had to do a lot of refactoring in my code.
Researching a little more and I found Isolator ++ (which is actually free now, I had to pay back then), which amazingly took care of such cases
and saved me a lot of time...so you know where my recommendation goes to :slightly_smiling_face: