-
-
[求助]自定义的头文件如何与IDA的类型库函数定义相匹配
-
发表于:
2010-4-16 00:08
6938
-
[求助]自定义的头文件如何与IDA的类型库函数定义相匹配
在用解析头文件的方式进行用户函数标注时,发现IDA的类型库对函数定义好像有修饰符。
具体情况如下:
我编写了一个静态库函数add,fastcall调用。同时生成了sig签名。IDA通过签名识别函数名为@add。解析头文件后,函数原型及参数标注都有。
重新加载,没有使用签名。将函数手工改名为add,解析头文件,没有添加函数注释。
函数改为@add后,函数注释出现了。
以上说明,解析头文件的类型库是和函数名挂钩的。但为什么函数名要加@才和我定义的相对应?
@是否是函数类型、调用约定的一个修饰符
函数声明:
int __fastcall add(int x, int y);
重新加载,没有使用签名。函数名手工改为@add,删掉函数声明中的 fastcall,没有注释。
恢复fastcall,重新解析头文件,函数注释出现。
以上情况似乎表示,IDA中函数名是要有修饰语和调用约定相匹配的。@匹配的是fastcall。
那么stdcall和cdecl是用什么修饰语呢?
望高手指点一二,不胜感激!
答案在
黑客反汇编揭秘 Page175
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!