I have 2 functions like this that does obfuscation on if loop:
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
}
The problem with this would be that funcA
would not be able to see funcB
and vice versa if I put funcB
before funcA
.
Would appreciate any help or advice here.
The functions that call itself are direct recursive and when two functions call each other mutually, then those functions are called indirect recursive functions.
Functions communicate among themselves with the help of arguments and return value.
In 'C' you can even call the main() function, which is also known as the "called function" of one program in another program, which is called "calling function"; by including the header file into the calling function.
The C programming language supports recursion, i.e., a function to call itself.
What you want is forward declaration. In your case:
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
}
A forward declaration would work:
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
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With