1

I have 2 function that I want to find a connection between them.

For ex. maybe there is function 5level up that called to those function, or another complicate connection.

How can I find it with ida or another tool.

Looks on graphes not help me ,I have more than 1000 functions

5

Take the following "Hello World!" program as an example.

void Log(char* var) {
printf(var);
}

int main() {
Log("Hello World!\n");
}

After compiling with gcc, open that executable in IDA. First choose the function from where you want to start (e.g. main). Go to the main function, right click on the disassembly window (IDA view) and choose Proximity browser. Alternatively press Num - to open proximity browser or Num + to open graph view. The window will be like this:

Proximity_Browser

Right click on the main rectangle, select Collapse children and then select Collapse parents. Now right click on the blank area, select Add node by name, choose your second function to which you want to connect main(). Here for example I choose printf().

Find_path

Now right click in the main rectangle, select Find path, choose printf from the find path window. You can see the connection between main and printf and also the intermediate Log function.

main_printf_graph

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.