Alexey18 сказал(а):
Вообще есть разные подходы. Вижуалка даёт возможность получить ассемблерный код. Ну типо. Балуйся с регистрами.
Второй вариант в исходном коде писать мусорный код, применяя ооп. (допустим нахождение определителя матрицы, перемножение, поиск ранга или вообще обратную), играйся с наследованием, иницилизацией. Скажу так детекты сильно снижает натив софта.
По обфускации Control Flow, реализация простая быстрая. Как варик еще ассемблерная вставка.
Высший пилотаж- не использовать string, а использовать const char*. Не использовать векторы, а грубо говоря написать самому реализацию(через ссылку+realloc/malloc можно с любым типом данных). Сильно снижается вес стаба.
Импорты скрывать еще