首页
社区
课程
招聘
[求助]ida 的 F5 是怎么知道函数有几个参数,什么类型,以及返回值类型的?
发表于: 2012-5-30 15:42 6862

[求助]ida 的 F5 是怎么知道函数有几个参数,什么类型,以及返回值类型的?

2012-5-30 15:42
6862
比如某函数 F5 一下变成

int __cdecl sub_1000A7A0(HWND hwndParent, LPCWSTR psz1)
{
  int v3; // [sp+0h] [bp-Ch]@1
  int v4; // [sp+4h] [bp-8h]@1
  int v5; // [sp+8h] [bp-4h]@1

  v4 = 1;
  v5 = 0;
  v3 = 0;
  return sub_1000A270(hwndParent, 2u, psz1, (int)sub_1000A640, (int)&v3);
}

1. ida是怎么知道有2个参数的
2. 第一个参数怎么知道是 HWND 类型的
3. 第一个参数怎么知道是父窗口句柄 hwndParent
4. 为什么返回值是int,是跟踪 sub_1000A270 的返回值判断的吗?
5. __cdecl 和 __thiscall 是怎么判断的

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 3263
活跃值: (3306)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
判断几个参数 应该是利用调用约定 堆栈平衡的特点来判断的,有时候也不是很准确 至于HWND 类型的 应该是层层跟进 到 哪个API 调用自动命名的, __cdecl 是看 call 后面的 and esp 0x.. 判断  __thiscall 应该是做过比较复杂的判断  一个主要是 传入的参数ECX  再者应该也会跟进类的虚表
2012-5-30 16:19
0
雪    币: 196
活跃值: (96)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
Thank you very much ~
2012-5-31 09:06
0
雪    币: 196
活跃值: (96)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
int __cdecl S4(PCWSTR SourceInfFileName, int)
public S4

这个比较牛x了, 知道是字符串也就行了,还知道是 FileName,并且还是到是 inf 文件
2012-5-31 11:31
0
游客
登录 | 注册 方可回帖
返回
//