2

So i have the following code:

struct my_struct_t var1;
fun(var1);

I don't have the symbols for fun's parameter type but since it's called with an argument with type my_struct i would want IDA to infer that type. I know it's not always that straight forward, (e.g. multiple callers each calling with different arguments) but it sounds like a basic feature to propagate that kind of type information and maybe give the choice to the user to select the type when there are multiple options.

1 Answer 1

1

Hex-Rays will propagate type information "upwards", i.e., it will use type information from called functions or global variables to set the types of local variables (including arguments) in calling / referencing functions. It does not propagate type information "downwards", i.e., take actual parameter type information from calling functions and apply it to the formal parameters of called functions. So, in brief, the answer to your question is "no". There are several reasons for this, some of them architectural, others relating to the fact that it's actually unsafe to do it in many circumstances.

1
  • with my limited experience, it looks like by default the downwards type propagation would be useful. So even though i agree that this is not suitable to be a default analysis option, i think it's still a useful functionality to have on demand. (probably wouldn't be much difficult to have a plugin to do that). ps interested to know what are the architectural reasons that may interfere with the downward propagation of types
    – xar3
    Oct 22, 2022 at 10:33

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.