首页
社区
课程
招聘
[旧帖] [求助]请问找到函数地址,咋去确定它的参数? 0.00雪花
发表于: 2008-5-29 16:42 3793

[旧帖] [求助]请问找到函数地址,咋去确定它的参数? 0.00雪花

2008-5-29 16:42
3793
mso.dll,我不知道各位有没有去反向研究过。
我现在遇到问题是,已经找到 function address,但是我要hook的时候,由于参数类型不匹配,总是出错,望高手帮忙!
我现在想确定mso_227参数类型,
下面是用IDA 看到的:

MSO.DLL:30E44F1F test    eax, eax
MSO.DLL:30E44F21 mov     esi, [ebp-8]
MSO.DLL:30E44F24 pop     ecx
MSO.DLL:30E44F25 pop     ecx
MSO.DLL:30E44F26 jnz     short loc_30E44FA0
MSO.DLL:30E44F26
MSO.DLL:30E44F28 push    edi
MSO.DLL:30E44F29 push    dword ptr [ebp+8]
MSO.DLL:30E44F2C mov     ecx, esi
MSO.DLL:30E44F2E push    dword ptr [ebp-0Ch]
MSO.DLL:30E44F31 push    dword ptr [ebp-10h]
MSO.DLL:30E44F34 push    esi
MSO.DLL:30E44F35 push    1BBEh
MSO.DLL:30E44F3A call    near ptr mso_227
MSO.DLL:30E44F3A
MSO.DLL:30E44F3F cmp     [esi+1EB4h], edi

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 224
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
我也有同样的疑惑,每次都是猜
我这次猜
mso_227(short ,int ,int, int,int)
或mso_227(short ,int ,int, int,int, int)(如果edi是压给他的话,帮忙看看后面有没有pop edi)
2008-5-29 17:04
0
雪    币: 335
活跃值: (140)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
首先你得搞清楚这个函数具体怎么用的?
不然的话,你得仔细分析这个函数的内容,以确定每个参数的具体含议。
比如有的是指向结构的指针,有的是数据,有的是输入,有的用于输出。

例:func( param1 ....)
{
    mov [param1+4],100 ;   显然param1是个指针,你需要提供一个足够大的缓冲区。
   ret
}
2008-5-29 17:09
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
试着找mso_227函数的ret,看看这个函数的ret后面的参数是多少就可以确定这个函数带有多少个参数,如例子:retn则这个函数没有参数,ret 4则这个函数有(4/4=1)一个参数,ret 8则这个函数有(8/4=2)二个参数,ret 0C则这个函数有(0C/4=3)三个参数,后面则以(n/4=n)此类推计算函数参数个数。至于如何确定函数的参数类型则没有什么好办法,只有通过动态调试原程序是如何调用该函数的执行,从而确定函数的参数类型。
2008-5-29 17:10
0
雪    币: 224
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
在32位汇编,我只管BYTE WORD 和DWORD,如果用C就太多了,逆向时我最烦的就是自定义结构体指针,要弄清楚花好多时间。
2008-5-29 17:17
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢各位
:参数的数量是可以确定的,就是类型。看来还是得慢慢确定了。
2008-5-29 18:02
0
游客
登录 | 注册 方可回帖
返回
//