(转)怎么获取dll函数的参数类型

可以通过反汇编来知道接口函数的参数,建议使用W32DSM来分析,也可以直接使用VC来分析,就是麻烦一点。      
  现在使用W32DSM来具体说明:      
  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后的结果,就是该函数所传递的参数的个数。      
  ----------------------------------------------      
  到现在位置,你应该能很清楚的看到了传递的参数的个数。至于传递的是些什么内容,还需要进一步的分析。      
  最方便的办法就是先找到是什么软件在调用此函数,然后通过调试的技术,找到该函数被调用的地方。一般都是PUSH指令      
  来实现参数的传递的。这时可以看一下具体是什么东西被压入堆栈了,一般来说,如果参数是整数,一看就可以知道了,      
  如果是字符串的话也是比较简单的,只要到那个地址上面去看一下就可以了。      
  如果传递的结构的话,没有很方便的办法解决,就是读懂该汇编就可以了。对于以上的分析,本人只其到了抛砖引玉,      
  希望对大家有点用处。

w32dsm1、修正第一版本(2000.9.5): 修改者:kuangren 可以同时对付VB/DELPHI,而且提取字符能力更高,同时减少了无效字符的提取 2、修正第二版本: 修改者:bpx 解决反汇编有中文字串的软件时,中文串都以乱码显示问题。 3、修正第三版本 (by Killer http://nfans.net/) 1)、自定义语法高亮显示的色彩,某些关键字可以用突出颜色显示,Good! 2)、可以手工增加注释,类似IDA,注释可以复制、保存。更加方便分析和写破解文章! 3)、增强的搜索、查找功能! 4)、命令行功能! 5)、增加最新使用文件列表功能! 6)、相当实用的快速编辑功能,可以取代HEX编辑器了! Cool:) 7)、增加汇编代码修补(Permenant Patcher)功能! 8)、打开当前反汇编文件写操作! 9)、本版修正两个窗口不能正常显示的BUG。 10)、在反汇编窗口显示显示中文的功能! 11)、在串式数据参考中提取中文字符串的功能! 12)、支持VB/DELPHI字符串的提取,可以自定义VB_patch的打开和关闭 ======================================================== 这中间有众多修改版本,我也记不清,欢迎补充。 ======================================================== 4、W32dsm8.93+ 修改者:pll621 支持滚轮鼠标的滚动和文件的拖放打开。 在串式参考、输入表、输出表等窗口增加了字串查找功能,非常实用。 添加右键功能: 右健双击弹出search菜单 按住右键不放点击左键弹出打开文件菜单 更改滚动速度跳三行 增加区域判断在原来能跳回去的那一行不弹出右键菜单而是实现原来的双击的功能,其他地方单击右键弹出菜单。 右键菜单在W32Dasm(20020827)版的基础上增加cemment,hexedit,和goto localtion三个经常用的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值