я с LLVM баловался, там есть C-backend, то есть выходом компилера (С++ причем) является С программа. ничего общего с оригиналом не имеет, но компилится и работает. ну и обфускаторов, по-моему, дофига, которые еще меняют имена и т.п., но на практике не нужно было