首页
社区
课程
招聘
[求助]自定义的头文件如何与IDA的类型库函数定义相匹配
发表于: 2010-4-16 00:08 6938

[求助]自定义的头文件如何与IDA的类型库函数定义相匹配

2010-4-16 00:08
6938
在用解析头文件的方式进行用户函数标注时,发现IDA的类型库对函数定义好像有修饰符。
具体情况如下:
我编写了一个静态库函数add,fastcall调用。同时生成了sig签名。IDA通过签名识别函数名为@add。解析头文件后,函数原型及参数标注都有。

重新加载,没有使用签名。将函数手工改名为add,解析头文件,没有添加函数注释。
函数改为@add后,函数注释出现了。
以上说明,解析头文件的类型库是和函数名挂钩的。但为什么函数名要加@才和我定义的相对应?
@是否是函数类型、调用约定的一个修饰符
函数声明:
int __fastcall add(int x, int y);

重新加载,没有使用签名。函数名手工改为@add,删掉函数声明中的 fastcall,没有注释。
恢复fastcall,重新解析头文件,函数注释出现。

以上情况似乎表示,IDA中函数名是要有修饰语和调用约定相匹配的。@匹配的是fastcall。
那么stdcall和cdecl是用什么修饰语呢?

望高手指点一二,不胜感激!

答案在
黑客反汇编揭秘 Page175

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 249
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
又浪费KX啦,哈哈
2010-4-16 09:47
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
网上找了一些东西看看,这个概念叫函数修饰符,不同编译器使用的规则不同。C++类型函数的更加复杂。黑客那本书只讲了C类型的函数。具体可以在网上搜一下,有几个帖子讲得不错。《程序员的自我修养   链接   装载和库》这本书里也有。
我的分啊,好心痛
2010-4-16 15:26
0
雪    币: 249
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
《程序员的自我修养   链接   装载和库》刚下下来,百度文库上面有~~看名字应该很不错,谢LZ推荐了~
2010-4-19 08:55
0
雪    币: 244
活跃值: (189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
那这个问题呢>Bad or ill-formed preprocessor command
2012-10-23 15:05
0
游客
登录 | 注册 方可回帖
返回
//