Привет всем , сегодня я расскажу как можно сделать неочевидным исполняемый код , без отладки ( в случае если у вас имеется хорошая защита от дебагга , то этот метод будет для вас эффективным ) допустим есть у нас класс , который мы хотим запутать и будет он вида : class cProtect { public: void AntiDbg( ) { } void EraseHeaders( ) { } }Protect; Код class cProtect { public: void AntiDbg( ) { } void EraseHeaders( ) { } }Protect; В случае если вы , захотите ее вызвать ее , то в исполняемом коде она будет вида call Адрес_функции Наша задача не дать найти адрес функции . Для этого я предлагаю создать абстрактный класс за место того что есть . пример class Dummy_Protect { public: virtual void AntiDbg( )=0; virtual void EraseHeaders( )=0; }* vProtect; Dummy_Protect::Dummy_Protect() {vProtect=&Protect; }; Dummy_Protect::~Dummy_Protect() { delete vProtect; }; Код class Dummy_Protect { public: virtual void AntiDbg( )=0; virtual void EraseHeaders( )=0; }* vProtect; Dummy_Protect::Dummy_Protect() {vProtect=&Protect; }; Dummy_Protect::~Dummy_Protect() { delete vProtect; }; необходимо добавить наследование в наш исходный класс для тех кто в танке =) class cProtect:public Dummy_Protect { public: void AntiOllyDbg( ) { } void EraseHeaders( ) { } }Protect; Код class cProtect:public Dummy_Protect { public: void AntiOllyDbg( ) { } void EraseHeaders( ) { } }Protect; !Важно : добавлять функции в абстрактный класс нужно строго в той последовательности в какой они у вас записаны в исходном классе . Итого : при вызове функции в исполняемом коде будет исполнены примерно такие команды mov регистр , Адрес_абстрактного_класса call [регистр+смещение_функции] то есть фактически адрес обфусицированной функции мы не даем , но а если уж дебажить то при вызове этой функции мы вызываем конструктор , где мы присваиваем абстрактному классу ссылку на искомый ) выполняем исходную функцию вызываем деконструктор ( где удаляем ссылку) а потом возвращаемся в первый уровень кода Минусы : громоздкость , возможность найти конструктор класса , при более детальном просмотре кода , но как вариант можно запихать присвоение ссылки на класс в мутекс , который будет находится в какой-то жопе . Плюсы : можно усложнить жизнь неопытным взломщикам =)