关于未知dll函数参数的获取问题!

通常我们用IDA反编译dll得到信息!我看过一篇文章,是说通过以下几种方法:  
  1。先打开需要分析的DLL,然后通过菜单功能-》出口来找到需要分析的函数,双击就可以了。它可以直接定位到该函数。  
  2。看准该函数的入口,一般函数是以以下代码作为入口点的。  
  push   ebp  
  mov     ebp,   esp  
  ...  
  3。然后往下找到该函数的出口,一般函数出口有以下语句。  
  ...  
  ret     xxxx;//其中xxxx就是函数差数的所有的字节数,为4的倍数,xxxx除以4得到的结果  
  就是参数的个数。  
  其中参数存放的地方:  
  ebp+08           //第一个参数  
  ebp+0C           //第二个参数  
  ebp+10           //第三个参数  
  ebp+14           //第四个参数  
  ebp+18           //第五个参数  
  ebp+1C           //第六个参数  
  。。。。  
  -------------------------------------------  
  还有一种经常看到的调用方式:  
  sub   esp,xxxx           //开头部分  
  //函数的内容  
  。。。  
  //函数的内容  
  add   esp,xxxx  
  ret                             //结尾部分  
  其中xxxx/4的结果也是参数的个数。    
  -------------------------------------------------  
  还有一种调用方式:  
  有于该函数比较简单,没有参数的压栈过程,  
  里面的  
  esp+04就是第一个参数  
  esp+08就是第二个参数  
  。。。  
  esp+xx就是第xx/4个参数  
  你说看到的xx的最大数除以4后的结果,就是该函数所传递的参数的个数。  
   
   
      但是上面的方法就一定正确吗?我想大部分情况是正确的。如果我们没有exe文件去  
  加载dll,我们还能怎么跟踪得到dll函数的信息呢?(函数的参数)动态的时候我们可以用trw2000或者是soft-ice进行跟踪,但是如果就是一个光dll文件,我该怎么办呢???  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值