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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查看DLL中的函数名及参数相关的知识,希望对你有一定的参考价值。

函数名很简单,导出表里写的明明白白,随便一个dll查看工具都可以读出,比如CFF explorer。但是对于参数,就像楼上说的那样,不能看出它真实的数据类型(即在高级语言中的抽象数据类型)。因为都编译成汇编了,没有抽象的概念了,此时只能知道数据大小。
但是,不代表就没有办法了。有个一软件叫IDA,专门用于静态分析,它可以反编译汇编成C的伪代码,从而大致能知道传入、传出了啥。如果再知道函数的功能的话,只要不是太复杂,分析出参数类型问题不大。
IDA反编译大概效果就是这样:void __fastcall Function(__int64 a1, __int64 *a2, int a3, _QWORD *a4)。这里只复制了个声明,但也可以看出,比晦涩的汇编容易读多了。注意上面写的数据类型只能当作参考,因为这些数据类型也是软件根据代码行为推测的。
参考技术A 看参数和返回值是不可能的,因为参数和返回值的类型不一定是基本类型,也有可能是类、结构等,这些复合类型都是不能预知的,因此DLL不可能导出参数和返回值类型。
如果要看某个导出函数的参数,就只能查看相关的API文档,除此别无它法。但查看导出函数名是可以的,因为我们需要一个标志符来查找某个函数的入口地址,当然,也有一些DLL导出函数不能看到函数名,那是因为该DLL的发布者采用了使用数字序号定位而不是字符串定位的缘故。本回答被提问者采纳

以上是关于如何查看DLL中的函数名及参数的主要内容,如果未能解决你的问题,请参考以下文章

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

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

如何查看DLL中的函数

如何反汇编获知dll中函数的参数

C# dll里main函数如何运行

是否有任何本机 DLL 导出函数查看器? [复制]