怎么看dll的函数(如何能看到dll中的函数定义)

本篇文章给大家谈谈怎么看dll的函数,以及如何能看到dll中的函数定义对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何查看DLL中的函数名及参数

函数名很简单,导出表里写的明明白白,随便一个dll查看工具都可以读出,比如CFF explorer。但是对于参数,就像楼上说的那样,不能看出它真实的数据类型(即在高级语言中的抽象数据类型)。因为都编译成汇编了,没有抽象的概念了,此时只能知道数据大小。

但是,不代表就没有办法了。有个一软件叫IDA,专门用于静态分析,它可以反编译汇编成C的伪代码,从而大致能知道传入、传出了啥。如果再知道函数的功能的话,只要不是太复杂,分析出参数类型问题不大。

IDA反编译大概效果就是这样:void __fastcall Function(__int64 a1, __int64 *a2, int a3, _QWORD *a4)。这里只复制了个声明,但也可以看出,比晦涩的汇编容易读多了。注意上面写的数据类型只能当作参考,因为这些数据类型也是软件根据代码行为推测的。

怎么查看dll函数 vs2010

1. 打开命令行窗口CMD

2. 运行vcvarsall.bat

VS2010 里vcvarsall.bat是在右键VS打开文件位置,D:\Microsoft Visual Studio 10.0\Common7\Tools目录下,运行方法是直接将vcvarsall.bat文件拖入命令行窗口,然后回车。(拖入相当于在命令行中输入“D:\Microsoft Visual Studio 10.0\Common7\Tools\vcvarsall.bat”)

运行vcvarsall.bat后,窗口中出现“Setting environment for using Microsoft Visual Studio 2010 x86 tools.”

3. 在命令行了输命令:dumpbin /exports dll文件完整路径,即可得到DLL的接口。

如要查看user32.dll的接口,输入:dumpbin /exports “C:\Windows\System32\user32.dll” 回车即可。

其中,步骤2可以省去,方法是不在运行中打开命令行窗口,而是在应用程序Microsoft Visual Studio 2010的Visual Studio Tools文件夹中打开Visual Studio Command Prompt (2010)命令窗口,可发现窗口中直接有“Setting environment for using Microsoft Visual Studio 2010 x86 tools”这句话,此时,直接输入命令:dumpbin /exports dll文件完整路径,即可得到DLL的接口。

其它内容:

查看静态库的信息要用命令行来实现:

dumpbin /LINKERMEMBER Test.lib 1.txt

上面的功能是将静态库的信息导出保存在1.txt文件中,这样就可以在1.txt文件中查看相关的信息了

怎么查看dll里面的函数,怎么用dumpbin查看dll

没有dumpbin工具的话,去网上下载

在cmd下面,进入dump文件的目录下

方法/步骤

1

接着,我们输入命令 dumpbin -export dll名

,函数名出来了。。。

2

还有其他命令,可以参考help,这样就可以了。

还有另外一种方式是用软件查看的。

你好,怎么查看dll中函数的的代码

没有dumpbin工具的话,去网上下载

在cmd下面,进入dump文件的目录下

1接着,我们输入命令 dumpbin -export dll名

2还有其他命令,可以参考help,这样就可以了。

3可以用C++自带的工具查

开始 ——》所有程序 ——》 Microsoift visual C++ 6.0 ——》Microsoift visual C++ 6.0 Tools ——》 depends

查具体参数用反汇编,习惯于用OD,ctrl+N 找到要查的参数(后面会有显示是几个参数的),选中那一行按Enter就会跳到那个函数的调用段,里面会有具体的参数类型

如何查看DLL中的函数信息

函数名可以查到,vc工具的depend就可以了,其他也有不少工具可以查到,声明的没有,声明没有编译到dll里的,声明包括函数名、参数和返回值。函数名说了,参数得通过反汇编得到,由于函数里通过堆栈来获得参数值,通过反汇编该函数,从函数头开始找出取堆栈的代码,可以找出该函数的参数个数和类型。参数的含意得读懂函数的反汇编代码,了解各参数的使用才能确定参数用途了。返回值在windows中是通过寄存器eax来返回的,如果返回的值小于32位,就用eax保存值,大于32位就用eax保存返回值的地址,所以要知道返回值的类型,得了解函数最好把什么存到eax中,存的值是什么才能知道返回值。

如何查看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指令

来实现参数的传递的。这时可以看一下具体是什么东西被压入堆栈了,一般来说,如果参数是整数,一看就可以知道了,

如果是字符串的话也是比较简单的,只要到那个地址上面去看一下就可以了。

如果传递的结构的话,没有很方便的办法解决,就是读懂该汇编就可以了。对于以上的分析,本人只其到了抛砖引玉,

关于怎么看dll的函数和如何能看到dll中的函数定义的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

1、本网站名称:源码村资源网
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » 怎么看dll的函数(如何能看到dll中的函数定义)

1 评论

您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论