如何查看DLL的函数声明
如何查看DLL的函数声明 2007-08-28 09:23 转贴自:http://blog.csdn.net/uvbs/archive/2006/01/27/589346.aspx Depends.exe 是 Visual C++ 自带的一个工具。它可能是我们经常使用的工具中最简单的一个工具了,其功能是列出某个应用程序或 DLL 需要的 DLLs。这个程序在本站可以下载(更新版本请到下面这个地址下载:http://www.dependencywalker.com)。如果你需要看某个 DLL 或可执行文件的全路经,可以用它的上下文菜单进行设置。 近期很多兄弟们问怎么样打包程序,如何获取所需dll的信息,这就需要使用VC所带的Depends软件,该软件在VC6安装目录下的tools文件夹里面 D:/Microsoft Visual Studio/Common/Tools,直接 双击执行,然后打开exe文件即可,它主要有下面几个注意事项: 1)所编的软件所需的Dll文件,可以得到相应的Dll路径,版本,属性等。 2)窗口分四部分: 左上角是Dll信息窗口,显示你程序所需的Dll模块, 右边第一个窗口是所选的Dll模块所使用的函数, 右边第二个窗口是所选Dll模块的所有的导出函数, 下面窗口是所有需要的Dll模块的属性 3)右边两个窗口出现四个标签:序号,提示,函数,入口点 如果利用导出是函数,那么出现函数名,如果导出的是序号,那么函数项就是N/A(无法显示) 出现红色提示表示不正常,一般为没有该导出函数 4)该工具得到的是你软件中隐式链接的Dll库,也就是用lib关联的Dll模块, 无法显示显式链接的Dll模块,也就是用LoadLibrary函数导入的Dll函数。(切记切记!) 5)无法提供Borland C++ Builder所提供的Dll文件,无法提供vxd软件的调用 ============================================================================= Q : 如何查看动态库接口函数的参数??? 主要解答者: jyu1221 提交人: ghj1976 感谢: jyu1221 审核者: ghj1976 论坛对应贴子: 查看 A : 使用Microsoft Visual Studio的工具DEPENDS.EXE可以查看动态库的接口函数,但如何能够看到这个动态库接口函数的参数呢? --------------------------------------------------------------- 可以通过反汇编来知道接口函数的参数,建议使用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指令 来实现参数的传递的。这时可以看一下具体是什么东西被压入堆栈了,一般来说,如果参数是整数,一看就可以知道了, 如果是字符串的话也是比较简单的,只要到那个地址上面去看一下就可以了。 如果传递的结构的话,没有很方便的办法解决,就是读懂该汇编就可以了。对于以上的分析,本人只其到了抛砖引玉, 希望对大家有点用处。 http://topic.csdn.net/t/20030226/15/1468772.html
如何查看DLL的函数声明相关推荐
- windows 查看DLL导出函数的方法
windows 查看DLL导出函数的方法 点我查看原文 在window下查看动态库的导出函数可以用vs自带的Dependenc工具: 对于VC6.0,VC所带的Depends软件,在VC6安装目录下的 ...
- dumpbin查看dll中函数名字的问题
利用微软的dumpbin.exe我们可以方便的查看dll中的函数名字,为了能利用命令行,我们要首先把C:\Program Files (x86)\Microsoft Visual Studio 10. ...
- windows查看dll导出函数名
1.找到vcvarsall.bat(我路径在D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC),dos窗口中运行这个bat. 2.运行dum ...
- matlab 查看dll的函数参数类型,MATLAB调用dll文件中的库函数时的变量类型匹配问题?...
我用MATLAB调用dll来进行USB数据采集运行 libfunctions USBAD -full 得到: Functions in library USBAD: [lib.pointer, vo ...
- VC++ DLL 导出函数
VC++ DLL 导出函数 经常使用VC6的Dependency查看DLL导出函数的名字,会发现有DLL导出函数的名字有时大不相同,导致不同的原因大多是和编译DLL时候指定DLL导出函数的界定符有关 ...
- 查看DLL 及LIB 库导出函数方法
使使用及制作DLL及LIB库文件时,经常要确认接口是否已成功导出,今天给大家介绍一个比较简的的方法: 以安装了VS2008开发环境为例 1. 打开Visual Studio 2008命令提示符 2. ...
- dumpbin发现没有入口函数_详解VS2019 dumpbin查看DLL的导出函数
之前有人问过ViewDLL这些软件在哪下载.实际上使用VS就可以查看DLL的导出接口. 1.先打开VS内部的Power Shell 2.打开以后应该如下图所示,首先输入dumpbin查看下用法: 3. ...
- 在VS中如保快速查看DLL或exe的已导出的函数
我们知道dumpbin 可以查看dll 或 exe 的导出函数接口,具体命令格式如下: Win+r 输入CMD 调出 cmd 指令窗口,输入: C:\Program Files (x86)\Micro ...
- windows查看dll库接口函数
一种是使用工具depends,另一种是使用vs的cmd命令窗口,dumpbin /EXPORTS xxx.dll就可以查看xxx.dll的函数接口了
最新文章
- 【Ubuntu】ubuntu设置GUI程序自启动
- html 标签、图像、链接、注释、锚点定位、特殊字符
- matlab中的现代谱估计,请教一个Matlab关于现代功率谱估计的问题
- 【dfs】【树】机器选择
- Java EE 6与Spring Framework:技术决策过程
- 信息学奥赛一本通 1170:计算2的N次方 | OpenJudge NOI 1.6 12:计算2的N次方
- html5游戏制作总结
- 用汇编的眼光看C++(之指针1)
- Win10如何关闭管理员权限运行
- 动态加载js文件 document.createElement
- python logging 模块之TimedRotatingFileHandler 实现每天一个日志文件
- PAT——1054. 求平均值
- 103 解决粘包问题
- it人才计算机知识题,Excel试题_电脑基础知识_IT/计算机_专业资料
- android 仿旅游日历控件_仿携程日历控件
- 利用51单片机定时器模拟输出PWM波
- Windows下的conda换源和pip换源
- 有道云笔记 迁移 语雀过程记录
- 辐射避难所买了东西显示服务器异常,辐射避难所各种BUG怎么解决 所有BUG应对方法一览...
- 开源商城WSTMart升级thinkphp5.1框架实践