C/C++ Function Randomization

Die antispy™ C/C++ Function Randomization sorgt für eine zufällige Anordnung von Funktionen in der kompilierten Binary. Damit lassen sich Heuristiken brechen, die davon ausgehen, dass bestimmte Funktionen in Ihrer Anwendung aufeinanderfolgend im Code Segment sind.

Implementierung

Die Implementierung erfolgt mit der Kennzeichnung durch das Makro ANTI_SPY_RANDOM_LAYOUT_START vor der Funktionsdefinition und ANTI_SPY_RANDOM_LAYOUT_END nach der Funktiondefinition.

#include <antispy/obfuscation.hpp>

ANTI_SPY_RANDOM_LAYOUT_START
int random_func()
{
    return 1;
}
ANTI_SPY_RANDOM_LAYOUT_END

int main(int argc, const char **argv)
{    
    auto result = random_func();
    std::cout << "Random Func result: " << result << std::endl;
    return 0;
}