12

我有 2 个这样的函数可以对 if 循环进行混淆:

void funcA(string str)
{
    size_t f = str.find("if");
    if(f!=string::npos)
    {
        funcB(str);        //obfuscate if-loop
    }
}

void funcB(string str)
{
     //obfuscate if loop
     funcA(body_of_if_loop);     //to check if there is a nested if-loop
}

与此有关的问题是,如果我放之前funcA将无法看到funcB,反之亦然。funcBfuncA

在此不胜感激任何帮助或建议。

4

2 回答 2

19

你想要的是前向声明。在你的情况下:

void funcB(string str);

void funcA(string str)
{
    size_t f = str.find("if");
    if(f!=string::npos)
    {
        funcB(str);        //obfuscate if-loop
    }
}

void funcB(string str)
{
     //obfuscate if loop
     funcA(body_of_if_loop);     //to check if there is a nested if-loop
}
于 2013-01-30T07:38:20.363 回答
10

向声明将起作用:

void funcB(string str); 

void funcA(string str)
{
    size_t f = str.find("if");
    if(f!=string::npos)
    {
        funcB(str);        //obfuscate if-loop
    }
}

void funcB(string str)
{
     //obfuscate if loop
     funcA(body_of_if_loop);     //to check if there is a nested if-loop
}
于 2013-01-30T07:36:59.160 回答